web-dev-qa-db-fra.com

Pourquoi mon pseudonyme ne fonctionne-t-il pas sur ssh?

J'ai un alias défini dans mon .bashrc

alias l.='ls -d .* --color=auto'

C'est très utile :) mais cela ne fonctionne pas avec ssh:

$ ssh localhost l.
bash: l.: command not found

Pourquoi donc?

8
Zanna

Essayer:

ssh localhost -t bash -ci l.

Remarque:

  • L'alias doit être dans ~/.bashrc sur le serveur distant, pas sur votre ordinateur local.

  • L'option -i indique à bash d'exécuter un shell interactif. Les alias sont activés par défaut uniquement dans les shells interactifs.

  • L'option -t indique à ssh d'allouer un pseudo-tty. Sans cela, bash émet un message d'avertissement lorsqu'il est lancé en mode interactif. Cela active également les couleurs ls. Sans cela, vous devriez utiliser --color=always, voir man ls.

  • Il existe un autre moyen d'activer les alias sans définir l'indicateur interactif, à savoir shopt -s expand_aliases. Pour que vous puissiez essayer:

    ssh localhost 'bash -c "shopt -s expand_aliases; l."'
    

    Toutefois:

    • Votre .bashrc peut définir des alias uniquement si le fournisseur d’enveloppe du Shell est interactif. Dans cet exemple, le shell ne serait pas interactif à ce moment-là.

    • Si vous essayez de définir des alias sur la même ligne, voir this .

8
Matei David