Farbiges Bash-Prompt

  • Das Bash-Prompt kann bekanntlich angepasst werden. Oft ist es standardmäßig z.B. "u@h:w$ ", wobei die Bash u durch den Benutzernamen, h durch den Hostnamen, w durch das Arbeitsverzeichnis und $ durch $ (wenn die UID nicht 0 ist) oder # (wenn die UID 0 ist) ersetzt. Die Form für das aktuelle Prompt steht in der Umgebungsvariablen PS1. Das Bash-Prompt mit Farbe auszustatten macht durchaus Sinn, denn es wird dadurch übersichtlicher, sofern man es mit den Farben nicht übertreibt. Die Methode, direkt Terminal-Kontrollsequenzen anzugeben (die durch 33[ eingeleitet werden und auf m enden) funktioniert leider nicht. Wenn man das Prompt z.B. mit PS1="33[0;32mu33[0m@[0;32mh33[0m[1;33mw33[0m$" wird ein äußerst bizarrer Zeilenumbruch verwendet, da die Bash nicht weiß, dass es sich bei den meisten Zeichen hier um Kontrollsequenzen handelt und der Ort für den Umbruch Falsch berechnet wird. Die Lösung ist, alle Kontrollsequenzen in [ und ] einzuschließen. Nur auf diese Weise kann man ein farbiges Prompt sinnvoll verwenden. Ein Prompt könnte dann z.B (in der ~/.bashrc) so gesetzt werden: PS1="[33[0;36m] [33[1;35m]^ [33[0;32m]u[33[1;34m]@[33[0;32m] h[33[1;35m]:[33[1;33m]w[33[0m] [33[1;34m]$[33[0m]" Eine Erklärung vieler weiterer Möglichkeiten und eine Liste aller Farben finden Sie im Bash-Prompt-HOWTO.