Почему мой псевдоним не работает над ssh?

5

У меня есть псевдоним, определенный в моем .bashrc

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

Это очень полезно :) но это не работает через ssh :

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

Почему это?

    
задан Zanna 09.08.2016 в 17:04
источник

1 ответ

5

Try:

ssh localhost -t bash -ci l.

Примечание:

  • Псевдоним должен быть в ~/.bashrc на удаленном сервере, а не на вашей локальной машине.

  • Опция -i сообщает bash запускать интерактивную оболочку. Псевдонимы включены по умолчанию только в интерактивных оболочках.

  • Опции -t сообщают ssh для распределения псевдо-tty. Без этого bash выдает предупреждающее сообщение при запуске в интерактивном режиме. Это также позволяет использовать цвета ls . Без него вам придется использовать --color=always , см. man ls .

  • Существует еще один способ включить псевдонимы, не устанавливая интерактивный флаг, а именно shopt -s expand_aliases . Поэтому вы можете попробовать:

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

    Однако:

    • Ваш .bashrc может определять только псевдонимы, если оболочка sourcing является интерактивной. В этом примере оболочка не будет интерактивной в это время.

    • Если вы пытаетесь определить псевдонимы в одной строке, см. это .

ответ дан Matei David 09.08.2016 в 17:07
источник