prompt是指終端提示符(Shell提示符),是在linux操作系統(tǒng)中,提示進(jìn)行命令輸入的一種工作提示符。對于普通用戶,Base shell默認(rèn)的提示符是美元符號“$”;對于超級用戶(root用戶),Bash Shell默認(rèn)的提示符是井號“#”;該符號表示Shell等待輸入命令。
本教程操作環(huán)境:centos8系統(tǒng)、Dell G3電腦。
prompt是指終端提示符,是在linux操作系統(tǒng)中,提示進(jìn)行命令輸入的一種工作提示符。
啟動終端模擬包或者從 Linux 控制臺登錄后,便可以看到 Shell 提示符。提示符是通往 Shell 的大門,是輸入 Shell 命令的地方。
對于普通用戶,Base shell 默認(rèn)的提示符是美元符號$
;對于超級用戶(root 用戶),Bash Shell 默認(rèn)的提示符是井號#
。該符號表示 Shell 等待輸入命令。
不同的 Linux 發(fā)行版使用的提示符格式不同。例如在 CentOS 中,默認(rèn)的提示符格式為:
[mozhiyan@localhost ~]$
這種格式包含了以下三個(gè)方面的信息:
-
啟動 Shell 的用戶名,也即 mozhiyan;
-
本地主機(jī)名稱,也即 localhost;
-
當(dāng)前目錄,波浪號~是主目錄的簡寫表示法。
Shell 通過PS1和PS2兩個(gè)環(huán)境變量來控制提示符格式:
-
PS1 控制最外層命令行的提示符格式。
-
PS2 控制第二層命令行的提示符格式。
在 Shell 中初次輸入命令,使用的是 PS1 指定的提示符格式;如果輸入一個(gè)命令后還需要輸入附加信息,Shell 就使用 PS2 指定的提示符格式。請看下面的例子:
[mozhiyan@localhost ~]$ echo "PHP中文網(wǎng)" PHP中文網(wǎng) [mozhiyan@localhost ~]$ echo "https://www.php.cn/" https://www.php.cn/ [mozhiyan@localhost ~]$ echo " > yan > chang > sheng > " yan chang sheng [mozhiyan@localhost ~]$
echo 是一個(gè)輸出命令,可以用來輸出數(shù)字、變量、字符串等;本例中,我們使用 echo 來輸出字符串。
字符串是一組由" "包圍起來的字符序列,echo 將第一個(gè)"作為字符串的開端,將第二個(gè)"作為字符串的結(jié)尾。此處的字符串就可以看做 echo 命令的附加信息。
本例中,前兩次使用 echo 命令時(shí)都是在后面緊跟字符串,一行之內(nèi)輸入了完整的附加信息。第三次使用 echo 時(shí),將字符串分成多行,echo 遇到第一個(gè)"認(rèn)為是不完整的附加信息,所以會繼續(xù)等待用戶輸入,直到遇見第二個(gè)"。輸入的附加信息就是第二層命令,所以使用>作為提示符。
要顯示提示符的當(dāng)前格式,可以使用 echo 輸出 PS1 和 PS2:
[mozhiyan@localhost ~]$ echo $PS1 [u@h W]$ [mozhiyan@localhost ~]$ echo $PS2 > [mozhiyan@localhost ~]$
Shell 使用以為前導(dǎo)的特殊字符來表示命令提示符中包含的要素,這使得 PS1 和 PS2 的格式看起來可能有點(diǎn)奇怪。下表展示了可以在 PS1 和 PS2 中使用的特殊字符。
字符 | 描述 |
---|---|
a | 鈴聲字符 |
d | 格式為“日 月 年”的日期 |
e | ASCII轉(zhuǎn)義字符 |
h | 本地主機(jī)名 |
H | 完全合格的限定域主機(jī)名 |
j | shell當(dāng)前管理的作業(yè)數(shù) |
1 | shell終端設(shè)備名的基本名稱 |
n | ASCII換行字符 |
r | ASCII回車 |
s | shell的名稱 |
t | 格式為“小時(shí):分鐘:秒”的24小時(shí)制的當(dāng)前時(shí)間 |
T | 格式為“小時(shí):分鐘:秒”的12小時(shí)制的當(dāng)前時(shí)間 |
@ | 格式為am/pm的12小時(shí)制的當(dāng)前時(shí)間 |
u | 當(dāng)前用戶的用戶名 |
v | bash shell的版本 |
V | bash shell的發(fā)布級別 |
w | 當(dāng)前工作目錄 |
W | 當(dāng)前工作目錄的基本名稱 |
! | 該命令的bash shell歷史數(shù) |
# | 該命令的命令數(shù)量 |
$ | 如果是普通用戶,則為美元符號$ ;如果超級用戶(root 用戶),則為井號# 。 |
nnn | 對應(yīng)于八進(jìn)制值 nnn 的字符 |
\ | 斜杠 |
[ | 控制碼序列的開頭 |
] | 控制碼序列的結(jié)尾 |
注意,所有的特殊字符均以反斜杠開頭,目的是與普通字符區(qū)分開來。您可以在命令提示符中使用以上任何特殊字符的組合。
我們可以通過修改 PS1 變量來修改提示符格式,例如:
[mozhiyan@localhost ~]$ PS1="[t][u]$ " [17:27:34][mozhiyan]$
新的 Shell 提示符現(xiàn)在可以顯示當(dāng)前的時(shí)間和用戶名。不過這個(gè)新定義的 PS1 變量只在當(dāng)前 Shell 會話期間有效,再次啟動 Shell 時(shí)將重新使用默認(rèn)的提示符格式。