Linux-Tricks für mehr Komfort

Terminal-Tuning

22.12.2015
Von 
Mehr über Hermann Apfelböck erfahren Sie unter http://apfelböck.de.

Informativer Super-Prompt

Filtern der History: Mit diesen Direktiven zeigt die Bash bei den Tasten Bild-oben und Bildunten nur noch Einträge, die mit dem bereits eingegebenen Teilbefehl übereinstimmen.
Filtern der History: Mit diesen Direktiven zeigt die Bash bei den Tasten Bild-oben und Bildunten nur noch Einträge, die mit dem bereits eingegebenen Teilbefehl übereinstimmen.

Die Anzeige bei jeder Befehlseingabe, der Prompt, kann mehr oder weniger alle aktuellen Informationen anbieten, die Sie zur Orientierung erwarten. Die Prompt-Anzeige definieren Sie interaktiv zum Testen und dauerhaft in der Datei „.bashrc“ mit „PS1='…'“. Standardvariablen wie das aktuelle Verzeichnis, Datum oder Uhrzeit werden durch vordefinierte Escape-Zeichenfolgen angefordert, etwa „\w“ für das aktuelle Verzeichnis – also:

PS1='/w'

Darüber hinaus können Sie aber auch jede beliebige Umgebungsvariable einfach mit „$[Variable]“ in die PS1-Definition setzen

PS1='/w [$LOGNAME]'

Um Infos gegeneinander abzugrenzen, sind ferner Farbdefinitionen vorgesehen, die stets mit der Sequenz „\[\033“ starten. Ein komplexer Prompt wie

PS1='\n\[\033[47;30m\]\d, \A \ [\033[41;37m\] \u on \H \ [\033[47;30m\] MB free=$freemem \[\033[41;37m\] $CPU \ [\033[40;37m\] [$timediff] \ [\033[42;30m\] \w \[\033[0m\]\n'

erscheint kryptisch. Wenn Sie den simplen Mechanismus verstanden haben, verliert er aber seinen Schrecken: Es geht Schritt für Schritt von einer Escape- Sequenz zur nächsten – „\n“ bedeutet einen Zeilenumbruch, „\[\033“ schaltet dann die Farben um, „\d“ setzt danach das Datum ein, erläuternder Text oder Zeichen wie Komma oder Blank sind an jeder Stelle möglich, ferner auch Systemvariablen mit „$“. Wichtig ist, Farbdefinitionen am Ende wieder explizit wieder zurückzusetzen („\[\033[0m\]“), andernfalls sind Störungen mit den allgemeinen Terminal- Farbeinstellungen („Bearbeiten fi Einstellungen fi Farben“) zu erwarten.

Die Wirkung des obigen Prompt- Beispiels sehen Sie in der Abbildung auf dieser Seite: Sie können also neben Standardvariablen wie Datum, Uhrzeit, User, Host, Arbeitsverzeichnis im Prinzip jede beliebige Info im Bash- Prompt anfordern. Im Beispiel sehen Sie den freien Arbeitsspeicher, die CPUAuslastung und einen Sekunden-Timer.