在linux系統中,ps1、ps2、ps3和ps4是特定的環境變量,它們各自在控制提示符和菜單提示信息方面發揮着不同的作用。
這些PS變量在Linux系統中可以爲用戶提供靈活的方式來定製和控制命令行的外觀和行爲,繼而提高用戶與系統的交互體驗。
注:如果要長期永久性修改提示符,可以將修改提示符的命令添加到$HOME/.bashrc或$HOME/.bash_profile文件中。
1、PS1變量
它主要用於設置shell命令提示符。每當你在終端中輸入命令時,所顯示的字符串就是由PS1變量控制的。
可以根據自己的喜好和需要,自定義PS1變量的值,從而改變命令提示符的外觀和格式。
其默認值爲:[u@h W]$,其表示:顯示用戶主機名稱工作目錄,可以在終端窗口輸入echo $PS1命令查看:
[root@iSCSI-server ~]# echo $PS1[u@h W]$[root@iSCSI-server ~]#登錄後複製
上面詳細解釋如下
字符 | 代表含義 | 備註 |
---|---|---|
[ | 代表[ | |
u | 代表當前用戶 | root |
@ | 代表@ | |
h | 代表主機名 | iSCSI-server |
代表空格(不顯示) | ||
W | 代表當前所在的目錄名 | ~代表當前用戶家目錄 |
] | 代表] | |
$ | 代表特權用戶或者普通用戶,普通用戶$+空格,超級用戶#+空格 |
PS1變量可用的參數
參數 | 描述 |
---|---|
d | 代表日期,格式爲weekday month date |
H | 完整的主機名稱。 |
h | 僅取主機的第一個名字 |
t | 顯示時間爲24小時格式,如:HH:MM:SS |
T | 顯示時間爲12小時格式 |
A | 顯示時間爲24小時格式:HH:MM |
u | 當前用戶的賬號名稱 |
v | BASH的版本信息 |
w | 完整的工作目錄名稱。家目錄會以 ~代替 |
W | 利用basename取得工作目錄名稱,所以只會列出最後一個目錄 |
# | 下達的第幾個命令 |
$ | 提示字符,如果是root時,提示符爲:# ,普通用戶則爲:$ |
[ | 字符”[“ |
] | 字符”]” |
! | 命令行動態統計歷史命令次數 |
PS1變量使用舉例
1、簡潔的提示符
[root@iSCSI-server ~]# PS1='u@h:w$ 'root@iSCSI-server:~$登錄後複製
這個提示符會顯示用戶名(u)、主機名(h)、當前工作目錄(w)和一個美元符號($)。
它適用於那些喜歡簡單、直接的提示符的用戶。
2、顯示完整路徑
[root@iSCSI-server ~]# PS1='[u@h w]# '[root@iSCSI-server ~]# cd /var/log[root@iSCSI-server /var/log]# pwd/var/log[root@iSCSI-server /var/log]#登錄後複製
顯示當前工作目錄的完整路徑(w),這對於在深層目錄中工作時快速識別當前位置非常有用。
3、顯示時間和日期
[root@iSCSI-server ~]# PS1='[d]u@h w$ '[三 3月 20]root@iSCSI-server ~$ [root@iSCSI-server ~]# PS1='[t] [u@h w]# '[09:27:06] [root@iSCSI-server ~]# [09:27:11] [root@iSCSI-server ~]# 或者:[root@iSCSI-server ~]# PS1='(`date +"%H:%M:%S"`)[u@h W]$ '(09:43:59)[root@iSCSI-server ~]# (09:44:01)[root@iSCSI-server ~]#登錄後複製
4、彩色提示符
[root@iSCSI-server ~]# PS1="[e[33;1m]u[e[31;1m]@[e[33;1m]h [e[36;1m]w[e[34;1m]$ [e[0m]"root@iSCSI-server ~$ root@iSCSI-server ~$登錄後複製
顏色代碼格式:**[e[F;Bm]**
其中:F表示字體顏色,B表示背景顏色,具體如下:
字體代碼 | 背景代碼 | 顏色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 紅色 |
32 | 42 | 綠色 |
33 | 43 | 黃色 |
34 | 44 | 藍色 |
35 | 45 | 紫紅色 |
36 | 46 | 青藍色 |
37 | 47 | 白色 |
2、PS2變量
這是第二次提示符,用於交互式的shell中一條命令多行連接時的顯示信息。
當你的命令行輸入長度超過一行時,系統會使用PS2提示符來繼續輸入。
這使得用戶可以輕鬆地在多行中輸入長命令,提高命令行操作的效率。
- 一個非常長的命令可以通過在末尾加 使其分行顯示
- PS2多行命令的默認提示符,默認值是 >
#修改提示符由>變爲>+
[root@iSCSI-server ~]# echo >+ 11登錄後複製
3、PS3變量
這個環境變量用於控制select命令創建的菜單提示信息。
在Linux中,select命令允許用戶從一系列選項中選擇一個,而PS3變量則負責定義在選擇過程中顯示的提示符。
通過定製PS3,可以讓select命令的菜單提示更符合你的需求。
不使用PS3變量
[root@iSCSI-server ~]# cat myps3.sh#!/bin/bashecho "以下是一些選項,請選擇您想要的選項:"select option in "選項1" "選項2" "退出"; docase $option in"選項1")echo "您選擇了選項1"break;;"選項2")echo "您選擇了選項2"break;;"退出")echo "退出腳本"exit 0;;*)echo "無效的選擇,請重新選擇";;esacdone登錄後複製
運行sh腳本:
[root@iSCSI-server ~]# bash myps3.sh以下是一些選項,請選擇您想要的選項:1) 選項12) 選項23) 退出#? 1您選擇了選項1[root@iSCSI-server ~]#登錄後複製
使用PS3變量
在上面腳本中先定義PS3變量:
#!/bin/bash# 設置PS3變量以自定義select命令的提示# PS3="請選擇一個選項: "echo "以下是一些選項,請選擇您想要的選項:"select option in "選項1" "選項2" "退出"; docase $option in"選項1")echo "您選擇了選項1"break;;"選項2")echo "您選擇了選項2"break;;"退出")echo "退出腳本"exit 0;;*)echo "無效的選擇,請重新選擇";;esacdone登錄後複製
然後運行腳本:
[root@iSCSI-server ~]# bash myps3.sh以下是一些選項,請選擇您想要的選項:1) 選項12) 選項23) 退出請選擇一個選項: 1您選擇了選項1[root@iSCSI-server ~]#登錄後複製
4、PS4變量
set -x用來修改跟蹤輸出的前綴,這個變量很少用。
以上就是Linux下PS1、PS2、PS3、PS4變量詳解的詳細內容,更多請關注本站其它相關文章!