[[Getestet(general)]] {{{#!Wissen * [1]: [:Editor: Einen Editor öffnen] * [2]: [:Umgebungsvariable: Umgebungsvariablen setzen] }}} [[TableOfContents(1)]] Dieser Artikel beschreibt, die man mit wenigen Handgriffen die Shell bzw. das Prompt in der Shell etwas persönlicher gestalltet als das @:~$ = Allgemeines über die Shells = Es gibt mehrere verschiedene Shells * sh - die Bourne Shell * bash - die Bourne Again Shell * ksh - Die Korn Shell * csh - die „C“-Shell * tcsh - die TC Shell * zsh - Featuritis * sash - System Administrators Shell Sie alle unterscheiden sich in den Konstrukten zur Programmierung, in der Benutzer-Interaktion, im Syntax, in der Lizenz. Auch wie das Prompt modifiziert wird unterscheidet sich. Dieser Artikel wird sich mit der Bourne Again Shell befassen. = Modifizierung in der Bourne Again Shell = Das Prompt wird in der Variable PS1 gespeichert. Dies kann man ganz einfach mit {{{#!Befehl echo $PS1 }}} auslesen. Als Standard ist {{{#!Text ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ }}} eingetragen. Was die einzelnen Sachen bedeuten wird später beschrieben. Da es sich um eine [:Umgebungsvariable:] handelt kann diese auch überschrieben werden. Dies geschieht in einem ganz einfachen Fall mit {{{#!Befehl PS1='> ' }}} Danach ist das Prompt nur noch das Relationszeichen ">". Es können aber auch Ausgaben von allen Befehlen in das Prompt mit einbezogen werden. {{{#!Befehl PS1='`pwd` > ' }}} So wird das aktuelle Verzeichnis gefolgt von dem Relationszeichen angezeigt. Neben den Befehlen gibt es eine Reihe von Variablen, die benutzt werden können: ||<#F9EAAF> Escape-Zeichen ||<#F9EAAF> Ausgabe || || \a || das ASCII bell Zeichen (07) || || \A || Uhrzeit im 24-Stunden Format (hh:mm) || || \d || Datum in "Wochentag Monat Tag" z.B., "Mit Mai 26") || || \e || ASCII escape Zeichen (033) || || \h || Hostname auf dem die Shell läuft bis zum ersten "." || || \H || Hostname komplett || || \j || Anzahl der Jobs in der Shell || || \l || Das tty, auf dem die Shell läuft || || \n || Neue Zeile || || \t || Uhrzeit im 24-Stunden Format (hh:mm:ss) || || \T || Uhrzeit im 12-Stunden Format (hh:mm:ss) || || \r || carriage return || || \s || Name der verwendeten Shell (sh, bash, ..) || || \u || Name des Nutzers, der die Shell gestartet hat || || \v || Version der bash (z.B., 2.00) || || \V || Release der bash, Version, Patchlevel || || \w || momentanes Arbeitsverzeichnis || || \W || letzte Komponente des Arbeitsverzeichnisses || || || || || \! || Aktuelle History-Nummer || || \# || Aktuelle Befehls-Nummer || || \$ || Wenn root ein "#", sonst ein "$" || || \\ || Backslash || || \nnn || Zeichen entsprechend der oktalen Zahl nnn || || \[ || Beginn einer Sequenz von nicht-darstellbaren Zeichen || || \] || Ende einer Sequenz von nicht-darstellbaren Zeichen || || \@ || Aktuelle Zeit im 12-Stunden am/pm Format || Die Ausgabe von "Uhrzeit user@rechner verzeichnis history-nummer >" wird erzeugt durch {{{#!Befehl PS1='\A \u@\h \W \!>' }}} Diese Standard-Escape-Zeichen und Befehle kann man beliebig komplex schachteln und auch noch ganz normale alphanumerische Zeichen einbauen. = Farben = Um das neu erstellte Prompt auch noch optisch ansprechender zu gestallten und nicht nur mit Informationen zu füttern, kann man noch Farben verwenden. Farbcodierungen werden dafür einfach in den String zum setzen der PS1-Variable eingebaut. Farben machen durchaus Sinn und helfen die Übersichtlichkeit zu steigern, sofern man es nicht übertreibt. Um Interpretationsfehler seitens der Shell bei den Farben zu vermeiden werden sie durch "\[" an Anfang und "\]" am Ende begrenzt. In dieser Eingrenzung werden Terminal-Kontroll-Sequenzen angegeben, welche mit "\033[" beginnen und auf m enden. ||<#F9EAAF> Sequenz ||<#F9EAAF> Farbe || || \[\033[0;34m\] || blau || || \[\033[1;34m\] || hellblau || || \[\033[0;31m\] || rot || || \[\033[1;31m\] || helles rot || || \[\033[1;37m\] || weiß || || \[\033[0m\] || farblos || || \[\033[1;33m\] || gelb || || \[\033[0;32m\] || grün || || \[\033[1;32m\] || hellgrün || Wenn man dies alles jetzt kombiniert, werden die PS1-Variablen sehr schnell sehr unübersichtlich. {{{#!Befehl PS1='\[\033[1;33m\]\t\[\033[0;32m\] \u > ' }}} erzeugt diese Ausgabe ||<#ffff00> Uhrzeit_in hh:mm:ss ||<#98fc66> user > || = Änderungen speichern = Damit die Änderungen dauerhaft sind, müssen diese gespeichert werden. Für den aktuellen User geschieht dies in seinem Home-Verzeichnis. Dort wird die Datei '''~/.bashrc''' geöffnet und an das Ende wird der String "PS1='meinPrompt' angefügt. Nun muss man sich lediglich abmelden und wieder anmelden. ## Sobald ein Artikel aus eigener Sicht fertig ist, bitte eine Diskussion im Forum zum Artikel starten und mit folgendem Textbaustein drauf verweisen. Daraufhin folgt etwas konstruktive Kritik und Feinschliff. Abschließend wird der Artikel von einem Moderator aus der Baustelle verschoben. ## [[Diskussion(123456,Titel der Forendiskussion)]] ## für das Beispiel: http://forum.ubuntuusers.de/topic/123456/ ---- * [:Kategorie/Shell:]