Bash-Prompt anpassen: Unterschied zwischen den Versionen
SiD (Diskussion | Beiträge) K →Weblinks: sprach icon |
Kapitel "Rückgabewerte von Bash Kommandos im Bash Prompt visualisieren" hinzugefügt |
||
Zeile 229: | Zeile 229: | ||
PS1='[\[\033[1;36m\]\u\[\033[0m\]@\h \W]\$ ' | PS1='[\[\033[1;36m\]\u\[\033[0m\]@\h \W]\$ ' | ||
==== Rückgabewerte von Bash Kommandos im Bash Prompt visualisieren ==== | |||
Um den Rückgabewert des letzten Bash Kommandos im Prompt zu visualisieren steht zum Beispiel die Unicode Symbole | |||
* <span style="color: #0a0; font-weight: bold;">✓</span> für einen erfolgreichen Rückgabewert | |||
* <span style="color: #a00; font-weight: bold;">✗</span> für einen fehlerhaften Rückgabewert | |||
zur Verfügung. Diese Konfiguration: | |||
{{hc|<nowiki> | |||
# Rückgabewerte von Bash Kommandos im Bash Prompt visualisieren | |||
PS1='\[\e[01;37m\][\A]\[\e[01;92m\]\u\[\e[m\]\[\e[1;94m\]@\[\e[m\]\$(if [[ \$? == 0 ]]; then echo \"\[\e[01;92m\]\h\342\234\223\"; else echo \"\[\e[01;31m\]\h\342\234\227\"; fi) \[\e[m\]\[\e[1;94m\]\w \$>\[\e[m\]\[\e[1;37m\] ' | |||
</nowiki>}} | |||
führt zu diesem Bash Prompt: | |||
<div style="font-family: monospace; margin: 1em 3em; padding: 1em; border: 3px solid #bcd; background-color: black; color: #fff;"><span style="font-weight: bold;">[22:31]</span><span style="color: #0a0; font-weight: bold;">user<span style="color: #55f; font-weight: bold;">@</span>host✓</span><span style="color: #55f; font-weight: bold;">~ $></span> true<br /><span style="font-weight: bold;">[22:31]</span><span style="color: #0a0; font-weight: bold;">user<span style="color: #55f; font-weight: bold;">@</span>host✓</span><span style="color: #55f; font-weight: bold;">~ $></span> false<br /><span style="font-weight: bold;">[22:31]</span><span style="color: #0a0; font-weight: bold;">user</span><span style="color: #a00; font-weight: bold;"><span style="color: #55f; font-weight: bold;">@</span>host✗</span><span style="color: #55f; font-weight: bold;">~ $></span> falscher\ befehl<br />bash: falscher befehl: Kommando nicht gefunden.<br /><span style="font-weight: bold;">[22:31]</span><span style="color: #0a0; font-weight: bold;">user</span><span style="color: #a00; font-weight: bold;"><span style="color: #55f; font-weight: bold;">@</span>host✗</span><span style="color: #55f; font-weight: bold;">~ $></span> <span style="text-decoration: blink;">_</span></div> | |||
Die Idee und Motivation zu diesem Kapitel sowie weitere Beispiele hierzu finden sich im {{Sprache|en}} | |||
[https://wiki.archlinux.org/index.php/Color_Bash_Prompt#Return_value_visualisation englischen ArchWiki Artikel "Color Bash Prompt"]. | |||
== Siehe auch == | == Siehe auch == |
Version vom 13. Juli 2013, 22:08 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.
Außerdem 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]\$ '
Rückgabewerte von Bash Kommandos im Bash Prompt visualisieren
Um den Rückgabewert des letzten Bash Kommandos im Prompt zu visualisieren steht zum Beispiel die Unicode Symbole
- ✓ für einen erfolgreichen Rückgabewert
- ✗ für einen fehlerhaften Rückgabewert
zur Verfügung. Diese Konfiguration:
# Rückgabewerte von Bash Kommandos im Bash Prompt visualisieren PS1='\[\e[01;37m\][\A]\[\e[01;92m\]\u\[\e[m\]\[\e[1;94m\]@\[\e[m\]\$(if [[ \$? == 0 ]]; then echo \"\[\e[01;92m\]\h\342\234\223\"; else echo \"\[\e[01;31m\]\h\342\234\227\"; fi) \[\e[m\]\[\e[1;94m\]\w \$>\[\e[m\]\[\e[1;37m\] '
Vorlage:META Error
führt zu diesem Bash Prompt:
[22:31]user@host✓~ $> false
[22:31]user@host✗~ $> falscher\ befehl
bash: falscher befehl: Kommando nicht gefunden.
[22:31]user@host✗~ $> _
Die Idee und Motivation zu diesem Kapitel sowie weitere Beispiele hierzu finden sich im englischen ArchWiki Artikel "Color Bash Prompt".
Siehe auch
Weblinks
Bash Prompt HOWTO und Beispiele