Nicht jedem gefällt der Prompt der Bash am Terminal unter Linux, je nach Distribution ist dieser anders gestaltet – hier einmal unter Debian Sid:
robertg@robert-nblbwax9n:~$
Zu Beginn sehen Sie hier den Nutzernamen des aktuell angemeldeten Nutzers, nach dem „@“ zeigt sich der Name des Rechners, es endet mit dem Verzeichnis, in dem man sich auf dem Terminal aktuell befindet – in diesem Fall zeigt sich mit „~“ das Home-Verzeichnis.
Hier als weiteres Beispiel als root-Nutzer:
root@robert-nblbwax9n:/home/robertg#
Und genau dieser Prompt lässt sich wie gewünscht anpassen. Sie können sich diverse Informationen anzeigen lassen, wie auch die farbliche Gestaltung ändern.
Den Bash-Prompt anpassen
Als Erstes wollen wir uns einmal die aktuelle Konfiguration anzeigen, dies gelingt mit dem Befehl:
echo $PS1
In meinem Fall erhalte ich hier die Ausgabe:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
Und als root:
${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\h:\w\$
Mit diesem angezeigten Code erhalten Sie also den Bash-Prompt (Shell-Prompt), der Ihnen angezeigt wird. Dies sieht ein wenig kompliziert aus, ist aber nicht wirklich der Fall – Sie müssen nur verstehen, was eigentlich dahinter steckt.
Wollen wir ganz einfach beginnen, mit dem Befehl:
PS1=''
legen wir fest wie der Bash-Prompt aussehen soll, unter Anführungszeichen geben wir den Code an. Keine Angst, solange Sie die Änderungen nicht speichern bleiben die Änderungen nur temporär – starten Sie das Terminal neu sind die Anpassungen wieder weg – Sie können also problemlos experimentieren.
Wollen wir einfach nur einmal das Größer-Zeichen als Shell-Prompt nutzen – ganz einfach:
PS1='> '
Wir können aber statt eines beliebigen Zeichens auch einen gewünschten Befehl angeben oder diesen irgendwo im Code einbauen – etwa den Befehl „uname -a
“ und anschließend das Größer-Zeichen (nach diesem erfolgt ein Leerzeichen, damit der Cursor etwas Abstand hält):
PS1='$(uname-a) > '
Wollen Sie die Einstellungen dauerhaft speichern, schreiben Sie die Änderungen, wie als Befehl angegeben, in die in Ihrem Home-Verzeichnis versteckt liegende Datei „.bashrc“ als neue Zeile. Anschließend starten Sie das Terminal neu oder laden die Einstellungen mit:
source ~/.bashrc
neu.
Nun wollen wir uns einmal ansehen, mit welchen Informationen wir den Shell-Prompt füttern können (die farbliche Gestaltung sehen wir uns später an, denn diese ist etwas komplizierter):
Code | Beschreibung |
---|---|
\a | Die Shell-Glocke |
\A | Die Uhrzeit im 24-Stunden Format (hh:mm) |
\d | Das Datum im Format „Wochentag Monat Tag“ |
\e | Das Escape Zeichen (033) |
\h | Der Hostname auf dem die Shell läuft bis zum ersten Punkt |
\H | Der Hostname komplett |
\j | Die Anzahl der laufenden Jobs |
\l | Das TTY – Terminal auf dem die Shell läuft |
\n | Neue Zeile |
\t | Die Uhrzeit im 24h Format (hh:mm:ss) |
\T | Die Uhrzeit im 12h Format (hh:mm:ss) |
\r | Zurück |
\s | Die verwendete Shell |
\u | Der angemeldete Nutzer |
\v | Die Version der Shell |
\V | Das Release der Bash |
\w | Das aktuelle Arbeitsverzeichnis |
\W | Nur der letzte Teil des aktuellen Arbeitsverzeichnisses |
\! | Die aktuelle History-Nummer |
\# | Die Aktuelle Befehls-Nummer |
\$ | Wenn root eine „#“, sonst ein“$“ |
\\ | Der Backslash |
\nnn | Das Zeichen entsprechend der oktalen Zahl nnn |
\[ | Der Beginn einer Sequenz von nicht-darstellbaren Zeichen |
\] | Das Ende einer Sequenz von nicht-darstellbaren Zeichen |
\@ | Die Uhrzeit im 12h am/pm Format |
Nun wollen wir uns beispielsweise den Nutzernamen und nach dem „@“ die Uhrzeit und das aktuelle Verzeichnis anzeigen lassen:
PS1='\u@ \t \w: \$'
Ergibt:
robertg@ 09:01:08 ~: $
Farben am Terminal
Die farbliche Gestaltung ist etwas komplizierter – wir finden erst einmal die Farbtabelle der Shell auf der Linux Bibel (Mittelklick auf den Link). Nehmen wir wieder den oberen Code – also:
PS1='\u@ \t \w: \$'
Ich möchte beispielsweise den Nutzernamen Grün darstellen – also nutze ich den Code „\[\033[0;32m\]
„:
PS1='\[\033[0;32m\]\u\[\033[0m\]@ \t \w: \$'
Wichtig ist der Code „\[\033[0m\]
“ – mit diesem wird die Farbe zurückgesetzt, ansonsten würde der komplette weitere Code in Grün sein bis man wieder eine andere Farbe angibt. Nun möchte ich den Nutzernamen noch Grau hinterlegen – der Code für die Hintergrundfarbe Grau „\[\033[47;XXm\]
“ – statt „XX
“ geben Sie einfach die Vordergrundfarbe – in diesem Fall wie oben „0;32
“ für Grün an, ob Sie Vordergrundfarbe oder Hintergrundfarbe zuerst angeben ist egal:
PS1='\[\033[0;32;47m\]\u\[\033[0m\]@ \t \w: \$'
So können Sie nun spielen wie Sie wollen – etwa:
PS1='\[\033[0;32;47m\]\u\[\033[0m\]@ \[\033[0;35;46m\] \[\033[1;36;41m\]\t\[\033[0m\] \w: \$'
Ergibt:
Kleiner Tipp – einen Bash-Prompt-Generator für den Prompt gibt es hier.
Noch keine Reaktion