前言
當我們ssh登錄的時候經常可以看到一些主機名,當前用戶名的信息,那些是什么東西?
其實就是系統提示符,它是用系統變量PS1來定義的。
系統變量PS1默認值
[root@VM_0_15_centos ~]# echo $PS1
[\u@h W]$
所以你一登錄,就能看到下面這樣的格式
[root@VM_0_15_centos ~]#
那這些英文單詞的含義是啥?
\u :當前用戶的賬號名稱
h :僅取主機的第一個名字
W :利用basename取得工作目錄名稱,所以只會列出最后一個目錄
$ :提示字符,如果是root時,提示符為:# ,普通用戶則為:$
那么它還有哪些其他參數
d :代表日期,格式為weekday month date,例如:"Mon Aug 1"
H :完整的主機名稱
t :顯示時間為24小時格式,如:HH:MM:SS
T :顯示時間為12小時格式
A :顯示時間為24小時格式:HH:MM
v :BASH的版本信息
w :完整的工作目錄名稱。家目錄會以 ~代替
# :下達的第幾個命令
我的電腦個性化設置
┌(jaysonzwj@jaysonzwjdemacBook-Pro)─(?)─(10:30 下午 一 6 08)
└─(~)─(40 files, 30296b)─> echo $PS1
n[33[1;37m]342224214([33[01;34m]\u@h[33[1;37m])342224200($(if [[ $? == 0 ]]; then echo "[33[01;32m]342234223"; else echo "[33[01;31m]342234227"; fi)[33[1;37m])342224200([33[1;34m]@ d[33[1;37m])[33[1;37m]n342224224342224200([33[1;32m]w[33[1;37m])342224200([33[1;32m]$(ls -1 | wc -l | sed 's: ::g') files, $(ls -sh | head -n1 | sed 's/total //')b[33[1;37m])342224200> [33[0m]
這里沒顯示顏色,我截圖看看效果:
PS1實例
怎么個性化
- export 一下,寫入用戶環境變量文件
$ vim ~/.bash_profile
export PS1="n[33[1;37m]342224214($(if [[ ${EUID} == 0 ]]; then echo '[33[01;31m]h'; else echo '[33[01;34m]\u@h'; fi)[33[1;37m])342224200($(if [[ $? == 0 ]]; then echo "[33[01;32m]342234223"; else echo "[33[01;31m]342234227"; fi)[33[1;37m])342224200([33[1;34m]@ d[33[1;37m])[33[1;37m]n342224224342224200([33[1;32m]w[33[1;37m])342224200([33[1;32m]$(ls -1 | wc -l | sed 's: ::g') files, $(ls -sh | head -n1 | sed 's/total //')b[33[1;37m])342224200> [33[0m]"
- 生效環境變量
$ source ~/.bash_profile
是不是豐富多彩,你也可以玩轉PS1,增加趣味性。