Jetzt ist Schluss mit dem grauen Shell-Alltag – renovieren Sie die Konsole und verpassen Sie ihr mit ANSI-Escape-Sequenzen einen neuen Look.
Schwarz auf Weiß oder Weiß auf Schwarz – so langweilig muss heutzutage kein Terminal mehr aussehen. Jede moderne Linux-Konsole stellt problemlos zahlreiche Farben dar und koloriert damit Programmausgaben, Begrüßungsmeldungen und sogar den Shell-Prompt. Dieser Artikel zeigt, wie Sie Farbe ins Spiel bringen und die Kommandozeile renovieren.
Der Farbtopf
Einige Programme bringen sie von Haus aus mit – Parameter, die die Ausgabe einfärben. Sowohl Ls als auch Grep verstehen die Option --color, die mit bunter Ausgabe auf der Konsole für mehr Übersicht sorgt (Abbildung 1). Für den Anstrich sorgen die so genannten ANSI-Escape-Sequenzen.

Abbildung 1: Die Befehle Ls und Grep färben auf Wunsch die Programmausgabe ein und sorgen so für mehr Übersicht.
Um beispielsweise mithilfe des Tools Echo eine farbige Textzeile auf der Bash auszugeben, markieren Sie den entsprechenden Text mit einer solchen Escape-Sequenz. Listing 1 zeigt entsprechende Beispiele.
echo -e "Ein \033[0;34mblaues Huhn\033[0m. Das ist wieder normaler Text." echo -e "Ein \e[0;34mblaues Huhn\e[0m. Das ist wieder normaler Text." echo "Ein ^[[0;34mblaues Huhn^[[0m. Das ist wieder normaler Text." echo -e "Ein \033[0;34m\033[41mblaues Huhn\033[0m sitzt gerne auf roten Sachen."
Dort sieht man, dass die Eingabe des Escape-Zeichens (^[) selbst auf verschiedene Art und Weise möglich ist. Die oktale Schreibweise lautet \033; in dieser Form (und auch bei der Schreibweise \e) benötigt das Echo-Programm die Option -e, um die Interpretation des Backslash zu ermöglichen. Alternativ geben Sie das Zeichen in Vi(m) und auf der Bash ein über die Tastenkombinationen:
- [Strg]+[V],[Esc]
- [Strg]+[V],[Strg]+[[]
In (X)Emacs benutzen Sie eine der drei Tastenkombinationen:
Nach dem Escape-Zeichen folgen eine sich öffnende eckige Klammer und der Farbcode (abgeschlossen durch das m): Vor dem Semikolon steht optional ein Attribut für die Vordergrundfarbe (im Beispiel 0 für normale Schrift) und eine Vorder- oder Hintergrundfarbe (im Beispiel 34 für blaue Schrift auf Standardhintergrund). Es folgt der farbige Text (blaues Huhn), und über ^[[0m schalten Sie wieder zurück auf die Standardeinstellungen für den restlichen Text.
Eigentlich bestehen die Attribute aus zwei Ziffern (zum Beispiel 00). Die einstellige Schreibweise reicht aber aus, da die erste Ziffer immer eine Null ist. Als Eigenschaften für die Vordergrundfarbe sind neben 0 unter anderem 1 (fett), 4 (unterstrichen), 5 (blinkend) oder 7 (invers) möglich. Für die Hintergrundfarben existieren kein zusätzlichen Attribute.
Abhängig davon, ob Sie auf der Konsole (gemeint sind KDEs Terminalprogramm Konsole und die virtuellen Konsolen, die Sie in der Regel über [Strg]+[Alt]+[F1]…[F6] erreichen) oder in einem Xterm arbeiten, sehen die Farben anders aus und die Attribute bewirken eine unterschiedliche Ausgabe: So verändert 1 auf der Konsole beispielsweise die Helligkeit der Vordergrundfarbe sowie im Xterm die Stärke, das heißt, sie setzt die Attribute fett oder normal (Abbildung 2). Die Tabelle “Vordergrund” gibt eine Übersicht über die Vordergrundfarben mit den beiden Attributen 0 und 1; die Tabelle “Hintergrund” zeigt die möglichen Hintergrundfarben (ohne Attribut).
Vordergrund
| Farbcode | 00 | 01 |
|---|---|---|
| 30 | Schwarz | Grau |
| 31 | Rot | Hellrot |
| 32 | Grün | Hellgrün |
| 33 | Braun | Gelb |
| 34 | Blau | Hellblau |
| 35 | Magenta | Rosa |
| 36 | Cyan | Hellcyan |
| 37 | Weiß | Hellgrau |
Hintergrund
| Farbcode | Hintergrund |
|---|---|
| 40 | Schwarz |
| 41 | Rot |
| 42 | Grün |
| 43 | Gelb (Xterm)/Braun (Konsole) |
| 44 | Blau |
| 45 | Magenta |
| 46 | Cyan |
| 47 | Hellgrau |

01 entweder die Farbe oder den Schriftgrad.” width=”300″ height=”205″ />
Abbildung 2: Abhängig davon, ob Sie Konsole oder Xterm verwenden, beeinflusst das Attribut01 entweder die Farbe oder den Schriftgrad. Sie dürfen auch Vorder- und Hintergrundfarbe miteinander kombinieren. Um beispielsweise das den Text blaues Huhn auf einem rotem Hintergrund auszugeben, hängen Sie an das Kommando für die Vordergrundfarbe direkt den Farbcode für den Hintergrund an (Listing 1, Zeile 4).
Grep mal farbig
Wem die Standardfarbausgabe der Option --color von Grep nicht zusagt, definiert die Variable GREP_COLOR mit den gezeigten Escape-Sequenzen neu. Um das voreingestellte Highlight-Rot zum Beispiel durch eine türkise, unterstrichene Schrift auf einem Hintergrund in Magenta zu ersetzen, tippen Sie:
export GREP_COLOR="04;36;45"
Die Anführungszeichen verhindern, dass die Shell das Semikolon interpretiert. Die so gesetzte Variable gilt jedoch nur für die Dauer der aktuellen Shell-Sitzung. Um Grep mit einem permanenten Anstrich zu versehen, tragen Sie den Aufruf in die Datei ~/.bashrc ein. Spätestens beim nächsten Anmelden aktiviert sich die die neue Konfiguration. Möchten Sie nicht so lange warten, lesen Sie die Bash-Konfigurationsdatei über das Kommando source ~/.bashrc zur Laufzeit ein.
Wer hat Ls angemalt?
Auch Ls nutzt die Escape-Sequenzen, um die verschiedenen Dateitypen für die Listings anzumalen: Verzeichnisse sind blau, ausführbare Dateien grün, und symbolische Links präsentieren sich in Cyan. Wer die Farben von Ls verändern möchte, etwa, weil die blaue Schrift auf schwarzen Terminal-Hintergründen schlecht lesbar ist, greift zum Programm Dircolors, das verantwortlich für die Umgebungsvariable LS_COLORS zeichnet.
Theoretisch wäre es auch möglich, diese Variable von Hand zu setzen; die Ausgabe von echo $LS_COLORS zeigt allerdings, wie lang und ausgefeilt die Einstellungen für die einzelnen Dateitypen sind. Das Programm Dircolors übernimmt den Job gerne und weiß genau, was in welcher Farbe angestrichen werden soll. Geben Sie den gleichnamigen Befehlsnamen ohne weitere Argumente auf der Shell ein, sehen Sie die aktuellen Einstellungen.
In Kombination mit dem Parameter -p zeigt Dircolors an, welche Farben für die einzelnen Dateitypen definiert sind. Am besten leiten Sie die Ausgabe über eine Pipe an das Programm Less oder More weiter und betrachten das Ganze mit dem Befehl dircolors -p | less seitenweise.
Neue Tapete für Ls
Um die Voreinstellungen für die Ls-Farben zu verändern, erstellen Sie eine eigene Konfigurationsdatei für Dircolors. Am leichtesten gelingt das, wenn Sie die Ausgabe von dircolors -p in einer Datei speichern und diese mit einem Texteditor bearbeiten. Der Befehl dircolors -p > ~/.dircolors schreibt die Ausgabe in die versteckte Datei .dircolors in Ihrem Home-Verzeichnis. Hinter Kommentarzeichen (#) versteckt befinden sich Erklärungen zu den Farbcodes und auch zu den Dateitypen.
Um beispielsweise den Anstrich für Verzeichnisse von einem dunklen Blau in Grün zu verwandeln, navigieren Sie bis zur Zeile DIR 01;34 # directory und ändern den Farbcode zu DIR 01;32 # directory für die neue Farbkombination.
Speichern Sie die Datei und verlassen Sie den Editor. Nun machen Sie die neue Konfigurationsdatei mit dircolors -b ~/.dircolors dem Programm bekannt. Ein anschließender Ls-Aufruf präsentiert die Verzeichnisse im neuen Gewand. Um die Einstellungen dauerhaft zu machen, schreiben Sie entweder eine entsprechende Export-Anweisung für die Variable LS_COLORS oder den Dircolors-Befehl selbst in die Datei ~/.bashrc. Letzteres ist auf Debian-Systemen beispielsweise der Standard:
eval "`dircolors -b ~/.dircolors`"
Da Dircolors die Variable nicht selbst setzen kann, nutzen Sie eval, um den Befehl auszuführen.
Die Haustür streichen
Mit den Escape-Sequenzen basteln Sie darüber hinaus eine farbige Begrüßung für Ihren Rechner. Für die Willkommensmeldung auf den virtuellen Konsolen ist beispielsweise die Datei /etc/issue zuständig; ihr Inhalt erscheint noch vor dem Login auf dem Bildschirm. Auf Debian-Systemen steht hier beispielsweise die Meldung Debian GNU/Linux 4.0 samesame tty5. Werfen Sie einen Blick in die Datei, sehen Sie, dass der Hostname durch die Sequenz \n und der Nummer der Konsole durch \l dargestellt wird. Weitere mögliche Steuerzeichen zeigt die Tabelle “Steuerzeichen”. Eine vollständige Übersicht liefert die Manpage zu Getty.
Steuerzeichen
\d |
Aktuelle Datum im Format YYYY-MM-DD |
\t |
Aktuelle Uhrzeit im Format HH:MM:SS |
\s |
Name des Betriebssystems |
\m |
Prozessortyp |
\r |
Nummer des Kernels |
Mit den gezeigten Farbcodes streichen Sie die Eingangstür. So sorgt der Eintrag Debian GNU/Linux 4.0 ^[[0;31m\n^[[0m \l beispielsweise dafür, dass der Rechnername rot erstrahlt. Die Datei /etc/motd (Message of the Day, also “Nachricht des Tages”) erscheint nach dem erfolgreichen Anmelden eines Benutzers. Auch diese Begrüßung tauchen Sie mit den gezeigten Werkzeugen in Farbe.
Ein Bild für die Tür
Wer kreativ ist, erstellt mit den Farbcodes ganze Bilder für die Begrüßungsdateien. Das Programm Linux_Logo [1] hilft dabei, hübsche Logos und Banner zu erstellen. Die meisten Distributionen enthalten den Künstler als Paket auf den Installationsmedien. Alternativ hilft eine RPM-Suchmaschine weiter. Der Aufruf auf der Konsole ist einfach: linux_logo zeichnet auf Debian-Systemen ein hübsches Banner mit dem Swirl und verschiedenen Informationen zum System.
Mit einigen Aufrufoptionen beeinflussen Sie das fertige Bild: So zeichnet -a in ASCII, -c zeichnet einen Pinguin. Eine vollständige Übersicht über die Parameter verrät -h. Gefällt eines der Kunstwerke, erstellen Sie auf der Shell im Handumdrehen eine neue Begrüßungsdatei, zum Beispiel über:
# cp /etc/motd /etc/motd.orig # linux_logo -b > /etc/motd
Benutzer, die sich nun anmelden, erhalten eine bunte Begrüßungsnachricht (Abbildung 3).
Farbenfroher Ausblick
Farbige Ausgaben, bunte Logos – Linux wäre nicht Linux, wenn das schon alles gewesen wäre. Bisher überhaupt nicht zur Sprache kamen farbige Shell-Prompts. Wie Sie die Eingabeaufforderung in Farbe tauchen, den Cursor mit Steuerzeichen positionieren und mit vielen weiteren Tricks nützliche Angaben in die Eingabe einbauen, verrät die nächste Zu-Befehl-Folge.
Glossar
-
ANSI
-
Die Abkürzung steht für American National Standards Institute. Das Institut normiert industrielle Verfahrensweisen und hat sich auch der Steuerzeichen für Terminals angenommen. Zu diesen Steuerzeichen gehören beispielsweise Umbrüche und akustische Signale, aber auch eingefärbte Ausgaben oder Prompts.
[1] Linux_Logo-Webseite: http://www.deater.net/weave/vmwprod/linux_logo/







Schlicht grässlich diese Spielerei – ein Feature für Leute die nicht lesen können.
Bei zu viel Farbe: sicherlich. Ansonsten für Menschen die viel auf der Konsole unterwegs sind und schnell einen Überblick wollen sehr nützlich.