Written on: 2005/03/13.
If you're interested in a bash shell prompt like mine, insert this code into your .bashrc, .bash_profile, .profile, or whatever your flavor of UNIX uses to create it:
For white terminals:
# create prompt
PWDMAXLENGTH=30
PROMPTTRUNCSYM="..."
# Change the window title of X terminals
case $TERM in
xterm*|rxvt|Eterm|eterm)
PROMPT_COMMAND_TITLE="\033]0;USER@HOSTNAME:CURRDIR\007"
;;
screen)
PROMPT_COMMAND_TITLE='\033_USER@HOSTNAME:CURRDIR\033\\'
;;
esac
PROMPT_COMMAND=promptcommand
function promptcommand {
TMPTITLE=${PROMPT_COMMAND_TITLE/USER/$USER}
TMPHOST=${HOSTNAME%%.*}
TMPTITLE=${TMPTITLE/HOSTNAME/$TMPHOST}
TMPDIR=${PWD/$HOME/~}
TMPTITLE=${TMPTITLE/CURRDIR/$TMPDIR}
echo -ne $TMPTITLE
if [ ${#TMPDIR} -gt $PWDMAXLENGTH ]
then
PWDOFFSET=$(( ${#TMPDIR} - $PWDMAXLENGTH + ${#PROMPTTRUNCSYM} ))
TMPDIR="${PROMPTTRUNCSYM}${TMPDIR:$PWDOFFSET:$PWDMAXLENGTH}"
fi
case $TERM in
sun)
PS1="\[\e[1;34m\]\u@\[\e[1;35m\]\h:\[\e[1;31m\w>\[\e[0m\] "
;;
*)
PS1="\[\033[1;34m\]\u\[\033[0m\]@\[\033[1;35m\]\h\[\033[0m\]:\[\033[1;31m\]$TMPDIR\[\033[0m\]> "
;;
esac
unset TMPTITLE
unset TMPDIR
unset TMPHOST
}
For black terminals:
# create prompt
PWDMAXLENGTH=30
PROMPTTRUNCSYM="..."
# Change the window title of X terminals
case $TERM in
xterm*|rxvt|Eterm|eterm)
PROMPT_COMMAND_TITLE="\033]0;USER@HOSTNAME:CURRDIR\007"
;;
screen)
PROMPT_COMMAND_TITLE='\033_USER@HOSTNAME:CURRDIR\033\\'
;;
esac
PROMPT_COMMAND=promptcommand
function promptcommand {
TMPTITLE=${PROMPT_COMMAND_TITLE/USER/$USER}
TMPHOST=${HOSTNAME%%.*}
TMPTITLE=${TMPTITLE/HOSTNAME/$TMPHOST}
TMPDIR=${PWD/$HOME/~}
TMPTITLE=${TMPTITLE/CURRDIR/$TMPDIR}
echo -ne $TMPTITLE
if [ ${#TMPDIR} -gt $PWDMAXLENGTH ]
then
PWDOFFSET=$(( ${#TMPDIR} - $PWDMAXLENGTH + ${#PROMPTTRUNCSYM} ))
TMPDIR="${PROMPTTRUNCSYM}${TMPDIR:$PWDOFFSET:$PWDMAXLENGTH}"
fi
case $TERM in
sun)
PS1="\[\e[32;1m\]\u@\[\e[36;1m\]\h:\[\e[31;1m\w>\[\e[0m\] "
;;
*)
PS1="\[\033[32;1m\]\u\[\033[0m\]@\[\033[36;1m\]\h\[\033[0m\]:\[\033[31;1m\]$TMPDIR\[\033[0m\]> "
;;
esac
unset TMPTITLE
unset TMPDIR
unset TMPHOST
}