系統啟動后,環境變量加載的順序為:/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → /etc/bashrc
想要修改某用戶登錄后shell字體的顏色,在~/.bashrc中修改PS1的內容即可。
命令提示符PS1的常用參數:
\d :日期,格式為"周 月 日",例如:"Mon Aug 1"
\H :完整的主機名;
\h :僅取主機的第一個名字;
\t :24小時制的時間,如:HH:MM:SS;
\A :24小時制的時間:HH:MM;
\T :12小時制的時間;
\u :當前用戶的用戶名;
\v :BASH的版本信息;
\w :當前工作目錄的完整路徑;
\W :當前工作目錄的basename;
\$ :提示符,如果是root時,提示符為:#,普通用戶則為:$
要實現顏色顯示,這里要用到轉義序列;轉義序列就是一個讓 shell 執行一個特殊步驟的控制指令。
轉義序列通常都是以ESC開頭,在shell里表示為^[ ,這種表示法需要一點時間去適應,也可以用 \033 完成相同的工作(ESC的ASCII 碼用十進制表示就是27,等於用八進制表示的033)。
要直接在shell里面輸入轉義序列需要先按CTRL-v ESC
或者CRTL-v-[
。
\033[m 聲明了轉義序列的開始。
\033[0m 聲明轉義序列結束,回到默認顏色。
PS1中設置字符顏色有兩種方式,效果相同:
1、\e[F;Bm
2、\033[F;Bm
其中"F"為字體顏色,編號為30-37
"B"為背景顏色,編號為40-47
不同的數字代表不同的意義,支持的顏色列表:
F B
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫色
36 46 青藍色
37 47 白色
幾種特殊'顏色':
0 OFF
1 高亮顯示
4 underline
5 閃爍
7 反顯
8 消隱(不可見)
關於 ls 和 grep 命令的 --color[=WHEN]
參數:
--color[=WHEN]: colorize the output; WHEN can be 'never', 'auto', or 'always' (the default);
always和auto的區別:
always 會在任何情況下都給匹配到的字符加上顏色標記;
auto 只給最后一個管道符匹配到的字符加上顏色標記;
簡單示例:
# vim /etc/bashrc
PS1="\e[32;1m[\u@\h \W]\\$\e[0m "
# source /etc/bashrc