Farbe der Bash-Shell (SSH) unter Linux ändern

Um eine bessere Übersicht in der Bash-Shell zu bekommen, lohnt es sich, diese entsprechend einzufärben. Dies geht unter Linux im Grunde recht einfach und mit einem einfachen Befehl. Allerdings ist nicht nur die Farbe änderbar, sondern auch die Reihenfolge der Angaben.

Um zu erkennen, wie die aktuellen Einstellungen sind, kann man den Befehl echo $PS1 nutzen. Die Standardausgabe wäre dann folgendermaßen:

Quellcode

  1. user@Server:/directory$ echo $PS1
  2. ${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Zum Verständnis: Benutzer@Servername:Verzeichnisname$

Diese Ausgabe ist zudem im allgemeinen Weiß auf schwarzem Grund. Ein Ändern der Reihenfolge empfehle ich allein aus Gründen des Verständnisses bei eventuellen Problemen nicht, weshalb ich auch nicht darauf eingehen werde.

Um ein Beispiel zu nennen, so sieht meine Variable $PS1 aus:

Quellcode

  1. \[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]
Zum Verständnis:
Das erste \ leitet ein Farbschema ein, das dann nach der folgenden eckigen Klammer [ steht.
Das \033 gibt immer an, dass das nachfolgende Farbschema für die nachfolgende Zeichenkette genutzt werden soll.
Das [01;31m\] ist dann die entsprechende Farbe. Vor dem Semikolon steht entweder 01 oder 00 (oder alternativ 1 oder 0). 01 steht für eine hellere Farbvariante, 00 für eine dunklere.Das 31m\ steht dann für den Farbcode.

Folgende Farbcodes gibt es:
Schwarz: 00;30 bzw. 01;30
Rot: 00;31 bzw. 01;31
Grün: 00;32 bzw. 01;32
Braun: 00;33 bzw. 01;33
Blau: 00;34 bzw. 01;34
Lila: 00;35 bzw. 01;35
Zyan: 00;36 bzw. 01;36
Hellgrau: 00;37 bzw. 01;37

Danach folgt die Variable \u, welche für den angemeldeten Benutzer steht.

Folgende Variablen gibt es:
\t - Zeit
\d - Datum
\n - Neue Zeile
\s - Name der Shell
\W - Das aktuelle Verzeichnis
\w - Der gesamte Verzeichnispfad
\u - Benutzername
\h - Hostname
\# - Befehlsnummer des Befehls
\! - Nummer des Befehls gesamt

Hier im Beispiel werden die Variablen \u, \h und \w genutzt, welche auch standardmäßig so vorhanden sind. Als Trennzeichen werden zudem das @ und das $ genutzt - ebenfalls normal.
Ansonsten sind die restlichen Angaben lediglich für die einzelnen Farben dieser Variablen und am Ende für die Ausgabe in der Shell zuständig.

Wenn man sich demnach seine Farben kreeiert hat, kann man sie mit folgendem Befehl testen:

Quellcode

  1. export PS1="Eure Farben - Euer Code"
Diese Einstellungen gelten dann erst einmal nur für die aktuelle Sitzung. Will man diese fest abspeichern, muss man die .bashrc im Home-Verzeichnis bearbeiten. Dort gibt man dann einfach in eine neue Zeile genau das an, was auch hinter dem export beim Befehl oben steht.

In meinem Beispiel sieht das Ganze folgendermaßen dann aus: root@KittBlog-Server /var/www $
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

2.852 mal gelesen

Kommentare 1

  • Miraculix -

    Hey,
    aus aktuellem Anlass, wenn man in /etc/bash.bashrc folgendes
    einfügt

    RED="00;31m"
    GREEN="00;32m"
    LIGHT_GREEN="01;32m"
    BROWN="00;33m"
    LIGHT_BLUE="01;34m"
    WHITE="01;37m"

    if [ "`id -u`" -eq 0 ]; then
    COLOR=$RED
    else
    COLOR=$GREEN
    fi

    Und dann PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ändern in zb
    PS1='${debian_chroot:+($debian_chroot)}\[\033[$COLOR\]\u\[\033[$WHITE\]@\[\033[$BROWN\]\h\[\033[$WHITE\]:\[\033[$LIGHT_BLUE\]\w\[\033[$COLOR\]\$\[\033[$LIGHT_BLUE\] '

    Bekommt man als root einen unterschiedlichen Prompt als ein normaler User.
    Damit das auch bei dem Normalen User dann wirkt muss man nur noch in
    /home// in der .bashrc eine Zeile auskommentieren. ( Mit dem # Symbol)

    else
    #PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    fi

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen