.bashrcwird nur gelesen, wenn die Shell interaktiv ist.
user4556274
1
Wenn Ihr Alias über ssh liegt, gibt es wahrscheinlich keine Farbe. Wenn Sie Ihren Alias ändern, werden alias l.='ls -d .* --color'die Farben angezeigt. Ich dachte nur, ich würde das hinzufügen. Zumindest habe ich das erlebt.
Terrance
@Terrance Ich habe mich darüber gewundert ... Ich bekomme immer noch keine Farbe (und keine Spalten), obwohl ich Farbe (und Spalten) wie zuvor bekomme, nachdem ich den Alias geändert habe (und mache source .bashrc)
Zanna
1
ah ha! Ich denke ich habe es. Versuchen Sie Ihren Alias als alias l.='ls -dC .* --color'wo die CSpalten angezeigt werden.
Terrance
1
Ich habe die Antwort bearbeitet, um das Farbproblem zu beheben.
Matei David
Antworten:
10
Versuchen:
ssh localhost -t bash -ci l.
Hinweis:
Der Alias sollte sich ~/.bashrcauf dem Remote-Server befinden, nicht auf Ihrem lokalen Computer.
Die -iOption weist bashan, eine interaktive Shell auszuführen. Aliase sind standardmäßig nur in interaktiven Shells aktiviert.
Die -tOption weist sshan, eine Pseudo-Tty zuzuweisen. Ohne diese bashsendet eine Warnmeldung , wenn im interaktiven Modus gestartet. Dies ermöglicht auch lsFarben. Ohne es müssten Sie verwenden --color=always, sehen Sie man ls.
Es gibt eine andere Möglichkeit, Aliase zu aktivieren, ohne das interaktive Flag zu setzen, nämlich shopt -s expand_aliases. Sie könnten also versuchen:
Ihre .bashrcMacht nur definieren Aliase , wenn die Shell es Sourcing interaktiv ist. In diesem Beispiel wäre die Shell zu diesem Zeitpunkt nicht interaktiv.
Wenn Sie versuchen, Aliase in derselben Zeile zu definieren, lesen Sie dies .
das funktioniert .... zu deiner Erklärung, klar, aber ich bin sshfür mich selbst :)
Zanna
1
Ich meinte im Allgemeinen bei der Verwendung ssh. Ja, localhostdas ist kein Problem.
Matei David
ssh ... <cmd>wird beendet, wenn <cmd>fertig ist. Wenn Sie die Shell danach behalten möchten ls, versuchen Sie es ssh localhost -t 'bash -ci "l.; exec bash"'.
Matei David
Aha ich verstehe. Vielen Dank. Ich werde meine Kommentare löschen :)
.bashrc
wird nur gelesen, wenn die Shell interaktiv ist.alias l.='ls -d .* --color'
die Farben angezeigt. Ich dachte nur, ich würde das hinzufügen. Zumindest habe ich das erlebt.source .bashrc
)alias l.='ls -dC .* --color'
wo dieC
Spalten angezeigt werden.Antworten:
Versuchen:
Hinweis:
Der Alias sollte sich
~/.bashrc
auf dem Remote-Server befinden, nicht auf Ihrem lokalen Computer.Die
-i
Option weistbash
an, eine interaktive Shell auszuführen. Aliase sind standardmäßig nur in interaktiven Shells aktiviert.Die
-t
Option weistssh
an, eine Pseudo-Tty zuzuweisen. Ohne diesebash
sendet eine Warnmeldung , wenn im interaktiven Modus gestartet. Dies ermöglicht auchls
Farben. Ohne es müssten Sie verwenden--color=always
, sehen Sieman ls
.Es gibt eine andere Möglichkeit, Aliase zu aktivieren, ohne das interaktive Flag zu setzen, nämlich
shopt -s expand_aliases
. Sie könnten also versuchen:Jedoch:
Ihre
.bashrc
Macht nur definieren Aliase , wenn die Shell es Sourcing interaktiv ist. In diesem Beispiel wäre die Shell zu diesem Zeitpunkt nicht interaktiv.Wenn Sie versuchen, Aliase in derselben Zeile zu definieren, lesen Sie dies .
quelle
ssh
für mich selbst :)ssh
. Ja,localhost
das ist kein Problem.ssh ... <cmd>
wird beendet, wenn<cmd>
fertig ist. Wenn Sie die Shell danach behalten möchtenls
, versuchen Sie esssh localhost -t 'bash -ci "l.; exec bash"'
.