.bashrcчитается только если оболочка является интерактивной.
user4556274
1
С вашим псевдонимом по ssh, вероятно, не будет никакого цвета, где, если вы измените свой псевдоним, alias l.='ls -d .* --color'тогда появятся цвета. Просто думал, что добавлю это. По крайней мере, я испытывал это.
Терренс
@Terrance Мне было интересно об этом ... У меня все еще нет цвета (и нет столбцов), хотя я получаю цвет (и столбцы), как и раньше, после изменения псевдонима (и выполнения source .bashrc)
Zanna
1
ах ха! Я думаю, что понял. Попробуйте свой псевдоним, как, alias l.='ls -dC .* --color'где Cпоказывает столбцы.
Терренс
1
Я отредактировал ответ, чтобы решить проблему цвета.
Матей Дэвид
Ответы:
10
Пытаться:
ssh localhost -t bash -ci l.
Замечания:
Псевдоним должен быть ~/.bashrcна удаленном сервере, а не на вашем локальном компьютере.
-iОпция указывает bashзапустить интерактивную оболочку. Псевдонимы по умолчанию включены только в интерактивных оболочках.
В -tопции говорит sshо выделении псевдо-терминала. Без этого bashвыдает предупреждение при запуске в интерактивном режиме. Это также позволяет lsцвета. Без этого вам пришлось бы пользоваться --color=always, понимаете man ls.
Есть еще один способ включить псевдонимы без установки интерактивного флага, а именно shopt -s expand_aliases. Так что вы можете попробовать:
Вы .bashrcможете определить псевдонимы только в том случае, если оболочка использует его в интерактивном режиме. В этом примере оболочка не будет интерактивной в то время.
Если вы попытаетесь определить псевдонимы в одной строке, посмотрите это .
.bashrc
читается только если оболочка является интерактивной.alias l.='ls -d .* --color'
тогда появятся цвета. Просто думал, что добавлю это. По крайней мере, я испытывал это.source .bashrc
)alias l.='ls -dC .* --color'
гдеC
показывает столбцы.Ответы:
Пытаться:
Замечания:
Псевдоним должен быть
~/.bashrc
на удаленном сервере, а не на вашем локальном компьютере.-i
Опция указываетbash
запустить интерактивную оболочку. Псевдонимы по умолчанию включены только в интерактивных оболочках.В
-t
опции говоритssh
о выделении псевдо-терминала. Без этогоbash
выдает предупреждение при запуске в интерактивном режиме. Это также позволяетls
цвета. Без этого вам пришлось бы пользоваться--color=always
, понимаетеman ls
.Есть еще один способ включить псевдонимы без установки интерактивного флага, а именно
shopt -s expand_aliases
. Так что вы можете попробовать:Однако:
Вы
.bashrc
можете определить псевдонимы только в том случае, если оболочка использует его в интерактивном режиме. В этом примере оболочка не будет интерактивной в то время.Если вы попытаетесь определить псевдонимы в одной строке, посмотрите это .
источник
ssh
размышляю про себя :)ssh
. Да, сlocalhost
этим не проблема.ssh ... <cmd>
выход, когда<cmd>
это сделано. Если вы хотите сохранить оболочку послеls
, попробуйтеssh localhost -t 'bash -ci "l.; exec bash"'
.