Farben in SSH-Verbindung

8

Ich habe ein farbenfrohes Bash-Terminal (z. B. ls und vim zeigen Farben, wenn sie dafür konfiguriert sind).

Wie kann ich diese Farben haben, wenn ich über ssh eine Verbindung zu einem Remote-Server herstelle?

Adam Matan
quelle

Antworten:

3

Lesen Sie den Unterabschnitt dircolors.sh aus dem Buch "Beyond Linux From Scratch":

Dieses Skript verwendet die Dateien ~/.dircolorsund /etc/dircolors, um die Farben der Dateinamen in einer Verzeichnisliste zu steuern. Sie steuern die kolorierte Ausgabe von Dingen wie ls - color . Die Erklärung zum Initialisieren dieser Dateien finden Sie am Ende dieses Abschnitts.

cat > /etc/profile.d/dircolors.sh << "EOF"
# Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
        eval $(dircolors -b /etc/dircolors)

        if [ -f "$HOME/.dircolors" ] ; then
                eval $(dircolors -b $HOME/.dircolors)
        fi
fi
alias ls='ls --color=auto'
alias grep='grep --color=auto'
EOF
nik
quelle
9
Können Sie Ihre Antwort ein wenig erweitern? Die Frage hat 2.800 Aufrufe - wäre toll, etwas mehr Kontext hinzuzufügen.
Slhck
Fedora 20 wird auch mit einem colorls.sh- Skript geliefert .
Cristian Ciupitu
3

Mit einer Kombination aus /unix/9883/how-can-i-run-a-script-immediate-after-connecting-via-ssh und der Antwort von nik können Sie Folgendes tun:

ssh host.example.com -t '. /etc/profile; . ~/.profile; /bin/bash'

Dadurch werden Ihre Profilskripte beim Anmelden ausgeführt und anschließend eine Bash-Shell geöffnet. In Ihren Profilskripten werden die Farben definiert.

Oder fügen Sie Ihrer ~/.ssh/configDatei für maximalen Komfort Folgendes hinzu :

Host *
  LocalCommand . /etc/profile; . ~/.profile; /bin/bash
Jeremy Ninnes
quelle