Aufmacher

Make-up für den Prompt

Bash-Prompt konfigurieren

01.09.2007
Bringen Sie die Bash so richtig in Form – wir zeigen, wie Sie mit Farbe und anderen Steueranweisungen einen speziell angepassten Shell-Prompt basteln.

Kommandozeilenfreunde sehen oft den Prompt vor lauter Xterms nicht mehr – Zeit für etwas mehr Präsenz. Sieht die Eingabeaufforderung auf entfernten Rechnern anders aus als zu Hause, bewahrt das vielleicht vor unbeabsichtigten Shutdown-Kommandos, und wenn unprivilegierte Benutzer in Grün unterwegs sind, der Root-Prompt aber in Rot erstrahlt, verhindert das möglicherweise die eine oder andere Fehlkonfiguration oder sogar Datenverluste. Ein auf die eigenen Bedürfnisse zugeschnittener Shell-Prompt beugt Verwechslungen vor.

Der Standard-Prompt für die Bash sieht auf den meisten Linux-Distributionen ähnlich aus. Suse-Linux-Systeme richten für normale Benutzer beispielsweise user@host:~> ein, und auf Debian-Systemen steht hier user@host:~$. Die Tilde repräsentiert das Home-Verzeichnis; auf beiden Systemen zeigt der Prompt also das aktuelle Arbeitsverzeichnis an und hilft so bei der Orientierung. Wechseln Sie unter Debian beispielsweise in den Ordner /var/log, sieht der Prompt anschließend so aus:

user@host:/var/log$

