|
Aktuelles Lustiges Beschwerdeformular Prolog Brainfuck Die BASH 155872 Clicks |
Nützliche Dinge die man mit der Bash machen kannFarbe im PromptUm in der Bash sein Prompt einzufärben braucht man im Prinzip nur ein paar Zeichen in die Variable PS1 einzufügen:\e[xx;yym. xx und yy sind hierbei dann Zahlen die Vorder- und Hintergrundfarbe bestimmen; 31;40 ergibt Rot auf Schwarz. Hintergrundfarbe 1 bedeutet im Endeffekt sowas wie transparent ;-)Wer also ein Prompt dieser Art
\e[31;1mroot\e[0m@\h:\w in die Variable PS1 rein. Damit das auch bei jedem Prompt ausgeführt wird kommt der entsprechende Aufruf von export PS1="\e[31;1mroot\e[0m@\h:\w" in die Datei $HOME/.bashrc .
Verzeichnisnamen im Prompt abschneidenDas oben aufgeführte Prompt hat aber ein Problem: wenn man sich in einem Verzeichnis wie zum Beispiel/usr/src/linux-2.4.21/arch/mips/galileo-boards/ev64120/compressed befindet ist der ganze Bildschirm mit Prompt vollgeschrieben, es bleibt kaum Platz zum Arbeiten. Eine Möglichkeit ist jetzt natürlich sich nicht den ganzen Verzeichnisbaum anzeigen zu lassen (\w), sondern nur das letzte Verzeichnis (\W). Dabei geht - mir zumindest - aber immer die Übersicht verloren - diese Methode ist also nicht praktikabel.Sinnvollerweise würde man also zum Beispiel nur die letzten 20 Zeichen des Verzeichnisbaumes anzeigen wollen. Hier also ein Listing das $PWD (in $PWD steht das aktuelle Verzeichnis) nimmt und auf eine akzeptable Länge kürzt wenn nötig.
#!/usr/local/bin/bash
# /usr/local/bin/pwdtrunc - truncates $PWD, writes to /tmp/pwdtrunc.$EUID
# Mainly from Bash-Prompt-HOWTO, enhanced by Tilman Brock
# How many characters of the $PWD should be kept
pwdmaxlen=25
# Indicator that there has been directory truncation:
trunc_symbol=".."
###
if [ ${#PWD} -gt $pwdmaxlen ]
then
pwdoffset=$(( ${#PWD} - $pwdmaxlen ))
newPWD="${trunc_symbol}${PWD:$pwdoffset:$pwdmaxlen}"
else
newPWD=${PWD}
fi
nPWD="`echo $newPWD | sed -e s=$HOME=~=` "
echo $nPWD > /tmp/pwdtrunc.$EUID
Jetzt braucht man nur noch die Variable $PROMPT_COMMAND auf pwdtrunc zu setzen, dann wird vor jedem Prompt der jeweils gültige Wert in /tmp/pwdtrunc.$EUID geschrieben (der Befehl, der in $PROMPT_COMMAND steht wird vor der Darstellung jeder Prompt-Zeile ausgeführt).
Setzt man $PS1 jetzt auf z.B. \u@\h: $(cat /tmp/pwdtrunc.$EUID), dann hat man ein Prompt was nicht unendklich wächst. Wichtig ist dabei der Aufruf von cat /tmp/pwdtrunc.$EUID, denn erst dadurch wird der gekürzte Teil des Verzeichnisses angezeigt.
Toll, nicht? Linkshttp://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x768.htmlhttp://www-106.ibm.com/developerworks/linux/library/l-tip-prompt/ |
© 08.04.2002 by Tilman