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?
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 .