PS1 是一個很有意思的變數,是用來定義命令列的提示符的,可以按照我們自己的需求來定義自己喜歡的提示符。
PS1 可以支援以下這些選項:
-
d:顯示曰期,格式為"星期 月 日"。
-
H:顯示完整的主機名。如預設主機名"localhost.localdomain"。
-
h:顯示簡寫的主機名。如預設主機名"localhost"。
-
t:顯示 24 小時制時間,格式為"HH:MM:SS"。
-
T:顯示 12 小時制時間,格式為"HH:MM:SS"。
-
A:顯示 24 小時制時間,格式為"HH:MM"。
-
@:顯示 12 小時制時間,格式為"HH:MM am/pm"。
-
u:顯示當前使用者名稱。
-
v:顯示 Bash 的版本資訊。
-
w:顯示當前所在目錄的完整名稱。
-
W:顯示當前所在目錄的最後一個目錄。
-
#:執行的第幾條命令。
-
$:提示符。如果是 root 使用者,則會顯示提示符為"#";如果是普通使用者,則會顯示提示符為"$"。
這些選項該怎麼用呢?我們先看看 PS1 變數的預設值,如下:
[[email protected] ~]# echo $PS1
[[email protected]]$
#預設的提示符是顯示"[使用者名稱@簡寫主機名最後所在目錄]提示符"
在 PS1 變數中,如果是可以解釋的符號,如"u"、"h"等,則顯示這個符號的作用;如果是不能解釋的符號,如"@"或"空格",則原符號輸出。我們修改一下 PS1 變數,看看會出現什麼情況。
[[email protected] ~]# PS1='[[email protected] w]$'
#修改提示符為'[使用者名稱@當前時間當前所在完整目錄]提示符'
[[email protected]:46:40 ~]#cd /usr/local/src/
#切換到當前所在目錄,因為家目錄是看不出來區別的
[[email protected]:47:29 /usr/local/src]#
#看到了嗎?提示符按照我們的設計發生了變化
這裡要小心,PS1 變數的值要用單引號包含,否則設定不生效。再舉個例子:
[[email protected]:50:08 /usr/local/src]#PS1='[[email protected] @ h # W]$'
[[email protected]:53上午 localhost 31 src]#
#提示符又變了。@:時間格式是HH:MM am/pm;#:會顯示執行了多少條命令
PS1 變數可以自由客製化,好像看到了一點 Linux 可以自由客製化和修改的影子,還是很有意思的。不過說實話,一個提示符已經使用習慣了,如果換一個還是非常彆扭的,還是改回預設的提示符吧,命令如下:
[[email protected]:53上午 localhost 31 src]#PS1='[[email protected] W]$'
[[email protected] src]#
注意,這些提示符的修改同樣是臨時生效的,一旦登出或重新啟動系統就會消失。要想永久生效,必須寫入環境變數組態檔。