啟動終端模拟包或者從 Linux 控制台登錄後,便可以看到 Shell 提示符。提示符是通往 Shell 的大門,是輸入 Shell 命令的地方。
對于普通用戶,Base shell 默認的提示符是美元符号$;對于超級用戶(root 用戶),Bash Shell 默認的提示符是井号#。該符号表示 Shell 等待輸入命令。
不同的 Linux 發行版使用的提示符格式不同。例如在 CentOS 中,默認的提示符格式為:
[pretech@localhost ~]$
這種格式包含了以下三個方面的信息:
Shell 通過PS1和PS2兩個環境變量來控制提示符格式:
在 Shell 中初次輸入命令,使用的是 PS1 指定的提示符格式;如果輸入一個命令後還需要輸入附加信息,Shell 就使用 PS2 指定的提示符格式。請看下面的例子:
[pretech@localhost ~]$ echo "flow pretech study shell" flow pretech study shell [pretech@localhost ~]$ echo "so easy" so easy [pretech@localhost ~]$ echo " > yan > chang > sheng > " yan chang sheng [pretech@localhost ~]$
echo 是一個輸出命令,可以用來輸出數字、變量、字符串等;本例中,我們使用 echo 來輸出字符串。
字符串是一組由" "包圍起來的字符序列,echo 将第一個"作為字符串的開端,将第二個"作為字符串的結尾。此處的字符串就可以看做 echo 命令的附加信息。
本例中,前兩次使用 echo 命令時都是在後面緊跟字符串,一行之内輸入了完整的附加信息。第三次使用 echo 時,将字符串分成多行,echo 遇到第一個"認為是不完整的附加信息,所以會繼續等待用戶輸入,直到遇見第二個"。輸入的附加信息就是第二層命令,所以使用>作為提示符。
要顯示提示符的當前格式,可以使用 echo 輸出 PS1 和 PS2:
[pretech@localhost ~]$ echo $PS1 [\u@\h \W]\$ [pretech@localhost ~]$ echo $PS2 > [pretech@localhost ~]$
Shell 使用以\為前導的特殊字符來表示命令提示符中包含的要素,這使得 PS1 和 PS2 的格式看起來可能有點奇怪。下表展示了可以在 PS1 和 PS2 中使用的特殊字符。
注意,所有的特殊字符均以反斜杠\開頭,目的是與普通字符區分開來。您可以在命令提示符中使用以上任何特殊字符的組合。
我們可以通過修改 PS1 變量來修改提示符格式,例如:
純文本複制 [mozhiyan@localhost ~]$ PS1="[\t][\u]\$ " [17:27:34][mozhiyan]$
新的 Shell 提示符現在可以顯示當前的時間和用戶名。不過這個新定義的 PS1 變量隻在當前 Shell 會話期間有效,再次啟動 Shell 時将重新使用默認的提示符格式。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!