1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
function myprompt { # set color names # normal local BK="\[\O33[0;30m\]" # black local BL="\[\033[0;34m\]" # blue local GR="\[\033[0;32m\]" # green local CY="\[\033[0;36m\]" # cyan local RD="\[\033[0;31m\]" # red local PL="\[\033[0;35m\]" # purple local BR="\[\033[0;33m\]" # brown local GY="\[\033[1;30m\]" # grey # enhanced local eGY="\[\033[0;37m\]" # light gray local eBL="\[\033[1;34m\]" # light blue local eGR="\[\033[1;32m\]" # light green local eCY="\[\033[1;36m\]" # light cyan local eRD="\[\033[1;31m\]" # light red local ePL="\[\033[1;35m\]" # light purple local eYW="\[\033[1;33m\]" # yellow local eWT="\[\033[1;37m\]" # white # reset to teminal default local NRML="\[\033[0;0m\]" # normal term color # what user am i? local me=`whoami` # setup user-based colors schemes. # play around in here for global settings # or create ~/.mprc for local override. case $me in # root) # system god # local UCHR="# " # root prompt character # local UCLR=$eYW # root prompt color # local NCLR=$PL # username color # local ATCLR=$CY # @ sign color # local HCLR=$eBL # host name color # local BRKT=$eBL # bracket color # local PARN=$CY # parens color # local DCLR=$CY # dash color # local SCLR=$CY # slash color # local TCLR=$eBL # time color # local COCLR=$BL # colon color # local DTCLR=$eBL # date color # local DIR=$eCY # current directory color # local TXT=$NRML # root text color # local CCHR="->" # line continuation character # local CCLR=$GY # line continuation character color # ;; *) # mere mortals local UCHR="\\$ " # user prompt character local UCLR=$eRD # user prompt color local NCLR=$RD # username color local ATCLR=$eRD # @ sign color local HCLR=$RD # host name color local BRKT=$eRD # bracket color local PARN=$GY # parens color local DCLR=$CY # dash color local SCLR=$GY # slash color local TCLR=$GR # time color local COCLR=$BL # colon color local DTCLR=$eGL # date color local DIR=$RD # current directory color local TXT=$NRML # user text color local CCHR="-> " # line continuation character local CCLR=$GY # line continuation character color ;; esac PS2="$eRD>$RD>$eGY> " local PROMPT_STYLE=$1 case $PROMPT_STYLE in short) PS1="$HCLR\h $BRKT[$DIR \w $BRKT]$UCLR$UCHR$TXT" #PS2="$CCLR$CCHR$TXT" ;; ext) DCSIZE="\$(ls --si -s | head -1 | awk '{print \$2}')" DCCONT="\$(ls -l | grep \"^-\" | wc -l | tr -d \" \")" SYSU="\$(uptime | sed 's/.*://; s/,//g')" PS1="$NCLR\u$ATCLR@$HCLR\h.$(domainname)$DCLR $PARN[$TCLR \$(date '+%H%M%S')$SCLR | $eGR${DCCONT} ${GR}Files $eGR$DCSIZE${GR} Total $SCLR|$GR$SYSU $SCLR$PARN]\n$ePL\l $PARN[$DIR\w$PARN] $UCLR$UCHR$TXT" #PS2="$CCLR$CCHR$NRML" ;; mini) PS1="$UCLR$UCHR$TXT$NRML" PS2=">" ;; -h | --help) echo echo myprompt: a multi-mode color prompt generator echo usage: [myprompt \| mp] [short \| ext \| mini \| -h \| --help] echo echo Source and call from .bashrc with parameters echo to modify the color and layout of the bash prompt. echo ;; *) if [ "$TERM" = "dumb" ]; then alias ls='ls --color=none' PS1="\h \W % " else PS1="$RD\h $ePL\l $eRD\W $RD$UCHR$NRML" fi ;; esac } function mp { myprompt $1 }