linux下PS1 PS2 PS3 PS4最全詳解

2021-08-15 10:17:29 字數 2799 閱讀 4427

通過設定環境變數ps1、ps2、ps3以及ps4來自定義使用者命令列的字元顯示。如果要長期永久性修改提示符,可以將修改提示符的命令新增到$home/.profile$home/.bash_profile檔案中

ps1

ps1是主提示符變數,也是預設提示符變數。預設值[\u@\h \w]\$,顯示使用者主機名稱工作目錄。

基本上通過設定ps1來定義命令列提示字元即可,最常用的需求就是顯示登入的使用者名稱、主目錄、主機名等等。

預設的是:

[root@centos7 ~

]# echo $ps1

[\u@\h\w]

\$

效果:

[root@centos7 ~]#ps1="\[\e[1;35m\][\u@\h \w]\\$\[\e[0m\]"
效果:

2. 在ps1值之後加乙個空格。從個人角度來講,使用這個空格可以增加一定的可讀性

3. 把定義好的變數寫成指令碼建議放到/etc/profile.d/

舉例:

[root@centos7 ~]#vim /etc/profile.d/env.sh 

ps1="\[\e[1;36m\][\u@\h \w]\\$\[\e[0m\]"

ps1變數可以使用的引數值有如下:引數

描述/d

代表日期,格式為weekday month date,例如:」mon aug 1」

/h完整的主機名稱。例如:我的機器名稱為:fc4.linux,則這個名稱就是fc4.linux

/h僅取主機的第乙個名字,如上例,則為fc4,.linux則被省略

/t顯示時間為24小時格式,如:hh:mm:ss

/t顯示時間為12小時格式

/a顯示時間為24小時格式:hh:mm

/u當前使用者的賬號名稱

/vbash的版本資訊

/w完整的工作目錄名稱。家目錄會以 ~代替

/w利用basename取得工作目錄名稱,所以只會列出最後乙個目錄

/#下達的第幾個命令

/$提示字元,如果是root時,提示符為:#,普通使用者則為:$

/[字元」[「

/]字元」]」

/!命令列動態統計歷史命令次數

ps2

乙個非常長的命令可以通過在末尾加\使其分行顯示

ps2多行命令的預設提示符,預設值是>

ps2一般使用於命令列裡較長命令的換行提示資訊,比如:

[root@centos7 ~]#echo \           

> #預設的

[root@centos7 ~]# export ps2=">+ " # 修改

[root@centos7 ~]#echo \

>+ #修改後

當用\使長命令分行顯示,非常易讀。當然我也有的人不喜歡分行顯示命令

shell指令碼中使用select時的提示符

[root@centos6 ~]#cat ps3.sh

select i in mon tue wed exit

docase

$iin

mon) echo

"monday";;

tue) echo

"tuesday";;

wed) echo

"wednesday";;

exit) exit;;

esac

done

[root@centos6 ~]#bash ps3.sh

1) mon

2) tue

3) wed

4) exit

#? 1 [注: 提示符是 #?]

monday

#? 2

tuesday

#? 4

修改ps3後效果

[root@centos6 ~]#cat ps3.sh  

ps3="select a day (1-4): "

select i in mon tue wed exit

docase $i in

mon) echo "monday";;

tue) echo "tuesday";;

wed) echo "wednesday";;

exit) exit;;

esac

done

[root@centos6 ~]#bash ps3.sh

1) mon

2) tue

3) wed

4) exit

select a day (1-4): 1 [注: 提示符是 select a day (1-4):]

monday

select a day (1-4): 2

tuesday

select a day (1-4): 4

ps4

ps4-set -x用來修改跟蹤輸出的字首(很少很少用到 隨意就不解釋了)

Linux下PS1 PS2 PS3 PS4使用詳解

shell除錯可以設定ps4 echo ps4 原貼 1 ps1 預設提示符 如下所示,可以通過修改linux下的預設提示符,使其更加實用。在下面的例子中,預設的ps1的值是 s v 顯示出了shell的名稱的版本。我們通過修改,可以使其顯示使用者名稱 主機名和當前工作目錄。bash 3.2 exp...

Linux下PS1 PS2 PS3 PS4使用詳解

shell除錯可以設定ps4 echo ps4 原貼 1 ps1 預設提示符 如下所示,可以通過修改linux下的預設提示符,使其更加實用。在下面的例子中,預設的ps1的值是 s v 顯示出了shell的名稱的版本。我們通過修改,可以使其顯示使用者名稱 主機名和當前工作目錄。bash 3.2 exp...

linux環境變數設定 PS1,PS2

ps1 就是使用者平時的提示符。ps2 第一行沒輸完,等待第二行輸入的提示符。linux系統提示符是用系統變數ps1來定義的。一般系統預設的形式是 username host 工作目錄 用echo ps1可以得到ps1的值,即ps1 u h w 登入後可以更改ps1的顯示樣式,但是當退出重啟登入進入...