Bash Prompt and ANSI Color
Bash Setting
1 2 |
export CLICOLOR=1 export TERM=xterm-color |
Prompt
只要設定 PS1 這個環境變數就可以修改在 Terminal 的提示文字, 通常會在 home 目錄中的 .bashrc
找到定義
export PS1=""
可以使用的 prompt 變數如下:
\d
: 可顯示出『星期 月 日』的日期格式,如:”Mon Feb 2″\H
: 完整的主機名稱\h
: 僅取主機名稱在第一個小數點之前的名字\t
: 顯示時間,為 24 小時格式的『HH:MM:SS』\T
: 顯示時間,為 12 小時格式的『HH:MM:SS』\A
: 顯示時間,為 24 小時格式的『HH:MM』\@
: 顯示時間,為 12 小時格式的『am/pm』樣式\u
: 目前使用者的帳號名稱,如『root』;\v
: BASH 的版本資訊\w
: 完整的工作目錄名稱,由根目錄寫起的目錄名稱。但 home 目錄會以 ~ 取代;\W
: 利用 basename 函數取得工作目錄名稱,所以僅會列出最後一個目錄名。\#
: 下達的第幾個指令。\$
: 提示字元,如果是 root 時,提示字元為 # ,否則就是 $ 囉~
ANSI Color
\e[
or\033[
: 代表顏色宣告的開始x;ym
: x,y 為顏色值\e[m
or\033[m
: 顏色宣告結束
顏色值可以參考下面的對照表:
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 |
txtblk='\e[0;30m' # Black - Regular txtred='\e[0;31m' # Red txtgrn='\e[0;32m' # Green txtylw='\e[0;33m' # Yellow txtblu='\e[0;34m' # Blue txtpur='\e[0;35m' # Purple txtcyn='\e[0;36m' # Cyan txtwht='\e[0;37m' # White bldblk='\e[1;30m' # Black - Bold bldred='\e[1;31m' # Red bldgrn='\e[1;32m' # Green bldylw='\e[1;33m' # Yellow bldblu='\e[1;34m' # Blue bldpur='\e[1;35m' # Purple bldcyn='\e[1;36m' # Cyan bldwht='\e[1;37m' # White unkblk='\e[4;30m' # Black - Underline undred='\e[4;31m' # Red undgrn='\e[4;32m' # Green undylw='\e[4;33m' # Yellow undblu='\e[4;34m' # Blue undpur='\e[4;35m' # Purple undcyn='\e[4;36m' # Cyan undwht='\e[4;37m' # White bakblk='\e[40m' # Black - Background bakred='\e[41m' # Red bakgrn='\e[42m' # Green bakylw='\e[43m' # Yellow bakblu='\e[44m' # Blue bakpur='\e[45m' # Purple bakcyn='\e[46m' # Cyan bakwht='\e[47m' # White txtrst='\e[0m' # Text Reset |
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 |
# Reset Color_Off='\e[0m' # Text Reset # Regular Colors Black='\e[0;30m' # Black Red='\e[0;31m' # Red Green='\e[0;32m' # Green Yellow='\e[0;33m' # Yellow Blue='\e[0;34m' # Blue Purple='\e[0;35m' # Purple Cyan='\e[0;36m' # Cyan White='\e[0;37m' # White # Bold BBlack='\e[1;30m' # Black BRed='\e[1;31m' # Red BGreen='\e[1;32m' # Green BYellow='\e[1;33m' # Yellow BBlue='\e[1;34m' # Blue BPurple='\e[1;35m' # Purple BCyan='\e[1;36m' # Cyan BWhite='\e[1;37m' # White # Underline UBlack='\e[4;30m' # Black URed='\e[4;31m' # Red UGreen='\e[4;32m' # Green UYellow='\e[4;33m' # Yellow UBlue='\e[4;34m' # Blue UPurple='\e[4;35m' # Purple UCyan='\e[4;36m' # Cyan UWhite='\e[4;37m' # White # Background On_Black='\e[40m' # Black On_Red='\e[41m' # Red On_Green='\e[42m' # Green On_Yellow='\e[43m' # Yellow On_Blue='\e[44m' # Blue On_Purple='\e[45m' # Purple On_Cyan='\e[46m' # Cyan On_White='\e[47m' # White # High Intensity IBlack='\e[0;90m' # Black IRed='\e[0;91m' # Red IGreen='\e[0;92m' # Green IYellow='\e[0;93m' # Yellow IBlue='\e[0;94m' # Blue IPurple='\e[0;95m' # Purple ICyan='\e[0;96m' # Cyan IWhite='\e[0;97m' # White # Bold High Intensity BIBlack='\e[1;90m' # Black BIRed='\e[1;91m' # Red BIGreen='\e[1;92m' # Green BIYellow='\e[1;93m' # Yellow BIBlue='\e[1;94m' # Blue BIPurple='\e[1;95m' # Purple BICyan='\e[1;96m' # Cyan BIWhite='\e[1;97m' # White # High Intensity backgrounds On_IBlack='\e[0;100m' # Black On_IRed='\e[0;101m' # Red On_IGreen='\e[0;102m' # Green On_IYellow='\e[0;103m' # Yellow On_IBlue='\e[0;104m' # Blue On_IPurple='\e[0;105m' # Purple On_ICyan='\e[0;106m' # Cyan On_IWhite='\e[0;107m' # White |
ANSI 256 Color
如果要用到 ANSI 256 color, 可以先下載 colortest 了解想要的顏色編號.
\e[38;5;
or\033[38;5;
: 顏色宣告xm
: x 為顏色編號\e[m
or\033[m
: 顏色宣告結束
我目前的 PS1 設定如下
export PS1="★ \u [\033[38;5;148m \W \033[m] \$ "
export PS1="\e[0;96m☁ \e[m \u [\033[38;5;148m \W \033[m] \$ "
.