Wenn ich über ssh eine Verbindung zu Remote-Hosts herstelle, ist alles nur eine einzige Schriftart / Farbe. Ich möchte Farben haben, wie ich sie lokal habe, zB grün für ausführbare Dateien und blau für symbolische Verknüpfungen usw. Und so, dass wenn ich $ git diff auf dem ssh-Host starte, es mir diff mit Farben anzeigt =)
command-line
ssh
Dima
quelle
quelle
Antworten:
Da es sich um xterm auf dem Server handelte, stellte ich fest, dass etwas nicht stimmte
.bashrc
Und in der Tat!
ls --color=auto
funktioniert nur, wenn Sie mit TTY verbunden sind. Ändern alles einfach--color
in.bashrc
auf dem Remote - Host und alles ist in schönen Farben jetzt.quelle
Das hat bei mir funktioniert:
-t
war der Schlüssel. Erklärt .quelle
su -
Befehl in der SSH-Verbindungsaufforderung gabScheint
~/.bashrc
, als wären für mich bereits Farben eingestellt und das Problem ist, dass ssh die bashrc-Datei nicht verwendet. Sie können bashrc in Ihrer ssh-Sitzung verwenden, indem Sie Folgendes hinzufügen~/.bash_profile
:quelle
Was ist der Inhalt Ihrer XTERM-Umgebungsvariablen auf dem Server, wenn Sie eine Verbindung herstellen?
quelle
In meinem Fall bestand der fehlende Teil aus farbigen ls, grep usw., die durch Hinzufügen von Aliasen zur .bashrc-Datei hinzugefügt werden können:
usw.
quelle
Ich habe versucht, die
~./bashrc
Einstellungen zu ändern (sowohl auf dem lokalen als auch auf dem Remote-Server), aber es schien nicht zu funktionieren.Dann ist mir aufgefallen, dass
~/.bashrc
der Remoteserver nicht mal ausgeführt wird, wenn ich ihn über ssh verbinde. Also habe ich aus~/.bashrc
Remote-Server gemacht, um per Puttinngif [ -f ~/.bashrc ]; then . ~/.bashrc fi
in Remote-Server's~/.bash_profile
auszuführen . (basierend auf https://stackoverflow.com/questions/820517/bashrc-at-ssh-login ).Für diese Lösung mussten keine
~/bashrc
Dateien direkt geändert werden, aber die~/bash_profile
Datei des Remoteservers musste geändert werden, damit die~/bashrc
Datei des Remoteservers ausgeführt wurde.quelle
.profile
und nicht.bash_profile
standardmäßig, und der Standard.profile
ist Quelle.bashrc
..profile
es standardmäßig ausgeführt, wenn man sich über ssh anmeldet?.bash_profile
, wird Bash ausgeführt,.profile
wenn es als Anmeldeshell gestartet wird. Und SSH startet Bash als Login-Shell.~/.profile
nicht gelesen wird, wenn~/.bash_profile
vorhanden. Aber gibt es nicht~/.bash_profile
standardmäßig auf Ubuntu?.profile
.Da die Farben beim direkten Einloggen einwandfrei funktionierten, habe ich nur die Zeile
force_color_prompt=yes
in der Datei auskommentiert~/.bashrc
, die mir auch Farben über ssh gab:(Ubuntu 18.04 LTS)
quelle
In meiner Situation habe ich vor kurzem installiert
chef-local
und es hat mich gebeten, eine Zeile hinzuzufügen.bash_profile
. Wenn ich mich anmelde, wird.bashrc
nie mehr geladen, weil es gesehen hat.bash_profile
.Was ich getan habe, war eine Zeile hinzuzufügen in
.bash_profile
:Ich loggte mich aus und wieder ein und bekam sofort mein farbiges Terminal.
quelle
Es gibt einen Kommentar von "Mike E" darüber, der die Antwort für mich enthielt, aber es ist nicht nur schwer zu lesen, es ist auch schwer herauszufinden, was er bedeutet, wenn man nicht
.bashrc
viel benutzt - und ich weiß nicht. ' t.Nachdem ich ein bisschen herumgeschraubt hatte, erhielt ich die gewünschten Ergebnisse, indem ich die folgenden Zeilen
~/.bashrc
auf dem Computer änderte, auf dem ich mich mit ssh anmeldete:zu:
Ich denke, ich hätte einfach "| xterm" nach "color" in der ersten Zeile einfügen können, oder mich umsehen und herausfinden, warum ssh "xterm" anstelle von "xterm-color" verwendete, und das ändern, aber das funktioniert und ich habe jetzt andere Dinge zu tun.
quelle
Ich habe beim Herstellen einer Verbindung über einen Proxy meine Farbe verloren, weil
TERM=dumb
ich Folgendes behoben habe:quelle