Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 18. Nov 2018 14:59

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
BeitragVerfasst: 27. Aug 2006 13:10 
Offline

Registriert: 26. Aug 2006 13:07
Beiträge: 38
Wohnort: Zürich
Guten Tag

Wer oft an einem Terminal arbeitet, wird schnell feststellen, dass der Prompt mit der Verzeichnistiefe in welcher man arbeitet sehr schnell unuebersichtlich wird.
Das liegt daran, dass die meisten Distributionen eine solche Vorkonfiguration waehlen. Es folgt ein Beispiel:
Code:
user@host /home/user/music/mp3/grave_digger/tunes_of_war :~ $
Obwohl der Inhalt dieses Verzeichnisses ausgezeichneten Sound beinhaltet, wird das Problem sehr schnell klar, will man dort noch etwas arbeiten.

Die bash stellt eine umfangreiche Variablensammlung bereit, um das Verhalten (beispielsweise das Aussehen des Prompt) zu konfigurieren.

Dazu kennt die bash insbesondere die folgenden Variablen:

PS1 : Dient zur Darstellung des Prompt, wie er nach dem Ausfuehren eines Befehles (Befehlsfolge) als Eingabeaufforderung erscheint.
PS2 : Ist ein Befehl grammatikalisch betrachtet noch nicht fertig, und wird ein Zeilenumbruch mittels ENTER ausgefuehrt, wird diese Variable zur Anzeige benutzt. Beispielsweise das Zeichen '>':
Code:
sed -e 's/linux/Gnu\/&/
> g'
PS3 : wird vom internen select Befehl verwendet. Default ist #?
PS4 : interessante Verwendung im Zusammenhang mit dem Tracing Modus der bash

Fuer uns interessant ist an dieser Stelle der Inhalt der Variablen PS1, sie definiert das Aussehen der Kommandozeile.
Sie wird meist in der Datei /home/user/.bashrc (oder abgekuerzt ~/.bashrc) definiert.
Das folgende Beispiel zeigt zuerst die ausfuehrliche Variante, mit Angabe des gesamten Pfades, und dann wie man den Pfad nur noch mit dem letzten Verzeichnis aus ${PWD} darstellt:
Code:
PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '

Fuehrt zu:
user@host ~/music/mp3/grave_digger/tunes_of_war $ 
Code:
PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \W \$\[\033[00m\] '

Fuehrt zu:
user@host tunes_of_war $ 
Anzumerken ist, dass in den obigen Beispielen der Teil 'user@hostname' gruen darsgestellt wird ( \[\033[01;32m\] ) und der Pfad blau ( \[\033[01;34m\] ).


Neben den PSx Variablen kennt die Bash noch die Umgebungsvariable PROMPT_COMMAND.
Diese wird jedesmal vor der Ausgabe von PS1 ausgefuehrt. Sie dient dazu, auf Zustandsabhaengige Variablen (im allgemeinen) zu reagieren. Beispielsweise kann beim Betreten eines Unterverzeichnisses damit jedesmal ein ls Kommando ausgegeben werden, oder andere nuetzliche Spielereien (allgemein beispielsweise die Ausfuehrung eines Scripts veranlassen).
In diesem Beispiel moechte ich den oben aufgetretenen Nebeneffekt, dass man vielleicht nicht mehr weiss wo genau man sich nun im Dateisystem befindet (man hat ja nur noch den letzten Teil angezeigt) ausgleichen.
Die meisten Terminals benutzen den Inhalt dieser Variablen, um in der Fensterleiste den Titel des Fensters damit zu setzen.
Es bietet sich also an, hier den gesamten Pfad auszugeben, so dass man zwar einen schlanken Prompt hat, aber dennoch die Information, wo genau man sich befindet aus der Titelleiste des Terminalfensters ablesen kann.
Code:
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME}:${PWD/$HOME/~}\033\\"'
Die Fensterleiste des Terminals sieht dann so aus:
Code:
user@host ~/music/mp3/grave_digger/tunes_of_war

Abschliessend moechte ich den Leser ermuntern, sich selber mit den Variablen der Bash zu befassen. Hierfuer eignen sich die Google Keywords:
Code:
intitle:bash variable HOWTO
viel Spass damit...

Marco


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de