Holen Sie sich SSH-Einzeilerbefehle zum Anzeigen von Farbe

Holen Sie sich SSH-Einzeilerbefehle zum Anzeigen von Farbe

Ich möchte die farbige Textausgabe bei SSH-Einzeilerbefehlen aktivieren, aber ich kriege es unter OS X, Ubuntu 14.10 oder OpenSUSE 12.2 nicht hin.

Wenn ich mich per SSH mit einem Server verbinde und beispielsweise ls --color=autoin die Eingabeaufforderung eingebe, funktioniert es einwandfrei und zeigt Verzeichnisse, symbolische Links und normale Dateien in unterschiedlichen Farben an. Wenn ich den Befehl jedoch in einer SSH-Einzeilerzeile auf demselben System eingebe: ssh user@host "ls --color=auto", ist die Ausgabe nicht farbig.

Durch die Eingabe echo $TERMerfahre ich xterm-256color, ob ich es in eine einzeilige Anweisung eingefügt habe oder nicht.

Dies dient hauptsächlich der Farbcodierung von Fehlern und Warnungen bei Remote-Builds, aber es wäre schön, es für alles aktiviert zu haben.

Irgendein Rat?

Antwort1

ssh user@host "ls --color=auto"

lsgibt nur Farben aus, wenn es auf ein Terminal schreibt. Wenn Sie einen Befehl angeben, der sshauf dem Remote-Host ausgeführt werden soll, weist ssh standardmäßig kein TTY (Terminalschnittstelle) zu. Wenn Sie also den obigen Befehl ausführen, weist ssh auf dem Remote-System kein Terminal zu, ls erkennt, dass nicht auf ein Terminal geschrieben wird, und gibt keine Farben aus.

Sie können ssh mit der Option ausführen, -tein Terminal zuzuweisen. Folgendes sollte Farben drucken:

ssh -t user@host "ls --color=auto"

Wenn sshes nicht interaktiv ausgeführt wird und seine eigene lokale Ausgabe nicht an ein Terminal geht, wird ein einzelnes -tFlag ignoriert. In diesem Fall können Sie -tmehr als einmal angeben, um SSH zu zwingen, ein TTY auf dem Remote-System zuzuweisen:

ssh -tt user@host "ls --color=auto"

Antwort2

Ich würde vorschlagen, --color=alwaysim Fall von ls zu verwenden, um Farbe zu erzwingen. Und um Farben in anderen Apps zu haben, die Farbgebung unterstützen, aber nicht für --color=value, können Sie auch versuchen,ssh <host> -t "TERM=${TERM} <command>"

verwandte Informationen