Wissenswertes zum Bash-Prompt

Der Bash-Prompt kann für einen Linuxbenutzer ein sehr wichtiges und mächtiges Hilfsmittel sein. Im Bash-Prompt lassen sich wichtige Informationen, wie beispielsweise der Returncode des letzten Befehls, der aktuelle Nutzername oder auch das aktuelle Verzeichnis dynamisch anzeigen. Ich selbst habe den Bash-Prompt zusätzlich in Farbe konfiguriert, sodass ich z.B. durch roten Hintergrund gewarnt werde, dass ich gerade als “root” handle. Normale Benutzer ohne Root-Berechtigungen sind hingegen cyan.

Die Darstellung des Bash-Prompt wird in der Benutzervariable “$PS1” gespeichert. Die Variable selbst wird meist in der Datei ~/.bashrc deklariert. Für den Benutzer root sieht meine $PS1 zum Beispiel folgendermaßen aus:

[$(tput setaf 10)][\t][$(tput sgr0)] [$(tput bold)][$(tput setaf 1)]$?[$(tput setaf 2)]:[$(tput setab 1)][$(tput setaf 7)]\u[$(tput sgr0)][$(tput setaf 2)]@[$(tput bold)]\h[$(tput setaf 2)][$(tput sgr0)][$(tput setaf 2)]:[$(tput bold)]\w[$(tput sgr0)][$(tput setaf 2)]\$ [$(tput sgr0)]
Bash Prompt Vorschau
Der obige Codeblock führt zu diesen Ergebnis

Der Codeblock sieht auf den ersten Blick erstmal recht kompliziert aus. Wenn man aber einmal mit der Funktionalität rund um den Befehl tput vertraut ist, erklärt sich Obiges von ganz allein. Hier breche ich den Code einmal auf seine Einzelteile herunter:

[$(tput setaf 10)][\t][$(tput sgr0)] 

Die aktuelle Uhrzeit im 24 Stunden Format mit Sekundenanzeige (HH:MM:SS). Schrift in Grün, kein Hintergrund. Am Ende ein Leerzeichen.

[$(tput bold)][$(tput setaf 1)]$?[$(tput setaf 2)]:

Die Return Code des letzten Befehls (“$?”) fettgedruckt, gefolgt von einem Doppelpunkt, ebenfalls fettgedruckt. Der Return Code ist in rot geschrieben, der Doppelpunkt in Grün.

[$(tput setab 1)][$(tput setaf 7)]\u[$(tput sgr0)][$(tput setaf 2)]@

Der Benutzername (Hier weiße Schrift mit rotem Hintergrund, weil es sich um den Benutzer root handelt) weiterhin fettgedruckt, gefolgt von einem grün geschriebenen “@”, welches nicht mehr fettgedruckt ist.

[$(tput bold)]\h[$(tput setaf 2)][$(tput sgr0)]

Der Hostname (Nicht FQDN!) in grüner Schrift ohne Hintergrund, wiederum fettgedruckt.

[$(tput setaf 2)]:[$(tput bold)]\w[$(tput sgr0)][$(tput setaf 2)]\$ [$(tput sgr0)]

Ein weiterer Doppelpunkt, gefolgt vom aktuellen Verzeichnis in fettgedruckt, einem abschließenden Dollarzeichen und Leerzeichen, jeweils in grüner Schrift und nicht mehr fettgedruckt.

Eine Übersicht über die mit tput nutzbaren Steuerzeichen und Farben. Sofern nicht anders gekennzeichnet gilt immer “ab hier solange, bis es abgeschaltet wird”:

BefehlBeschreibung
tput boldfettgedruckter Text
tput smulUnterstrichener Text
tput rmulENDE von unterstrichenem Text
tput revSchrift- und Hintergrundfarbe umkehren
tput blinkBlinkender Text
tput invisUnsichtbarer Text
tput sgr0Alle Attribute abschalten
tput setaf [Farbwert]Schriftfarbe ändern
tput setab [Farbwert]Hintergrundfarbe ändern
FarbwertFarbe
0Schwarz
1Rot
2Grün
3Gelb
4Blau
5Magenta
6Cyan
7Weiß
9Standardfarbe

Wie gezeigt kann man über den Bash-Prompt eine ganze Reihe sinnvoller (und weniger sinnvoller) Funktionen abbilden. Nutzt ihr noch weitere/andere Funktionen im Bash-Prompt? Schreibt es gern in die Kommentare, dann ergänze ich den Beitrag!