Bash-Prompt anpassen: Unterschied zwischen den Versionen
Hbekel (Diskussion | Beiträge) Sektion "Postition des Cursors" hinzugefügt |
Keine Bearbeitungszusammenfassung |
||
Zeile 239: | Zeile 239: | ||
[[Kategorie: | [[Kategorie:Konsole]] | ||
Version vom 20. Dezember 2008, 19:25 Uhr
Das Aussehen des Bash Promptes wird in der Variblen PS1 in der Datei ~/.bashrc festgelegt.
Aufbau von PS1
Die PS1 Variable besteht im einfachsten Fall aus einer Zeichenkette. Zum Beispiel:
PS1='MyPrompt >'
oder einfach nur
PS1='>'
Es können aber auch Befehle benutzt werden.
PS1='`pwd` >'
würde zum Beispiel das aktuelle Arbeitsverzeichnisse gefolgt von einem Leerzeichen und dem größer Zeichen als Prompt anzeigen.
Ausserdem gibt es noch eine ganze Menge Variablen die man benutzen kann.
Variable | Ausgabe |
\a | das ASCII bell Zeichen (07) |
\A | Uhrzeit im 24-Stunden Format (hh:mm) |
\d | Datum im Format "Wochentag Monat Tag" |
\e | das ASCII Escape Zeichen (033) |
\h | Hostname auf dem die Shell läuft; bis zum ersten "." |
\H | Hostname komplett |
\j | Anzahl der Jobs der Shell |
\l | Das tty auf dem die Shell läuft |
\n | neue Zeile |
\t | Uhrzeit im 24h Format (hh:mm:ss) |
\T | Uhrzeit im 12h Format (hh:mm:ss) |
\r | carriage return |
\s | Name der verwendeten Shell (sh, bash, ...) |
\u | Username |
\v | Version der Shell |
\V | Release der bash (Version, Patchlevel) |
\w | aktuelles Arbeitsverzeichnis |
\W | letzter Teil des aktuellen Arbeitsverzeichnisses |
\! | Aktuelle History-Nummer |
\# | Aktuelle Befehls-Nummer |
\$ | Wenn root eine "#", sonst ein"$" |
\\ | Backslash |
\nnn | Zeichen entsprechend der oktalen Zahl nnn |
\[ | Beginn einer Seqenz von nicht-darstellbaren Zeichen |
\] | Ende einer Seqenz von nicht-darstellbaren Zeichen |
\@ | Uhrzeit im 12h am/pm Format |
Die Variablen, Befehle und alphanumerischen Zeichen(ketten) können beliebig kombiniert werden.
Das Arch standard Prompt setzt sich z. B. so zusammen:
PS1='[\u@\h \W]\$ '
Farben
Es ist auch möglich das Bash Prompt Farbig zu gestalten. Das kann zum Beispiel hilfreich sein um optisch darauf hinzuweisen, ob man gerade als Root oder normaler User arbeitet (siehe Beispiel weiter unten). Um Interpretationsfehler seitens der Shell bei den Farben zu vermeiden, werden sie durch \[ am Anfang und \] am Ende begrenzt. In dieser Eingrenzung werden Terminal-Kontroll-Sequenzen angegeben, welche mit \033[ beginnen und auf m enden. Eine Farbdefinition behält solange ihre Gültigkeit, bis eine neue folgt. Die letzte angegebene Farbe ist die, in der auch die Benutzereingaben erfolgen.
Sequenz | Farbe |
\[\033[0;30m\] | schwarz |
\[\033[1;30m\] | dunkelgrau |
\[\033[0;31m\] | rot |
\[\033[1;31m\] | hellrot |
\[\033[0;32m\] | grün |
\[\033[1;32m\] | hellgrün |
\[\033[0;33m\] | braun |
\[\033[1;33m\] | gelb |
\[\033[0;34m\] | blau |
\[\033[1;34m\] | hellblau |
\[\033[0;35m\] | lila |
\[\033[1;35m\] | helles lila |
\[\033[0;36m\] | dunkles türkis |
\[\033[1;36m\] | türkis |
\[\033[0;37m\] | hellgrau |
\[\033[1;37m\] | weiß |
\[\033[0m\] | farblos (zurücksetzen auf default Farbe) |
Mit den folgenden Sequenzen kann man die Hintergrundfarbe setzen:
Sequenz | Hintergrundfarbe |
\[\033[XXm\] | Keine Hintergrundfarbe |
\[\033[40;XXm\] | Schwarzer Hintergrund |
\[\033[41;XXm\] | Roter Hintergrund |
\[\033[42;XXm\] | Grüner Hintergrund |
\[\033[43;XXm\] | Hellbrauner Hintergrund |
\[\033[44;XXm\] | Blauer Hintergrund |
\[\033[45;XXm\] | Lila Hintergrund |
\[\033[46;XXm\] | Türkiser Hintergrund |
\[\033[47;XXm\] | Hellgrauer Hintergrund |
Position des Cursors
Innerhalb des Prompts lässt sich die Cursorposition mit der folgenden Sequenz setzen:
\033[<line>;<column>f
Die aktuelle Position lässt sich mit der folgenden Sequenz sichern:
\033[s
Um die gespeicherte Position wiederherzustellen verwendet man die Sequenz
\033[u
Im folgenden Beispiel wird die aktuelle Zeit in der rechten oberen Ecke des Terminals angezeigt:
PS1=">\033[s\033[1;\$((COLUMNS-4))f\$(date +%H:%M)\033[u"
Die Umgebungsvariable COLUMNS enthält die Anzahl der Spalten des Terminals. Im obigen Beispiel wird von diesem Wert 4 abgezogen, um die fünfstellige Ausgabe von date am rechten Rand zu platzieren.
Beispiel
Zur besseren Unterscheidung ob man gerade als Root oder normaler User arbeitet könnte man das standard Arch Prompt z. B. so verändern, dass der Username farbig dargestellt wird. In diesem Beispiel hellrot für Root und türkis für den User.
- in die /root/.bashrc kommt
PS1='[\[\033[1;31m\]\u\[\033[0m\]@\h \W]\$ '
- in die /home/user/.bashrc
PS1='[\[\033[1;36m\]\u\[\033[0m\]@\h \W]\$ '
Links
Bash Prompt HOWTO und Beispiele