Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
start:linux:terminal:bash-prompt [2020/07/22 23:26]
wikiadmin
start:linux:terminal:bash-prompt [2020/07/23 21:14] (aktuell)
wikiadmin
Zeile 1: Zeile 1:
-** !! Achtung noich Baustelle !!** 
 ====== Bash-Prompt anpassen ====== ====== Bash-Prompt anpassen ======
 [[https://wiki.archlinux.de/title/Bash-Prompt_anpassen|Wie lässt sich der Bash-Prompt anpassen?]] [[https://wiki.archlinux.de/title/Bash-Prompt_anpassen|Wie lässt sich der Bash-Prompt anpassen?]]
  
  
-Das Aussehen des Bash Promptes wird in der Variablen *PS1* in der Datei +Das Aussehen des Bash Promptes wird in der Variablen **PS1** in der Datei **~/.bashrc** festgelegt.
-*~/.bashrc* festgelegt. +
- +
- +
-=== Inhaltsverzeichnis === +
- +
-  * 1 Aufbau von PS1 <#Aufbau_von_PS1> +
-  * 2 Farben <#Farben> +
-  * 3 Position des Cursors <#Position_des_Cursors> +
-  * 4 Beispiel <#Beispiel> +
-      o 4.1 Rückgabewerte von Bash Kommandos im Bash Prompt +
-        visualisieren +
-        <#R.C3.BCckgabewerte_von_Bash_Kommandos_im_Bash_Prompt_visualisieren> +
-  * 5 Siehe auch <#Siehe_auch> +
-  * 6 Weblinks <#Weblinks> +
  
 === Aufbau von PS1 === === Aufbau von PS1 ===
  
-Die PS1 Variable besteht im einfachsten Fall aus einer Zeichenkette. Zum +Die PS1 Variable besteht im einfachsten Fall aus einer Zeichenkette. Zum Beispiel:
-Beispiel:+
  
 +<code>
 PS1='MyPrompt >' PS1='MyPrompt >'
 +</code>
  
 oder einfach nur oder einfach nur
  
 +<code>
 PS1='>' PS1='>'
 +</code>
  
 Es können aber auch Befehle benutzt werden. Es können aber auch Befehle benutzt werden.
  
 +<code>
 PS1='`pwd` >' PS1='`pwd` >'
 +</code>
  
-würde zum Beispiel das aktuelle Arbeitsverzeichnisse gefolgt von einem +würde zum Beispiel das aktuelle Arbeitsverzeichnisse gefolgt von einem Leerzeichen und dem größer Zeichen als Prompt anzeigen.
-Leerzeichen und dem größer Zeichen als Prompt anzeigen. +
  
 Außerdem gibt es noch eine ganze Menge Variablen die man benutzen kann. 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) +^Variable ^Ausgabe^ 
-\d Datum im Format "Wochentag Monat Tag" +|\a |das ASCII bell Zeichen (07)| 
-\e das ASCII Escape Zeichen (033) +|\A |Uhrzeit im 24-Stunden Format (hh:mm)| 
-\h Hostname auf dem die Shell läuft; bis zum ersten "." +|\d |Datum im Format "Wochentag Monat Tag"| 
-\H Hostname komplett +|\e |das ASCII Escape Zeichen (033)| 
-\j Anzahl der Jobs der Shell +|\h |Hostname auf dem die Shell läuft; bis zum ersten "."| 
-\l Das tty auf dem die Shell läuft +|\H |Hostname komplett| 
-\n neue Zeile +|\j |Anzahl der Jobs der Shell| 
-\t Uhrzeit im 24h Format (hh:mm:ss) +|\l |Das tty auf dem die Shell läuft| 
-\T Uhrzeit im 12h Format (hh:mm:ss) +|\n |neue Zeile| 
-\r carriage return +|\t |Uhrzeit im 24h Format (hh:mm:ss)| 
-\s Name der verwendeten Shell (sh, bash, ...) +|\T |Uhrzeit im 12h Format (hh:mm:ss)| 
-\u Username +|\r |carriage return| 
-\v Version der Shell +|\s |Name der verwendeten Shell (sh, bash, ...)| 
-\V Release der bash (Version, Patchlevel) +|\u |Username| 
-\w aktuelles Arbeitsverzeichnis +|\v |Version der Shell| 
-\W letzter Teil des aktuellen Arbeitsverzeichnisses +|\V |Release der bash (Version, Patchlevel)| 
-\! Aktuelle History-Nummer +|\w |aktuelles Arbeitsverzeichnis| 
-\# Aktuelle Befehls-Nummer +|\W |letzter Teil des aktuellen Arbeitsverzeichnisses| 
-\$ Wenn root eine "#", sonst ein"$" +|\! |Aktuelle History-Nummer| 
-\\ Backslash +|\# |Aktuelle Befehls-Nummer| 
-\nnn  Zeichen entsprechend der oktalen Zahl nnn +|\$ |Wenn root eine "#", sonst ein"$"| 
-\[ Beginn einer Seqenz von nicht-darstellbaren Zeichen +|%%\\%%  |Backslash| 
-\] Ende einer Seqenz von nicht-darstellbaren Zeichen +|\nnn   |Zeichen entsprechend der oktalen Zahl nnn| 
-\@ Uhrzeit im 12h am/pm Format+|\[ |Beginn einer Seqenz von nicht-darstellbaren Zeichen| 
 +|\] |Ende einer Seqenz von nicht-darstellbaren Zeichen| 
 +|\@ |Uhrzeit im 12h am/pm Format|
  
  
Zeile 76: Zeile 64:
 zusammen: zusammen:
  
 +<code>
 PS1='[\u@\h \W]\$ ' PS1='[\u@\h \W]\$ '
 +</code>
  
 === Farben === === Farben ===
  
-Es ist auch möglich das Bash Prompt Farbig zu gestalten. Das kann zum +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.
-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)+
  
 +^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: Mit den folgenden Sequenzen kann man die Hintergrundfarbe setzen:
  
