Tipp: (Bash-)Prompt verändern
IBM hat einen guten Artikel zum Thema Prompt magic.Oft sieht die Bash langweilig so aus:
user@host:/usr/bin$ echo $PS1 \u@\h:\w$
Das frisst bei langen Pfaden natürlich Platz:user@host:/usr/share/doc/xserver-xorg-video-voodoo$
praktisch ist es da, \W statt \w zu verwenden:user@host:xserver-xorg-video-voodoo$ ls
Farben erleichtern natürlich den Überblick, bis vor kurzem hab ich quasi den Gentoo Prompt genutzt:host xserver-xorg-video-voodoo $ echo $PS1 \[\e[01;32m\]\h \[\e[01;34m\]\W $ \[\e[00m\]
Nett ist aber auch der Tipp von der IBM-Seite, den Prompt minimal zu halten, und alle Informationen in die xterm-Titlezeile zu verlagern. Sieht dann so aus:> echo $PS1 \[\e]2;\u@\H \w\a\e[32;1m\]> \[\e[0m
Wer mag kann auch gleich die Schriftfarbe ändern:> echo $PS1 \[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\e[32;40m\]
Um die Titelinformationen auf der Linux-Konsole im Prompt zu haben, nimmt man in der .bashrc diese Abfrage:if [ "$TERM" == "linux" ];then export PS1="\u@\H \w\a\e[32;1m\]>\[\e[0m\e[32;40m\] " else export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\e[32;40m\] " fiUnd wer findet dass die ganzen Escape-Codes unschön aussehen kann sich hier bedienen:
esc='\033['black=$esc'30m' bblack=$esc'1;30m' red=$esc'0;31m' bred=$esc'1;31m' green=$esc'0;32m' bgreen=$esc'1;32m' yellow=$esc'0;33m' byellow=$esc'1;33m' blue=$esc'0;34m' bblue=$esc'1;34m' purple=$esc'0;35m' bpurple=$esc'1;35m' blue2=$esc'0;36m' bblue2=$esc'1;36m' white=$esc'0;37m' bwhite=$esc'1;37m' grey=$esc'0;39m' bgrey=$esc'1;39m'bgnorm=$esc'XXm' bgblack=$esc'40m' bgred=$esc'41m' bggreen=$esc'42m' bgyellow=$esc'43m' bgblue=$esc'44m' bgpurple=$esc'45m' bgblue2=$esc'46m' bggrey=$esc'47m'Beispiel:
> echo -e $bred"Warnung" Warnung
Alle Escape-Codes und eine schöne Farbtabelle findet man in dem IBM-Artikel.Eine weitere interessante Anwendung sind Scripte im Prompt. so kann man z.B. testen ob ein Programm erfolgreich durchgelaufen ist:$ PS1=':`[ $? -eq 0 ] && echo ")"||echo "("`' :) false :( true :)
Dabei entspricht der Smiley jeweils dem Exitstatus des letzten Programms (0 = erfolgreich). Das lässt sich natürlich nach belieben kombinieren z.B. mit Farben.In den xterm-Titel kann man auch automatisch den letzten Befehl reinschreiben lassen:if [ ${TERM} == "rxvt-unicode" ]; then xtitle() { echo -ne "\033]0;$1 $USER@$HOSTNAME:$PWD\007"; } trap 'xtitle "[$(history 1 | cut -b 8-30)]"' DEBUG fiWobei hier vorher noch abgefragt wird, ob es sich auch um ein kompatibles Terminal (hier: urxvt) handelt.Links:
| Kategorien | Linux Software |
|---|---|
| Tagged | Bash Prompt Escape-Codes Scripting |
2 Kommentare
[...] konsole schriftfarbe ändern” - Dazu habe ich hier einige Tipps [...]
[...] ein neuer Post zu praktischen Bash-Prompts, nachdem ich den alten doch wieder um einiges überarbeitet [...]