.bashrcjest odczytywany tylko wtedy, gdy powłoka jest interaktywna.
user4556274,
1
W przypadku aliasu nad ssh prawdopodobnie nie będzie koloru, a jeśli zmienisz alias na, alias l.='ls -d .* --color'wówczas pojawią się kolory. Pomyślałem, że to dodam. Przynajmniej tego doświadczyłem.
Terrance
@Terrance Zastanawiałem się nad tym ... Nadal nie otrzymuję koloru (i żadnych kolumn), chociaż otrzymuję kolor (i kolumny) jak wcześniej po zmianie aliasu (i zrobieniu source .bashrc)
Zanna
1
aa ha! Myślę, że rozumiem. Wypróbuj swój alias jako miejsce, w alias l.='ls -dC .* --color'którym Cwyświetlane są kolumny.
Terrance
1
Zredagowałem odpowiedź, aby rozwiązać problem z kolorem.
Matei David,
Odpowiedzi:
10
Próbować:
ssh localhost -t bash -ci l.
Uwaga:
Alias powinien znajdować ~/.bashrcsię na zdalnym serwerze, a nie na komputerze lokalnym.
Ta -iopcja mówi basho uruchomieniu interaktywnej powłoki. Aliasy są domyślnie włączone tylko w interaktywnych powłokach.
Te -topcje mówi sshprzeznaczyć pseudo-tty. Bez tego bashemituje komunikat ostrzegawczy po uruchomieniu w trybie interaktywnym. Umożliwia to także lskolory. Bez tego musiałbyś użyć --color=always, rozumiesz man ls.
Istnieje inny sposób włączenia aliasów, bez ustawiania flagi interaktywnej, a mianowicie shopt -s expand_aliases. Więc możesz spróbować:
.bashrc
jest odczytywany tylko wtedy, gdy powłoka jest interaktywna.alias l.='ls -d .* --color'
wówczas pojawią się kolory. Pomyślałem, że to dodam. Przynajmniej tego doświadczyłem.source .bashrc
)alias l.='ls -dC .* --color'
którymC
wyświetlane są kolumny.Odpowiedzi:
Próbować:
Uwaga:
Alias powinien znajdować
~/.bashrc
się na zdalnym serwerze, a nie na komputerze lokalnym.Ta
-i
opcja mówibash
o uruchomieniu interaktywnej powłoki. Aliasy są domyślnie włączone tylko w interaktywnych powłokach.Te
-t
opcje mówissh
przeznaczyć pseudo-tty. Bez tegobash
emituje komunikat ostrzegawczy po uruchomieniu w trybie interaktywnym. Umożliwia to takżels
kolory. Bez tego musiałbyś użyć--color=always
, rozumieszman ls
.Istnieje inny sposób włączenia aliasów, bez ustawiania flagi interaktywnej, a mianowicie
shopt -s expand_aliases
. Więc możesz spróbować:Jednak:
Twoja
.bashrc
siła określić tylko aliasy jeśli powłoka jest interaktywna pozyskiwanie go. W tym przykładzie powłoka nie byłaby wtedy interaktywna.Jeśli spróbujesz zdefiniować aliasy w tym samym wierszu, zobacz to .
źródło
ssh
o sobie :)ssh
. Tak,localhost
to nie jest problem.ssh ... <cmd>
wychodzi, gdy<cmd>
jest zrobione. Jeśli chcesz później zachować powłokęls
, spróbujssh localhost -t 'bash -ci "l.; exec bash"'
.