歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> 定制 Shell 提示符

定制 Shell 提示符

日期:2017/3/1 9:54:49   编辑:SHELL編程

Shell 類型標識

在打開的終端等待輸入命令時,往往顯示部分信息,如顯示當前日期、符號“>”、“$” 等等,這就是命令提示符。

我們可能會注意到,在使用不同的用戶標識、不同的 Shell 類型時,會出現諸如 $、#、% 等提示符。默認情況下,它們都有標志意義的。通過下表,可以進行了解一下。

標准 Shell 提示 Shell提示 Shell 類型 $ Bash % C-shell 家族 %或> Tcsh # 根用戶,root

當我們看到這些 Shell 提示符時,應該靈敏地感覺到自己處在什麼 Shell 類型之中。尤其是出現“#”時,也應該意識到:我正在以 root 用戶標識登陸,我的每一步操作都應該謹慎。

定制 Bash Shell 命令提示符

引子

在多數 Linux 下,一般提供 Bash 作為默認 Shell。但不同的系統中,你會看到不同的命令提示符,如 Fedora 下:

[fedora@fedora ~]$

或者,它們默認提供的顏色也不一致。這就是我們要討論的:如何去定制更加個性化的命令提示符。

環境變量 PS1

Shell 命令提示符實際上由一個環境變量 PS1 來設置的,上面的例子 PS1 值為:

$ echo $PS1#顯示PS1變量值
[\u@\h \W]\$

在 Shell 提示中,我們可以使用「環境變量」和「特殊碼」來定制提示符。

Shell 提示中有用的環境變量 變量 含義 HOME 主文件夾目錄 HOSTNAME 計算機名稱 HOSTTYPE 主機類型(CPU架構) LOGNAME 當前用戶標識 PWD 當前工作目錄 RANDOM 0~32767之間的隨機數 SECONDS 當前 shell 運行時間(秒) SHELL 登陸 Shell 的路徑名 USER 當前用戶標識

當我們要在命令提示符中使用上述環境變量時,可以直接將其插入在命令提示符中,如:

export PS1="$USER >"

當然,上面的環境變量有限,提供的信息也沒有足夠的吸引力。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,就是 #, 其他情況下是 $ \\ 一個反斜槓 \[ 一個不可打印字符序列的開始,可以用於在提示符中嵌入終端控制序列 \] 一個不可打印字符序列的結束

結合上面提供的可用特殊字符,定制個性化的命令提示符並不困難了。

Copyright © Linux教程網 All Rights Reserved