在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 >+ 1 1 3、PS3變數 #這個環境變數用來控制select指令所建立的選單提示資訊。 在Linux中,select指令允許使用者從一系列選項中選擇一個,而PS3變數則負責定義在選擇過程中顯示的提示符。 透過自訂PS3,可以讓select#指令的選單提示更符合你的需求。 不使用PS3變數 [root@iSCSI-server ~]# cat myps3.sh #!/bin/bash echo "以下是一些选项,请选择您想要的选项:" select option in "选项1" "选项2" "退出"; do case $option in "选项1") echo "您选择了选项1" break ;; "选项2") echo "您选择了选项2" break ;; "退出") echo "退出脚本" exit 0 ;; *) echo "无效的选择,请重新选择" ;; esac done 執行sh腳本: [root@iSCSI-server ~]# bash myps3.sh 以下是一些选项,请选择您想要的选项: 1) 选项1 2) 选项2 3) 退出 #? 1 您选择了选项1 [root@iSCSI-server ~]# 使用PS3變數 在上面腳本中先定義PS3變數: #!/bin/bash # 设置PS3变量以自定义select命令的提示 # PS3="请选择一个选项: " echo "以下是一些选项,请选择您想要的选项:" select option in "选项1" "选项2" "退出"; do case $option in "选项1") echo "您选择了选项1" break ;; "选项2") echo "您选择了选项2" break ;; "退出") echo "退出脚本" exit 0 ;; *) echo "无效的选择,请重新选择" ;; esac done 然後執行腳本: [root@iSCSI-server ~]# bash myps3.sh 以下是一些选项,请选择您想要的选项: 1) 选项1 2) 选项2 3) 退出 请选择一个选项: 1 您选择了选项1 [root@iSCSI-server ~]# 4、PS4變數 #set -x用來修改追蹤輸出的前綴,這個變數很少用。