定制 Shell 提示符
Shell 類型標識
在打開的終端等待輸入命令時用狱,往往顯示部分信息,如顯示當前日期灵巧、符號“>”搀矫、“$” 等等抹沪,這就是命令提示符。
我們可能會注意到瓤球,在使用不同的用戶標識融欧、不同的 Shell 類型時,會出現(xiàn)諸如 $卦羡、#噪馏、% 等提示符。默認情況下绿饵,它們都有標志意義的欠肾。通過下表,可以進行了解一下拟赊。
標準 Shell 提示
Shell提示Shell 類型
$Bash
%C-shell 家族
%或>Tcsh
#根用戶刺桃,root
當我們看到這些 Shell 提示符時,應該靈敏地感覺到自己處在什么 Shell 類型之中吸祟。尤其是出現(xiàn)“#”時瑟慈,也應該意識到:我正在以 root 用戶標識登陸,我的每一步操作都應該謹慎欢搜。
定制 Bash Shell 命令提示符
引子
在多數(shù) Linux 下封豪,一般提供 Bash 作為默認 Shell。但不同的系統(tǒng)中炒瘟,你會看到不同的命令提示符吹埠,如Fedora下:
[fedora@fedora ~]$
或者,它們默認提供的顏色也不一致疮装。這就是我們要討論的:如何去定制更加個性化的命令提示符缘琅。
環(huán)境變量 PS1
Shell 命令提示符實際上由一個環(huán)境變量 PS1 來設置的,上面的例子 PS1 值為:
$ echo $PS1#顯示PS1變量值
[\u@\h \W]\$
在 Shell 提示中廓推,我們可以使用「環(huán)境變量」和「特殊碼」來定制提示符刷袍。
Shell 提示中有用的環(huán)境變量
變量含義
HOME主文件夾目錄
HOSTNAME計算機名稱
HOSTTYPE主機類型(CPU架構)
LOGNAME當前用戶標識
PWD當前工作目錄
RANDOM0~32767之間的隨機數(shù)
SECONDS當前 shell 運行時間(秒)
SHELL登陸 Shell 的路徑名
USER當前用戶標識
當我們要在命令提示符中使用上述環(huán)境變量時,可以直接將其插入在命令提示符中樊展,如:
export PS1="$USER >"
當然呻纹,上面的環(huán)境變量有限,提供的信息也沒有足夠的吸引力专缠。Bash 還允許通過插入一些反斜杠轉義的特殊字符來定制命令提示符(man bash):
\d日期雷酪,格式是 "星期 月份 日" (例如,"Tue May 26")
\h主機名涝婉,第一個 `.' 之前的部分
\H主機名
\n換行
\r回車
\t顯示當前時間哥力,采用 24小時制 HH:MM:SS 格式
\T顯示當前時間,采用 12小時制的 HH:MM:SS 格式
\@顯示當前時間,采用 12小時制「上午/下午」格式
\A顯示當前時間吩跋,采用 24小時制「上午/下午」格式
\u當前用戶的用戶名
\w當前工作目錄
\W當前工作目錄的基本部分
\!此命令的歷史編號
\#此命令的命令編號
\$如果有效 UID 是 0寞射,就是 #, 其他情況下是 $
\\一個反斜杠
\[一個不可打印字符序列的開始,可以用于在提示符中嵌入終端控制序列
\]一個不可打印字符序列的結束
結合上面提供的可用特殊字符锌钮,定制個性化的命令提示符并不困難了桥温。
推薦閱讀:
Linux下Shell編程——awk編程http://www.linuxidc.com/Linux/2013-06/85527.htm
Linux下Shell編程——sed命令基本用法http://www.linuxidc.com/Linux/2013-06/85526.htm
Linux下Shell編程——grep命令的基本運用http://www.linuxidc.com/Linux/2013-06/85525.htm
Linux下Shell編程——正則表達式基礎與擴展http://www.linuxidc.com/Linux/2013-06/85523.htm