Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

tux:prompt [2011/04/09 20:50]
127.0.0.1 external edit
tux:prompt [2015/05/22 13:02] (aktuell)
wikisysop [Primärer Prompt]
Zeile 10: Zeile 10:
 Root bekommt auf einem Linux Debian System zB folgenden Prompt: Root bekommt auf einem Linux Debian System zB folgenden Prompt:
  
-<xterm2><fc #​4682b4>​gallery:​~#</​fc>​ <fc #​008000>​echo $PS1</​fc> ​(cr)+<xterm><fc #​4682b4>​gallery:​~#</​fc>​ <fc #​008000>​echo $PS1</​fc> ​
 PS1='​\h:​\w\$ ' PS1='​\h:​\w\$ '
-</xterm2>+</xterm>
  
 Ein normaler User auf einem Linux Debian System bekommt zB folgenden Prompt: Ein normaler User auf einem Linux Debian System bekommt zB folgenden Prompt:
  
-<xterm2><fc #​4682b4>​pronto@vmdebian3:</​fc><​fc #​f0e68c>​~</​fc>​$ <fc #​008000>​echo $PS1</​fc> ​(cr)+<xterm><fc #​4682b4>​pronto@vmdebian3:</​fc><​fc #​f0e68c>​~</​fc>​$ <fc #​008000>​echo $PS1</​fc>​
 \[\e]0;​\u@\h:​ \w\a\]${debian_chroot:​+($debian_chroot)}\[\033[01;​32m\]\u@\h\[\033[00m\]:​\[\033[01;​34m\]\w\[\033[00m\]\$ \[\e]0;​\u@\h:​ \w\a\]${debian_chroot:​+($debian_chroot)}\[\033[01;​32m\]\u@\h\[\033[00m\]:​\[\033[01;​34m\]\w\[\033[00m\]\$
-</xterm2>+</xterm>
  
 Eine Bash auf Darwin bzw. Mac OSX präsentiert sich zB so: Eine Bash auf Darwin bzw. Mac OSX präsentiert sich zB so:
  
-<xterm2><fc #​4682b4>​pronto-macpro:​~ pronto$</​fc>​ <fc #​008000>​echo $PS1</​fc> ​(cr)+<xterm><fc #​4682b4>​pronto-macpro:​~ pronto$</​fc>​ <fc #​008000>​echo $PS1</​fc>​
 \h:\W \u\$ \h:\W \u\$
-</xterm2>+</xterm>
 \\ \\  \\ \\ 
  
Zeile 71: Zeile 71:
 -> <fc #​008000>​export PS1='​FooBar:​ '</​fc>​ -> <fc #​008000>​export PS1='​FooBar:​ '</​fc>​
  
-<xterm2>​FooBar:​ +<xterm>​FooBar:​ 
-</xterm2>+</xterm>
  
 Natürlich ein blöder Prompt, keine Frage. Kommen wir zu nützlicherem. Folgende Variable erzeugt einen Prompt mit dem Login-Namen des aktuell angemeldeten Benutzers: Natürlich ein blöder Prompt, keine Frage. Kommen wir zu nützlicherem. Folgende Variable erzeugt einen Prompt mit dem Login-Namen des aktuell angemeldeten Benutzers:
Zeile 78: Zeile 78:
 -> <fc #​008000>​export PS1='​\u > '</​fc>​ -> <fc #​008000>​export PS1='​\u > '</​fc>​
  
-<xterm2>pronto >  +<xterm>pronto >  
-</xterm2>+</xterm>
  
 Schaut schon brauchbarer aus, nehmen wir noch den Computernamen dazu:  Schaut schon brauchbarer aus, nehmen wir noch den Computernamen dazu: 
Zeile 85: Zeile 85:
 -> <fc #​008000>​export PS1='​\u@\h > '</​fc>​ -> <fc #​008000>​export PS1='​\u@\h > '</​fc>​
  
-<xterm2>​pronto@pronto-macpro > +<xterm>​pronto@pronto-macpro > 
-</xterm2>+</xterm>
  
 Naja, zugegeben ein blöder Name aber zum demonstrieren reicht es, ich schreibe künftig den Computernamen aus und setze dafür ans Ende des Prompts die Variable <fc #​008000>​\$</​fc>​. Das erzeugt bei einem normalen User ein <fc #​008000>​$-Zeichen</​fc>​ am Ende, root wird mit <fc #​008000>#</​fc>​ abgeschlossen:​ Naja, zugegeben ein blöder Name aber zum demonstrieren reicht es, ich schreibe künftig den Computernamen aus und setze dafür ans Ende des Prompts die Variable <fc #​008000>​\$</​fc>​. Das erzeugt bei einem normalen User ein <fc #​008000>​$-Zeichen</​fc>​ am Ende, root wird mit <fc #​008000>#</​fc>​ abgeschlossen:​
Zeile 92: Zeile 92:
 -> <fc #​008000>​export PS1='​\u@MacPro:​\$ '</​fc>​ -> <fc #​008000>​export PS1='​\u@MacPro:​\$ '</​fc>​
  
-<xterm2>​pronto@MacPro:​$  +<xterm>​pronto@MacPro:​$  
-</xterm2>+</xterm>
  
 Man möchte natürlich auch wissen wo man sich gerade im Dateisystem befindet. Ergänzen wir unseren Prompt um den Pfad zum aktuellen Arbeitsverzeichnis (\w): Man möchte natürlich auch wissen wo man sich gerade im Dateisystem befindet. Ergänzen wir unseren Prompt um den Pfad zum aktuellen Arbeitsverzeichnis (\w):
Zeile 99: Zeile 99:
 -> <fc #​008000>​export PS1='​\u@MacPro:​\w \$ '</​fc>​ -> <fc #​008000>​export PS1='​\u@MacPro:​\w \$ '</​fc>​
  
-<xterm2>​pronto@MacPro:/​Applications/​Utilities $ +<xterm>​pronto@MacPro:/​Applications/​Utilities $ 
-</xterm2>+</xterm>
  
 Der komplette Pfad könnte sich aber mit zunehmender Verzeichnistiefe als kontraproduktiv erweisen, beschränken wir uns doch lieber auf das aktuelle Arbeitsverzeichnis (\W): Der komplette Pfad könnte sich aber mit zunehmender Verzeichnistiefe als kontraproduktiv erweisen, beschränken wir uns doch lieber auf das aktuelle Arbeitsverzeichnis (\W):
Zeile 106: Zeile 106:
 -> <fc #​008000>​export PS1='​\u@MacPro:​\W \$ '</​fc>​ -> <fc #​008000>​export PS1='​\u@MacPro:​\W \$ '</​fc>​
  
-<xterm2>​pronto@MacPro:​Utilities $ +<xterm>​pronto@MacPro:​Utilities $ 
-</xterm2>+</xterm>
  
 Passt! Jetzt bringen wir ein wenig Farbe ins Spiel. Heben wir den Computernamen Rot ab. Die Syntax wird jetzt auf einen Schlag wesentlich komplexer. Wir müssen für die Farb-Codes eine ESC-Sequenz einleiten <fc #​008000>​\[\e</​fc>​ und den gewünschten Farbcode folgen lassen, den wir mit einem <fc #​008000>​m</​fc>​ abschließen (<fc #​008000>​[1;​31m\]</​fc>​):​ Passt! Jetzt bringen wir ein wenig Farbe ins Spiel. Heben wir den Computernamen Rot ab. Die Syntax wird jetzt auf einen Schlag wesentlich komplexer. Wir müssen für die Farb-Codes eine ESC-Sequenz einleiten <fc #​008000>​\[\e</​fc>​ und den gewünschten Farbcode folgen lassen, den wir mit einem <fc #​008000>​m</​fc>​ abschließen (<fc #​008000>​[1;​31m\]</​fc>​):​
Zeile 113: Zeile 113:
 -> <fc #​008000>​export PS1='​\u@\[\e[1;​31m]MacPro:​\W \$ '</​fc>​ -> <fc #​008000>​export PS1='​\u@\[\e[1;​31m]MacPro:​\W \$ '</​fc>​
  
-<xterm2><fc #​ff0000>​pronto@MacPro:​Utilities $ ls -l</​fc>​ +<xterm><fc #​ff0000>​pronto@MacPro:​Utilities $ ls -l</​fc>​ 
-</xterm2>+</xterm>
  
 Ups, jetzt läuft die Einfärbung durch, sogar die auf den Prompt folgende Eingabe ist eingefärbt. Dh wir müssen nach dem Computernamen die Farbe wieder zurückstellen (0m): Ups, jetzt läuft die Einfärbung durch, sogar die auf den Prompt folgende Eingabe ist eingefärbt. Dh wir müssen nach dem Computernamen die Farbe wieder zurückstellen (0m):
Zeile 120: Zeile 120:
 -> <fc #​008000>​export PS1='​\u@\[\e[1;​31m\]MacPro\[\e[0m\]:​\W \$ '</​fc>​ -> <fc #​008000>​export PS1='​\u@\[\e[1;​31m\]MacPro\[\e[0m\]:​\W \$ '</​fc>​
  
-<xterm2>​pronto@<​fc #​ff0000>​MacPro</​fc>:​Utilities $ +<xterm>​pronto@<​fc #​ff0000>​MacPro</​fc>:​Utilities $ 
-</xterm2>+</xterm>
  
 Okay, jetzt sind wir da, wo wir hin wollten. Der Prompt beinhaltet nützliche Informationen wie den aktuellen Benutzer, das aktuelle Verzeichnis und den aktuellen Computernamen und den auch noch in Farbe. Sehr schön! Spielen Sie mit den Möglichkeiten und gestalten Sie sich Ihren Prompt nach Ihren Wünschen. ​ Okay, jetzt sind wir da, wo wir hin wollten. Der Prompt beinhaltet nützliche Informationen wie den aktuellen Benutzer, das aktuelle Verzeichnis und den aktuellen Computernamen und den auch noch in Farbe. Sehr schön! Spielen Sie mit den Möglichkeiten und gestalten Sie sich Ihren Prompt nach Ihren Wünschen. ​
Zeile 134: Zeile 134:
 **Konfigurations-Dateien der Login-Shell:​** **Konfigurations-Dateien der Login-Shell:​**
  
-Es gibt eine Konfigurationsdatei die für alle Benutzer gilt, und eine Reihe an Dateien die benutzerspezifisch ausgewertet werden. Die <fc #​008000>/​etc/​profile</​fc>​ ist die zentrale Konfigurations-Datei ​für alle Benutzer. Wird eine Login-Shell gestartet wird erst die /​etc/​profile eingelesen. Dann wird im Home-Verzeichnis des Benutzers nach einer Datei namens <fc #​008000>​~/​.bash_profile</​fc>​ gesucht, wenn sie existiert, wird sie eingelesen. Existiert diese Datei nicht, wird nach der Datei <fc #​008000>​~/​.bash_login</​fc>​ gesucht. Wenn sie existiert wird sie eingelesen, wenn nicht, wird nach der <fc #​008000>​~/​.profile</​fc>​ gesucht. Wenn sie existiert wird sie eingelesen. Dann gibt es noch die <fc #​008000>​~/​.bash_logout</​fc>,​ die wenn sie vorhanden ist, beim Beenden der Login-Shell eingelesen wird.+Es gibt eine Konfigurationsdatei die für alle Benutzer gilt, und eine Reihe an Dateien die benutzerspezifisch ausgewertet werden. Die <fc #​008000>/​etc/​profile</​fc>​ ist die zentrale Konfigurations-Datei ​für alle Benutzer. Wird eine Login-Shell gestartet wird erst die /​etc/​profile eingelesen. Dann wird im Home-Verzeichnis des Benutzers nach einer Datei namens <fc #​008000>​~/​.bash_profile</​fc>​ gesucht, wenn sie existiert, wird sie eingelesen. Existiert diese Datei nicht, wird nach der Datei <fc #​008000>​~/​.bash_login</​fc>​ gesucht. Wenn sie existiert wird sie eingelesen, wenn nicht, wird nach der <fc #​008000>​~/​.profile</​fc>​ gesucht. Wenn sie existiert wird sie eingelesen. Dann gibt es noch die <fc #​008000>​~/​.bash_logout</​fc>,​ die wenn sie vorhanden ist, beim Beenden der Login-Shell eingelesen wird.
  
 Um jetzt unsere Prompt Einstellungen über einen Neustart am Leben zu erhalten, packen wir unsere oben erarbeitete Prompt Variable in die <fc #​008000>​~/​.profile</​fc>​ unseres Home-Verzeichnisses (<fc #​008000>​~</​fc>​). Ist keine .profile und auch keine der anderen og Konfigurations-Dateien im Home Verzeichnis vorhanden, legen Sie einfach eine an. Um jetzt unsere Prompt Einstellungen über einen Neustart am Leben zu erhalten, packen wir unsere oben erarbeitete Prompt Variable in die <fc #​008000>​~/​.profile</​fc>​ unseres Home-Verzeichnisses (<fc #​008000>​~</​fc>​). Ist keine .profile und auch keine der anderen og Konfigurations-Dateien im Home Verzeichnis vorhanden, legen Sie einfach eine an.
Zeile 146: Zeile 146:
 **Konfigurations-Dateien der Nicht-Login-Shell:​** **Konfigurations-Dateien der Nicht-Login-Shell:​**
  
-Hier ist der Ablauf nicht ganz so kompliziert. Die <fc #​008000>/​etc/​bash.bashrc</​fc>​ gilt wieder ​für alle Benutzer und im Home-Verzeichnis eines Benutzers kann eine <fc #​008000>​~/​.bashrc</​fc>​ existieren. ​+Hier ist der Ablauf nicht ganz so kompliziert. Die <fc #​008000>/​etc/​bash.bashrc</​fc>​ gilt wieder ​für alle Benutzer und im Home-Verzeichnis eines Benutzers kann eine <fc #​008000>​~/​.bashrc</​fc>​ existieren. ​
  
 Aber ab hier haben wir ein Problem. Wenn wir aus unserer Login-Shell heraus ein andere Shell starten (zB um den Benutzer kurzfristig zu wechseln), haben wir unsere Prompt-Konfiguration verloren, weil dadurch nur eine Sub-Shell gestartet wird. So wird anstelle der <fc #​008000>​.profile</​fc>​ die <fc #​008000>​~/​.bashrc</​fc>​ ausgewertet und hier wird erst mal der Standard-Prompt zu finden sein, wie die folgende Standard Linux Debian <fc #​008000>​~/​.bashrc</​fc>​ deutlich macht: Aber ab hier haben wir ein Problem. Wenn wir aus unserer Login-Shell heraus ein andere Shell starten (zB um den Benutzer kurzfristig zu wechseln), haben wir unsere Prompt-Konfiguration verloren, weil dadurch nur eine Sub-Shell gestartet wird. So wird anstelle der <fc #​008000>​.profile</​fc>​ die <fc #​008000>​~/​.bashrc</​fc>​ ausgewertet und hier wird erst mal der Standard-Prompt zu finden sein, wie die folgende Standard Linux Debian <fc #​008000>​~/​.bashrc</​fc>​ deutlich macht:
Zeile 158: Zeile 158:
 Ersetzen Sie nun die Zeile <fc #​008000>​export PS1='​\h:​\w\$ '</​fc>​ durch die selbe Zeile, welche Sie auch in die <fc #​008000>​~/​.profile</​fc>​ eingetragen haben, dann wird auch in den Sub-Shells der gewünschte Prompt eingestellt. ​ Ersetzen Sie nun die Zeile <fc #​008000>​export PS1='​\h:​\w\$ '</​fc>​ durch die selbe Zeile, welche Sie auch in die <fc #​008000>​~/​.profile</​fc>​ eingetragen haben, dann wird auch in den Sub-Shells der gewünschte Prompt eingestellt. ​
  
-Diese Konfigurationsdateien sind im Prinzip Shell-Skripte,​ es kann jeder Befehl darin verwendet werden. Variablen die exportiert werden sind in Allen Sub-Shells ​gültig. [[:​tux:​profile|->​ Aliase und Funktionen]] werden nicht an Sub-Shells weitergegeben werden, und müssen ​daher für Login- und Nicht-Login-Shells+Diese Konfigurationsdateien sind im Prinzip Shell-Skripte,​ es kann jeder Befehl darin verwendet werden. Variablen die exportiert werden sind in Allen Sub-Shells ​gültig. [[:​tux:​profile|->​ Aliase und Funktionen]] werden nicht an Sub-Shells weitergegeben werden, und müssen ​daher für Login- und Nicht-Login-Shells
 gleichermaßen konfiguriert werden. gleichermaßen konfiguriert werden.
  
Zeile 165: Zeile 165:
 Um Änderungen an einer Konfigurationsdatei zu übernehmen,​ müssen Sie entweder die Shell neu starten oder mit dem source-Kommando neu einlesen: Um Änderungen an einer Konfigurationsdatei zu übernehmen,​ müssen Sie entweder die Shell neu starten oder mit dem source-Kommando neu einlesen:
  
-<xterm2>​pronto@MacPro:​~ $ <fc #​008000>​source ~/​.profile</​fc> ​(cr) +<xterm>​pronto@MacPro:​~ $ <fc #​008000>​source ~/​.profile</​fc>​ 
-</xterm2>+</xterm>
    
  
 **Verwandte Artikel:** **Verwandte Artikel:**
-[[:​tux:​profile|->​ Shell Alias anlegen]]\\ +[[:​tux:​profile|->​ Shell Alias anlegen]] 
 +[[:​win:​edit_prompt|->​ (Windows) CMD Prompt anpassen]] 
  
  
  --- //pronto 2010/08/19 22:10//  --- //pronto 2010/08/19 22:10//
 {{keywords>​bash linux debian login non-login shell}} {{keywords>​bash linux debian login non-login shell}}
tux/prompt.1302375005.txt.gz (47473 views) · Zuletzt geändert: 2011/04/16 19:57 (Externe Bearbeitung)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0