fancy_prompt_cookbook
Fancy prompt cookbook
It is nice to make your bash prompt look good. Here is a base script that defines all the ANSI colors as variables and sets up a clear PS1 prompt variable. I usually save this as ".bashprompt" and source it from ".bashrc".
R="\[\e[m\]" RESET="\[\e[m\]" BOLD="\[\e[1m\]" FAINT="\[\e[2m\]" UNDERLINE="\[\e[4m\]" REVERSE="\[\e[7m\]" STRIKEOUT="\[\e[9m\]" LO_BLACK="\[\e[30m\]" LO_RED="\[\e[31m\]" LO_GREEN="\[\e[32m\]" LO_YELLOW="\[\e[33m\]" LO_BLUE="\[\e[34m\]" LO_MAGENTA="\[\e[35m\]" LO_CYAN="\[\e[36m\]" LO_WHITE="\[\e[37m\]" HI_BLACK="\[\e[30;90m\]" HI_RED="\[\e[31;91m\]" HI_GREEN="\[\e[32;92m\]" HI_YELLOW="\[\e[33;93m\]" HI_BLUE="\[\e[34;94m\]" HI_MAGENTA="\[\e[35;95m\]" HI_CYAN="\[\e[36;96m\]" HI_WHITE="\[\e[37;97m\]" BG_BLACK="\[\e[40m\]" BG_RED="\[\e[41m\]" BG_GREEN="\[\e[42m\]" BG_YELLOW="\[\e[43m\]" BG_BLUE="\[\e[44m\]" BG_MAGENTA="\[\e[45m\]" BG_CYAN="\[\e[46m\]" BG_WHITE="\[\e[47m\]" # ======================= BASH PROMPT ESCAPE CODES ========================== # == Time & Date == # \t Time in 24-hour HH:MM:SS format \T Time in 12-hour HH:MM:SS format # \A Time in 24-hour HH:MM format \@ Time in 12-hour HH:MM AP format # \d Date, e.g. "Tue May 26" # # == Characters == # \a ASCII bell \e ASCII escape character # \n Newline \r Carriage return # \[ Start of non-printing characters \] End of non-printing characters # \\ A backslash # # == Shell Info == # \v Short version (e.g. "4.0") \V Long version (e.g. "4.0.33") # \! History number of this command \# Command number of this command # \j Number of jobs \l Basename of the shell's terminal device # \s Shell name (e.g. "bash") # # == Current Environment == # \h Short hostname \H Full hostname # \w Current working directory \W Basename of the current directory # \u Current username # \$ Shell prompt (either '$' or '#') # if [ `whoami` = "root" ] then export PS1="$BG_RED$HI_YELLOW\u${HI_WHITE}@${HI_YELLOW}\h$HI_BLACK:$HI_GREEN\w $HI_WHITE\$$R " else #export PS1="$BG_BLUE$LO_CYAN\u${HI_CYAN}@${LO_CYAN}\h$HI_BLACK:$HI_GREEN\w $HI_WHITE\$$R " #export PS1="$BG_BLUE$LO_MAGENTA\u${HI_MAGENTA}@${LO_MAGENTA}\h$HI_BLACK:$HI_GREEN\w $HI_WHITE\$$R " export PS1="$BG_BLUE$LO_GREEN\u${HI_GREEN}@${LO_GREEN}\h$HI_BLACK:$HI_GREEN\w $HI_WHITE\$$R " fi unset R RESET BOLD FAINT UNDERLINE REVERSE STRIKEOUT LO_BLACK LO_RED LO_GREEN LO_YELLOW LO_BLUE LO_MAGENTA LO_CYAN LO_WHITE unset HI_BLACK HI_RED HI_GREEN HI_YELLOW HI_BLUE HI_MAGENTA HI_CYAN HI_WHITE BG_BLACK BG_RED BG_GREEN BG_YELLOW BG_BLUE BG_MAGENTA BG_CYAN BG_WHITE
Also, if your environment isn't updating the tab titles in your graphical terminal, you can append the following line to fix that:
export PS1="\[\e]0;\u@\h:\w\a\]$PS1"
fancy_prompt_cookbook.txt · Last modified: 2010/06/17 14:39 by tkbletsc