2398538

Bash-Eingabeaufforderung: Zufällige Farben

05.02.2019 | 15:05 Uhr | David Wolski

Bei der Arbeit mit mehreren Terminalfenstern und SSH-Verbindungen geht schon mal der Überblick verloren, wo welche Shell geöffnet ist. Eine unterschiedliche Farbgebung für jede Eingabeaufforderung hilft dabei, Terminalfenster zu unterscheiden.

In der Bourne Again Shell (BASH), die in den meisten Linux-Systemen als Standard-Shell dient, steuert die Umgebungsvariable „$PS1“ das Aussehen der Eingabeaufforderung am Anfang jeder Zeile. Der Ort zur Definition dieser Variable ist die Datei „.bashrc“ im Home-Verzeichnis aller User auf dem System. Auf unterschiedlichen Systemen ließe sich dort mit Ansi-Escape-Codes ein jeweils eigenes Farbschema einrichten, um die Eingabeaufforderung auf verschiedener Linux-Server farblich voneinander abzusetzen. Die Zeile, die beispielsweise für angenehme Farben bei einem dunklen Terminalhintergrund sorgt, lautet folgendermaßen:

PS1="\[\e[37m\]\u\ [\e[m\]\[\e[36m\]@\ [\e[m\]\[\e[33m\]\h\ [\e[m\][\[\e[34m\]\W\ [\e[m\]]\[\e[35m\]:\ [\e[m\] "  

Hier geht es aber um eine clevere Lösung, die auf dem gleichen Linux-System bei jedem Öffnen einer Shell, lokal oder per SSH, immer neue Farben liefert. Denn damit sind dann auch einzelne Terminalfenster gut voneinander zu unterscheiden.

Die Farbcodes liefert ein kleines Script in der Datei „.bashrc“. Dort trägt man am Ende die folgenden vier Zeilen ein:

user=$(( RANDOM % 7 ))
host=$(( RANDOM % 7 ))
dir=$(( RANDOM % 7 ))
PS1="\[\033[01;3${user} m\]\u\[\033[01;32m\]@\ [\033[01;3${host}m\]\h\\ [\033[01;3${host}m\] \w $\[\033[00m\]"

Siehe auch: Clevere Terminal- und Bash-Tricks für Linux

PC-WELT Marktplatz

2398538