cooler Bash-Prompt
Re: cooler Bash-Prompt
Ich mag meine farbigen Prompts. Jede Maschine und jeder Container hat eine eigene Farbe für den Host, jeder User hat systemübergreifend seine eigene Farbe – so sehe ich zumindest auf dem ersten flüchtigen Blick anhand der Farbkombination, unter welchem User ich gerade auf welchem System rumfuhrwerke. Bei so vielen offenen Shells verliere ich sonst manchmal den Überblick, was bei manchen Aktionen zu ziemlich doofen Resultaten führen kann. Dazu noch der aktuelle Pfad, und ich bin zufrieden.
- MegaV0lt
- Beiträge: 163
- Registriert: 21.11.2011 11:16:07
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: cooler Bash-Prompt
Ich habe mir aus dem Netz folgenden Promt zusammengebastelt:
new_pwd() bewirkt, dass der Pfad nicht zu lang wird
Code: Alles auswählen
#-------------------------------------------------------------
# Shell Prompt
#-------------------------------------------------------------
if [[ "${DISPLAY%%:0*}" != "" ]] ; then
HILIT=${red} # remote machine: prompt will be partly red
else
HILIT=${cyan} # local machine: prompt will be partly cyan
fi
# --> Replace instances of \W with \w in prompt functions below
#+ --> to get display of full path name.
new_pwd() {
newPWD=$(pwd) ; pwd_len=30 # Max. PWD-Length
newPWD=${newPWD/#${HOME}/\~} # Replace home dir with ~
if [ ${#newPWD} -gt ${pwd_len} ] ; then
if [ "${newPWD:0:1}" = "~" ] ; then
newPWD="~..${newPWD:$((${#newPWD}-${pwd_len}))}"
else
newPWD="...${newPWD:$((${#newPWD}-${pwd_len}))}"
fi
fi
}
myprompt(){
if [[ ${EUID} == 0 ]] ; then
PS1='\[\e[1;31;48;5;234m\]\u \[\e[38;5;240m\]auf \[\e[1;38;5;28;48;5;234m\]\h \[\e[38;5;240m\]am \[\e[38;5;54m\]\D{%d.%m.%Y} \A \[\e[0m\]\n\[\e[0;36;48;5;234m\][$newPWD] \[\e[1;31m\]\$\[\e[0m\] '
else
PS1='\[\e[1;38;5;56;48;5;234m\]\u \[\e[38;5;240m\]auf \[\e[1;38;5;28;48;5;234m\]\h \[\e[38;5;240m\]am \[\e[38;5;54m\]\D{%d.%m.%Y} \A \[\e[0m\]\n\[\e[0;38;5;56;48;5;234m\][$newPWD] \[\e[1m\]\$\[\e[0m\] '
fi
}
# Change the window title of X terminals
case $TERM in
xterm*|rxvt|Eterm|eterm)
PROMPT_COMMAND='new_pwd ; echo -ne "\e]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
;;
screen)
PROMPT_COMMAND='echo -ne "\e_${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\e\\"'
;;
esac
myprompt # Promt
Code: Alles auswählen
root auf HP-T5730 am 08.12.2015 09:25
[/mnt/usbdrive/skinFlatPlus] # cd CryptIcons/
root auf HP-T5730 am 08.12.2015 09:25
[...bdrive/skinFlatPlus/CryptIcons] #
"Das Internet? Gibt's diesen Blödsinn immer noch?"
[Homer Simpson], Sicherheitsinspektor im Kernkraftwerk Springfield.
[Homer Simpson], Sicherheitsinspektor im Kernkraftwerk Springfield.
Re: cooler Bash-Prompt
Das war ja jetzt mal ne klasse Anregung.... ... Die Angabe des Pfades war für mich eigentlich immer wichtig, aber er hat auch manchmal total genervt, wenn der Eingabebereich dahinter praktisch weg war. Das mit der Farbe kannte ich von Minit, aber noch nicht bei Debian. Und nun habe ich alles. Bunt, um "Wer" und auf welcher Maschine anzuzeigen (rot=root, grün=user), natürlich den aktuellen Pfad und trotzdem die volle Bildschirmbreite zur Eingabe... und darüber hinaus immer noch an der bisherigen gewohnten Lesweise angelehnt
Code: Alles auswählen
if [ "$USER" == "root" ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\r\n\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\r\n\$ '
fi
Re: cooler Bash-Prompt
mit den folgenden eintrag in der .bashrc wird die pwd in der prompt auf die letzten beiden verzeichnisse gekuerzt
Code: Alles auswählen
PROMPT_DIRTRIM=2