这个设置可以显示一个两行的提示符,它有如下特点:
# Below are the color init strings for the basic file types. A color init # string consists of one or more of the following numeric codes: # Attribute codes: # 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed # Text color codes: # 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white # Background color codes: # 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white # ================================================================== # some colors none="\[\033[0m\]" black="\[\033[0;30m\]" dark_gray="\[\033[1;30m\]" blue="\[\033[0;34m\]" light_blue="\[\033[1;34m\]" green="\[\033[0;32m\]" light_green="\[\033[1;32m\]" cyan="\[\033[0;36m\]" light_cyan="\[\033[1;36m\]" red="\[\033[0;31m\]" light_red="\[\033[1;31m\]" purple="\[\033[0;35m\]" light_purple="\[\033[1;35m\]" brown="\[\033[0;33m\]" yellow="\[\033[1;33m\]" light_gray="\[\033[0;37m\]" white="\[\033[1;37m\]" # display_clock() # > display a clock in the upper-righthand corner function display_clock { LIGHT_BLUE="$(tput setaf 4; tput bold)" DEFAULT="$(tput sgr0)" CLOCK="[$LIGHT_BLUE$(date +%H:%M:%S)$DEFAULT]" # <columns in display> - len($CLOCK) let UPPER_RIGHT=$(tput cols)-10 tput sc tput cup 0 ${UPPER_RIGHT} echo -n ${CLOCK} tput rc } function set_hist_color { # $? - exit value of last command local ERR_in=$? ERR="[$ERR_in]" if [ $ERR_in -gt 0 ] then HIST_COLOR="1;31" # failure else HIST_COLOR="1;32" # success ERR= fi } # set TTY_COLOR to current (tty-number mod 8)+30 function set_tty_color { local rem color let rem=`tty | sed -e 's/.*\/\(tty\)\?//'`%8 let color=rem+30 TTY_COLOR="1;$color" } function set_user_color { local u_color_in let u_color_in=`id -u`%8+30 USER_COLOR="1;${u_color_in}" #purple="\[\033[0;35m\]" if [ `id -u` -eq 0 ] ; then USER_COLOR="1;31" fi } # ================================================================== # prompt_command() # > commands to run before each prompt display function prompt_command { set_hist_color set_tty_color set_user_color #display_clock # for screen title setting echo -n -e "\033k\033\134" } function color_prompt { PROMPT_COMMAND=prompt_command local current_tty=`tty | sed -e "s/\/dev\/\(.*\)/\1/"` PS1="$dark_gray> \033[\$(echo -n \$TTY_COLOR)m\]$current_tty \033[\$(echo -n \$USER_COLOR)m\]\u$dark_gray@$purple\H$dark_gray:$light_blue\w\n$dark_gray> $cyan\t \033[\$(echo -n \$HIST_COLOR)m\]\$ERR\033[\$(echo -n \$TTY_COLOR)m\]"'\$'"$none " PS2="$dark_gray>$none " } function dynamic_prompt { # Colour Macros BLUE='\[\033[0;34m\]' LIGHT_CYAN='\[\033[1;36m\]' WHITE='\[\033[1;37m\]' DEFAULT='\[\033[0m\]' # Pre-Prompt Function PROMPT_COMMAND=prompt_command # Prompt # \! - history number of last command # $? - exit value of last command # \t - exit time of last command # \w - current directory (relative) PS1="$BLUE[\[\033[\$(echo -n \$HIST_COLOR)m\]\!$BLUE] $WHITE\w$LIGHT_CYAN\$ $DEFAULT" } function top_prompt { # If running interactively, then: if [ "$PS1" ]; then local top_prompt_color="\[\033[1;30;46m\]" # set the prompt PS1="$(tput sc)$(tput cup 0 0)$(tput el)$top_prompt_color \w : \u@\H { \$(date +%T) }$(tput rc)$" # move one line tput cup 1 0 fi } function plain_prompt { local current_tty=`tty | sed -e "s/\/dev\/\(.*\)/\1/"` PS1="> $current_tty \u@\H:\w\n> \$? \t \! "'\$'" " PS2="> " } function fancy_three_line_prompt { PS1='\[\033[0m\]\[\033[0;31m\].:\[\033[0m\]\[\033[1;30m\][\[\033[0m\]\[\033[0;28m\]Managing \033[1;31m\]\j\[\033[0m\]\[\033[1;30m\]/\[\033[0m\]\[\033[1;31m\]$(ps ax | wc -l | tr -d '\'' '\'')\[\033[0m\]\[\033[1;30m\] \[\033[0m\]\[\033[0;28m\]jobs.\[\033[0m\]\[\033[1;30m\]] [\[\033[0m\]\[\033[0;28m\]CPU Load: \[\033[0m\]\[\033[1;31m\]$(temp=$(cat /proc/loadavg) && echo ${temp%% *}) \[\033[0m\]\[\033[0;28m\]Uptime: \[\033[0m\]\[\033[1;31m\]$(temp=$(cat /proc/uptime) && upSec=${temp%%.*} ; let secs=$((${upSec}%60)) ; let mins=$((${upSec}/60%60)) ; let hours=$((${upSec}/3600%24)) ; let days=$((${upSec}/86400)) ; if [ ${days} -ne 0 ]; then echo -n ${days}d; fi ; echo -n ${hours}h${mins}m)\[\033[0m\]\[\033[1;30m\]]\[\033[0m\]\[\033[0;31m\]:.\n\[\033[0m\]\[\033[0;31m\].:\[\033[0m\]\[\033[1;30m\][\[\033[0m\]\[\033[1;31m\]$(ls -l | grep "^-" | wc -l | tr -d " ") \[\033[0m\]\[\033[0;28m\]files using \[\033[0m\]\[\033[1;31m\]$(ls --si -s | head -1 | awk '\''{print $2}'\'')\[\033[0m\]\[\033[1;30m\]] [\[\033[0m\]\[\033[1;31m\]\u\[\033[0m\]\[\033[0;31m\]@\[\033[0m\]\[\033[1;31m\]\h \[\033[0m\]\[\033[1;34m\]\w\[\033[0m\]\[\033[1;30m\]]\[\033[0m\]\[\033[0;31m\]:.\n\[\033[0m\]\[\033[0;31m\].:\[\033[0m\]\[\033[1;30m\][\[\033[0m\]\[\033[1;31m\]\t\[\033[0m\]\[\033[1;30m\]]\[\033[0m\]\[\033[0;31m\]:. \[\033[0m\]\[\033[1;37m\]$ \[\033[0m\]' } #some aliases to set fancy prompts #see .bash_slyles for further informations if [ -f ~/.bash_styles ]; then alias dumb='. ~/.bash_styles dumb' alias ice='. ~/.bash_styles ice' alias fire='. ~/.bash_styles fire' alias nature='. ~/.bash_styles nature' alias sunshine='. ~/.bash_styles sunshine' alias dream='. ~/.bash_styles dream' alias magic='. ~/.bash_styles magic' alias iceg='. ~/.bash_styles iceg' alias topline='. ~/.bash_styles topline' fi # Actions color_prompt