-*Sequenz *Hintergrundfarbe* +^Sequenz ^Hintergrundfarbe^ 
-\[\033[XXm\] Keine Hintergrundfarbe +|\[\033[XXm\] |Keine Hintergrundfarbe| 
-\[\033[40;XXm\] Schwarzer Hintergrund +|\[\033[40;XXm\] |Schwarzer Hintergrund| 
-\[\033[41;XXm\] Roter Hintergrund +|\[\033[41;XXm\] |Roter Hintergrund| 
-\[\033[42;XXm\] Grüner Hintergrund +|\[\033[42;XXm\] |Grüner Hintergrund| 
-\[\033[43;XXm\] Hellbrauner Hintergrund +|\[\033[43;XXm\] |Hellbrauner Hintergrund| 
-\[\033[44;XXm\] Blauer Hintergrund +|\[\033[44;XXm\] |Blauer Hintergrund| 
-\[\033[45;XXm\] Lila Hintergrund +|\[\033[45;XXm\] |Lila Hintergrund| 
-\[\033[46;XXm\] Türkiser Hintergrund +|\[\033[46;XXm\] |Türkiser Hintergrund| 
-\[\033[47;XXm\] Hellgrauer Hintergrund +|\[\033[47;XXm\] |Hellgrauer Hintergrund|
  
 === Position des Cursors === === Position des Cursors ===
Zeile 130: Zeile 109:
 Sequenz setzen: Sequenz setzen:
  
 +<code>
 \033[<line>;<column>f \033[<line>;<column>f
 +</code>
  
 Die aktuelle Position lässt sich mit der folgenden Sequenz sichern: Die aktuelle Position lässt sich mit der folgenden Sequenz sichern:
  
 +<code>
 \033[s \033[s
 +</code>
  
 Um die gespeicherte Position wiederherzustellen verwendet man die Sequenz Um die gespeicherte Position wiederherzustellen verwendet man die Sequenz
  
 +<code>
 \033[u \033[u
 +</code>
  
-Im folgenden Beispiel wird die aktuelle Zeit in der rechten oberen Ecke +Im folgenden Beispiel wird die aktuelle Zeit in der rechten oberen Ecke des Terminals angezeigt:
-des Terminals angezeigt:+
  
 +<code>
 PS1=">\033[s\033[1;\$((COLUMNS-4))f\$(date +%H:%M)\033[u" PS1=">\033[s\033[1;\$((COLUMNS-4))f\$(date +%H:%M)\033[u"
 +</code>
  
-Die Umgebungsvariable COLUMNS enthält die Anzahl der Spalten des +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.
-Terminals. Im obigen Beispiel wird von diesem Wert 4 abgezogen, um die +
-fünfstellige Ausgabe von /date/ am rechten Rand zu platzieren. +
  
 === Beispiel === === Beispiel ===
  
-Zur besseren Unterscheidung ob man gerade als Root oder normaler User +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. 
-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+In diesem Beispiel hellrot für Root und türkis für den User in die **//root/.bashrc/** kommt.
  
 +<code>
 PS1='[\[\033[1;31m\]\u\[\033[0m\]@\h \W]\$ ' PS1='[\[\033[1;31m\]\u\[\033[0m\]@\h \W]\$ '
 +</code>
  
-  * in die //home/user/.bashrc/+  * in die **//home/user/.bashrc/**
  
 +<code>
 PS1='[\[\033[1;36m\]\u\[\033[0m\]@\h \W]\$ ' PS1='[\[\033[1;36m\]\u\[\033[0m\]@\h \W]\$ '
 +</code>
  
 +Rückgabewerte von Bash Kommandos im Bash Prompt visualisieren.
  
-        Rückgabewerte von Bash Kommandos im Bash Prompt visualisieren +Um den Rückgabewert des letzten Bash Kommandos im Prompt zu visualisieren stehen zum Beispiel die Unicode Symbole
- +
-Um den Rückgabewert des letzten Bash Kommandos im Prompt zu +
-visualisieren stehen zum Beispiel die Unicode Symbole+
  
   * ✓ für einen erfolgreichen Rückgabewert   * ✓ für einen erfolgreichen Rückgabewert
   * ✗ für einen fehlerhaften Rückgabewert   * ✗ für einen fehlerhaften Rückgabewert
  
-zur Verfügung. In dieser Beispielkonfiguration werden diese zwei Unicode +zur Verfügung. In dieser Beispielkonfiguration werden diese zwei Unicode Symbole verwendet:
-Symbole verwendet:+
  
 +<code>
 \u@\h $(if [[ $? == 0 ]]; then echo "✓"; else echo "✗"; fi) \w $  \u@\h $(if [[ $? == 0 ]]; then echo "✓"; else echo "✗"; fi) \w $ 
 +</code>
  
 und ergeben diesen Bash Prompt: und ergeben diesen Bash Prompt:
  
 +<code>
 user@host ✓ ~ $ true user@host ✓ ~ $ true
 user@host ✓ ~ $ false user@host ✓ ~ $ false
 user@host ✗ ~ $ true user@host ✗ ~ $ true
 user@host ✓ ~ $  user@host ✓ ~ $ 
 +</code>
  
-Die Idee und Motivation zu diesem Kapitel sowie weitere Beispiele hierzu +Die Idee und Motivation zu diesem Kapitel sowie weitere Beispiele hierzu finden sich [[https://wiki.archlinux.org/index.php/Color_Bash_Prompt#Return_value_visualisation|im Arch-Linux Artikeln über die Bash]].
-finden sich im Sprache en.png +
-<https://wiki.archlinux.de/title/Datei:Sprache_en.png> englischen +
-ArchWiki Artikel "Color Bash Prompt" +
-<https://wiki.archlinux.org/index.php/Color_Bash_Prompt#Return_value_visualisation>. +
  
  
 === Siehe auch === === Siehe auch ===
  
-  * Bash-Completion <https://wiki.archlinux.de/title/Bash-Completion> +[[https://wiki.archlinux.de/title/Bash-Completion | Bash-Completion]] 
-  * .bashrc <https://wiki.archlinux.de/title/Bashrc>+[[https://wiki.archlinux.de/title/Bashrc | .bashrc ]]
  
  
Zeile 203: Zeile 183:
  
 Bash Prompt HOWTO und Beispiele <http://gilesorr.com/bashprompt/> Bash Prompt HOWTO und Beispiele <http://gilesorr.com/bashprompt/>
 +
 Sprache en.png <https://wiki.archlinux.de/title/Datei:Sprache_en.png> Sprache en.png <https://wiki.archlinux.de/title/Datei:Sprache_en.png>
  
-Dieser Artikel (oder Teile davon) steht unter GNU FDL +Dieser Artikel (oder Teile davon) steht unter GNU FDL <http://wiki.archlinux.de/?title=GNU_Free_Documentation_License> (GNUFreie Dokumentationslizenz) und ist eine Kopie aus dem Ubuntuusers.de 
-<http://wiki.archlinux.de/?title=GNU_Free_Documentation_License> (GNU + 
-Freie Dokumentationslizenz) und ist eine Kopie aus dem Ubuntuusers.de +Wiki <http://wiki.ubuntuusers.de/>. Am Original-Artikel <http://wiki.ubuntuusers.de/Bash/Prompt> kann jeder Korrekturen und Ergänzungen vornehmen. Im Ubuntuusers.de Wiki ist eine Liste der Autoren <http://wiki.ubuntuusers.de/Bash/Prompt&action=history> verfügbar.
-Wiki <http://wiki.ubuntuusers.de/>. Am Original-Artikel +
-<http://wiki.ubuntuusers.de/Bash/Prompt> kann jeder Korrekturen und +
-Ergänzungen vornehmen. Im Ubuntuusers.de Wiki ist eine Liste der Autoren +
-<http://wiki.ubuntuusers.de/Bash/Prompt&action=history> verfügbar. +
-Abgerufen von +
-„https://wiki.archlinux.de/index.php?title=Bash-Prompt_anpassen&oldid=19708 +
-<https://wiki.archlinux.de/index.php?title=Bash-Prompt_anpassen&oldid=19708>“ +
-Kategorie <https://wiki.archlinux.de/title/Spezial:Kategorien>:+
  
-  * Konsole <https://wiki.archlinux.de/title/Kategorie:Konsole>+Abgerufen von „https://wiki.archlinux.de/index.php?title=Bash-Prompt_anpassen&oldid=19708 <https://wiki.archlinux.de/index.php?title=Bash-Prompt_anpassen&oldid=19708>“ Kategorie <https://wiki.archlinux.de/title/Spezial:Kategorien>: 
 +Konsole <https://wiki.archlinux.de/title/Kategorie:Konsole>