Auf den meisten Linux-Systemen verändert sich der Prompt, wenn Sie als Root unterwegs sind. In der Regel entfällt der Benutzername und anstelle einer spitzen Klammer oder eines Dollarzeichens steht dort nun eine Raute (#).

Alles variabel

Für das Aussehen des Bash-Prompts, wie er nach dem Ausführen eines Befehls als Eingabeaufforderung erscheint, zeichnet sich die Umgebungsvariable [2]$PS1 verantwortlich.

Zu Testzwecken modifizieren Sie die Variable $PS1 temporär in der aktuellen Shell. Erst, wenn der Prompt vom Look & Feel her Ihren Ansprüchen genügt, machen Sie die Einstellungen dauerhaft, indem Sie die Bash-Konfigurationsdatei ~/.bashrc anpassen: Suchen Sie dort nach den Voreinstellungen für $PS1, kommentieren die Zeile durch ein vorangestelltes Rautezeichen (#) aus und tragen Sie statt dessen Ihre eigene Konstruktion ein.

Geht eines der in den nächsten Abschnitten gezeigten "prompten" Experimente schief, schließen Sie einfach die aktuelle Bash-Sitzung und öffnen eine neue – oder rufen source ~/.bashrc auf, um zum Vorgabewert für den Prompt zurückzukehren.

Prompts für jede Gelegenheit

Neben $PS1 gibt es auch noch einige weitere Umgebungsvariablen, die das Aussehen des Bash-Prompts beeinflussen:

  • $PS2, das erscheint, wenn Sie eine Befehlszeile mit Druck auf [Eingabe] umbrechen, sie aber noch nicht abgeschlossen ist – etwa, weil schließende Anführungszeichen oder Klammern fehlen,
  • $PS3, das die select-Kontrollstruktur der Bash verwendet, und
  • $PS4, das beim Debugging eines Skripts vor jeder Linie erscheint).

Dieser Artikel konzentriert sich allerdings ganz auf $PS1, da dessen Geschwister im Shell-Alltag eher selten auftauchen.

Ein neues Format

Um Benutzer- und Rechnernamen aus dem Prompt zu verbannen und einen kurzen knappen Prompt mit dem Dollarzeichen zu setzen, reicht der Aufruf:

huhn@samesame:~$ export PS1=$
$ls
bin/   easy/   user/

Das ist zwar platzsparend, allerdings recht eng aneinander gerückt. Bevorzugen Sie ein Leerzeichen zwischen dem Dollarzeichen und dem Befehl, dann schließen sie dieses und das vorangehende Dollarzeichen in Anführungszeichen ein:

$export PS1='$ '
$ ls
bin/   easy/   user/

Das gleiche gilt für die so genannten Bash-Escape-Sequenzen (siehe Tabelle "Escape-Sequenzen für den Prompt"): Immer, wenn der Wert für $PS1 diese Anweisungen, Leer- oder Sonderzeichen enthält, schließen Sie den Ausdruck in Anführungszeichen ein.

Escape-Sequenzen für den Prompt

Zeichen Bedeutung
\d Datum im Kurzformat, zum Beispiel Di Jul 24
\e das Zeichen für "Escape" ("^[")
\h Hostname des Rechners in Kurzform (bis zum ersten Punkt, zum Beispiel samesame)
\H Hostname des Rechners in Langform, zum Beispiel samesame.huhnix.org
\j Anzahl der Jobs, die in dieser Shell laufen
\l Basisname des Terminals, zum Beispiel 10, wenn das Terminal pts/10 heißt
\n Zeilenvorschub (engl. "new line")
\r Wagenrücklauf (engl. "carriage return")
\s Name der Shell, zum Beispiel bash
\t Uhrzeit im 24-Stunden-Format (HH:MM:SS), zum Beispiel 22:11:55
\A Uhrzeit im 24-Stunden-Format ohne Sekunden (HH:MM), zum Beispiel 22:11
\T Uhrzeit im 12-Stunden-Format (HH:MM:SS), zum Beispiel 10:11:55.
\@ Uhrzeit im 12-Stunden-Format ohne Sekunden (HH:MM), zum Beispiel 10:11.
\u Benutzername, zum Beispiel huhn
\v verwendete Bash-Version, zum Beispiel 3.1
\V Bash-Release mit Versionsnummer und Patchlevel, zum Beispiel 3.1.17
\w das aktuelle Arbeitsverzeichnis mit voller Pfadangabe, zum Beispiel huhn@samesame /etc/apt$ etc.
\W das aktuelle Arbeitsverzeichnis, auf den momentanen Ordner beschränkt, zum Beispiel huhn@samesame apt$, wenn sich Benutzer in /etc/apt aufhält
\! Reigenfolge des Kommandos in der Bash-History, zum Beispiel 123 für das 123. ausgeführte Kommando.
\# Anzahl des Kommandos in der aktuellen Shell-Sitzung
\$ zeigt ein Dollarzeichen für alle Benutzer, die nicht die UID 0 (= Root) haben, andernfalls ein Rautezeichen (#)
\nnn dreistellige Oktalzahl nnn, mit der Sie jedes beliebige ASCII-Zeichen darstellen, zum Beispiel \033 für "Escape"
\\ der Backslash selbst (\)
\[ Einleitung für nachfolgende Steuerzeichen, zum Beispiel ANSI-Escape-Sequenzen oder ANSI-Steuersequenzen für den Cursor.
\] schließt die Eingabe von Steuerzeichen ab

Mit den Escape-Sequenzen bringen Sie den Prompt ganz schön in Form. Wer Wert auf den Benutzer- und Hostnamen legt, fügt diesen beispielsweise über \u und \h hinzu. Trennen Sie beide noch durch einen Klammeraffen (@), sieht das schon recht übersichtlich aus:

$ export PS1='\u@\h$ '
huhn@samesame$

Was noch fehlt, ist das momentane Arbeitsverzeichnis: Wechseln Sie mit diesem Prompt das Verzeichnis, müssen Sie jedes Mal mit dem Befehl pwd ("print working directory") nachschauen, wo im Verzeichnisbaum Sie sich eigentlich befinden. Abhilfe schaffen die Escape-Sequenzen \w und \W. Während erstere den vollen Pfad darstellt und bei sehr langen Pfaden schnell zum Bandwurm wird, zeigt letztere nur den Verzeichnisnamen an (Abbildung 1).

Abbildung 1: Weniger kann mehr sein: Wer die Escape-Sequenz \W statt \w im Prompt verwendet, sieht nicht den vollen Pfad, sondern nur den aktuellen Verzeichnisnamen.

Legen Sie Wert auf die Uhrzeit, stehen gleich drei Möglichkeiten zur Auswahl: \t zeigt die Zeit im 24-Stunden-Format (HH:MM:SS), \T (HH:MM:SS) und \@ (HH:MM) im 12-Stunden-Format, einmal mit und einmal ohne Sekunden. Eckige Klammern sorgen bei der Ausgabe zusätzlich für Übersicht (Listing 1).

Listing 1
huhn@samesame ~$ export PS1='[\t] \u@\h \w$ '
[20:53:03] huhn@samesame ~$ export PS1='[\T] \u@\h \w$ '
[08:53:06] huhn@samesame ~$ export PS1='[\@] \u@\h \w$ '
[08:53 ] huhn@samesame ~$

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Tricks für die Bash
    Mit ein paar grundlegenden Kniffen bringen Sie Schwung und Farbe in die Arbeit auf der Kommandozeile.
  • Bash-Konfiguration, die zweite
    In diesem zweiten Teil der Serie über die Konfiguration der Bash wird es noch einmal praktisch: Das Einstellen des Prompts, und die für die Fehlersuche so nützlichen Tracing-Modi werden beschrieben.
  • Ein neuer Anstrich
    Jetzt ist Schluss mit dem grauen Shell-Alltag – renovieren Sie die Konsole und verpassen Sie ihr mit ANSI-Escape-Sequenzen einen neuen Look.
  • Know-how für die Kommandozeile
    Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sie manche Aufgabe schneller als in grafischen Programmen bewältigen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
  • Farbige Shell-Prompts und "ls"-Ausgaben
    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.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...