Aus EasyLinux 01/2012

Farbige Shell-Prompts und „ls“-Ausgaben

Farbe für die Shell

Die Bash lässt sich in vielfältiger Weise konfigurieren und den persönlichen Vorlieben anpassen. Ein individueller Prompt kann die Übersichtlichkeit fördern, und auch die Ausgabe von „ls“ wird mit Farben lesbarer.

Dieser Beitrag widmet sich der individuellen Gestaltung des so genannten Prompts und der farblichen Gestaltung der Anzeige von ls. Es geht nicht darum, die Terminal-Anwendung mit farbigen Schriften oder Hintergründen zu versehen: Das ist über die Programmeinstellungen möglich, bei KDEs Konsole z. B. über Einstellungen / Profile verwalten. Wer den Prompt mit individuellen Farben konfiguriert, findet sein Farb-Setup in jedem Terminal-Programm wieder, auch bei der Anmeldung im Textmodus (ohne grafische Oberfläche).

Konfigurationsdateien

Die die Bash zu konfigurieren, setzen Sie Umgebungsvariablen global in der Datei /etc/profile oder wahlweise für Ihr Benutzerkonto in $HOME/.bashrc. In der Regel sind hier bereits eine Reihe von Umgebungsvariablen voreingestellt, wie etwa PATH oder PS1 für den Prompt. Das Experimentieren mit Umgebungsvariablen ist relativ leicht: Kommentieren Sie die vorhandenen Einstellungen (durch Voranstellen einer Raute „#“) aus, so dass sie sich jederzeit wieder verfügbar machen lassen. Es gibt noch zahlreiche weitere Konfigurationsdateien, deren Verwendung davon abhängt, wie Sie eine Shell starten; eine detaillierte Beschreibung führt an dieser Stelle aber zu weit.

Prompt individualisieren

Zum Individualisieren des Shell-Prompts können Sie mit der Variablen PS1 experimentieren. Deren aktuellen Wert zeigen Sie mit echo $PS1 an. Als minimalistisches Beispiel können Sie

PS1='> '

eingeben, danach besteht der Prompt nur noch aus dem „>“-Zeichen. Sie können Ausgaben von beliebigen Bash-Befehlen in den Prompt integrieren, z. B. über

PS1='$(pwd) > '

womit der Minimal-Prompt von oben stets den vollen aktuellen Pfad mit anzeigt. Ein weiteres Beispiel in der Form Uhrzeit user@rechner verzeichnis > wird so gesetzt:

PS1='\A \u@\h \W >'

Bei \A, \W und anderen Zeichenkombinationen, die mit einem Backslash beginnen, handelt es sich um so genannte Escape-Sequenzen, welche dazu führen, dass die Bash im Prompt nicht einfach den Backslash ausgibt, sondern besondere Inhalte, wie eben die Uhrzeit oder den Benutzernamen.

Befehle und Standard-Escape-Zeichen lassen sich übrigens auch beliebig komplex schachteln und außerdem um ganz normale Zeichen ergänzen, so dass sich jeder beliebige Text als Prompt verwenden lässt.

Prompt mit Farben

Neben dem individuellen Gestalten des Prompts lässt sich die Variable PS1 zudem mit individuellen Farbkodierungen bestücken, wofür auch Escape-Sequenzen nötig sind. Farben können zu einer übersichtlicheren Darstellung beitragen. Mit

PS1="\[\033[0;32;40m\u@\h:\w\$ \]"

wählen Sie die Vordergrundfarbe grün (32) und die Hintergrundfarbe schwarz (40). Die Null (0) steht für „normale“ Schrift, 1 ergäbe „fett“.

Das Einklammern von Escape-Squenzen mit eckigen Klammer verhindert mögliche Interpretationsfehler der Shell. Die Angabe \033 ist die Oktaldarstellung der Zahl 27, laut ASCII-Tabelle verbirgt sich dahinter das Zeichen „Escape“: Das Zeichen leitet die Farb-Escape-Sequenz ein.

Jede Farbdefinition bleibt gültig, bis eine neue erfolgt. In der zuletzt angegebenen Farbe liest die Shell anschließend auch neue Kommandos ein. Für die Vorder- und Hintergrund stehen jeweils die gleich acht Farben zur Verfügung. Schwarz, Rot, Grün, Gelb, Blau, Magenta, Cyan und Weiß haben die Werte 30 bis 37; für die Hintergrundfarben sind es entsprechend 40 bis 47.

Damit die Schrift nach dem Prompt nicht ebenfalls grün ist, hängt man am Ende die Escape-Sequenz \033[0m an. Ein Beispiel dafür ist:

EasyLinux 01/2012 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: