通過設定環境變數ps1、ps2、ps3以及ps4來自定義使用者命令列的字元顯示。如果要長期永久性修改提示符,可以將修改提示符的命令新增到ps1$home/.profile
或$home/.bash_profile
檔案中
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的顯示樣式,但是當退出重啟登入進入...