提示:
在Linux系統中,環境變數分為兩種。一種是使用者自定義的環境變數,另一種是系統自帶的環境變數。
而在系統自帶的環境變數中,PATH環境變數、PS1環境變數、LANG語系變數需要進行說明一下。
本篇文章主要說明系統自帶的環境變數中的PS1環境變數。
1、PS1變數的作用
PS1變數:命令提示符設定。也就是[root@localhost ~]#
內容的設定。
PS1是一個很有意思的變數,是用來定義命令列提示符的,可以按照我們自己的需求來定義自己喜歡的提示符。
2、PS1變數的檢視
- 直接檢視PS1變數,如下:
[root@localhost ~]# echo $PS1 [\u@\h \W]\$
- 通過
set
命令檢視,如下圖:
SP2變數是定義換行之後的命令提示符的顯示。
2、PS1可以支援的選項
我們先解釋一下系統命令提示符的組成[root@localhost ~]#
,我們之前說過root
位置代表當前登陸的使用者,localhost
位置代表當前主機名的簡寫主機名,~
位置表示當前所在目錄,第四列就是命令提示符。
而通過PS1變數我們得知上面的顯示組成是如下選項:[\u@\h \W]\$
。
所以下面我們羅列出PS1支援的選項:
\d
:顯示日期,格式為星期 月 日
。\H
:顯示完整的主機名。如預設主機名localhost.localdomain
。\h
:顯示簡寫主機名。如預設簡寫主機名localhost
。\t
:顯示24小時制時間,格式為HH:MM:SS
。\T
:顯示12小時制時間,格式為HH:MM:SS
。\A
:顯示24小時制時間,格式為HH:MM
。\@
:顯示12小時制時間,格式為HH:MM am/pm
。\u
:顯示當前使用者名稱。\v
:顯示Bash的版本資訊。\w
:顯示當前所在目錄的完整名稱。\W(大寫)
:顯示當前所在目錄的最後一個目錄。\#
:執行的第幾個命令。\$
:提示符。如果是root
使用者會顯示提示符為#
,如果是普通使用者會顯示提示符為$
。
注意:
在PS1變數中,如果是可以解釋的符號,如
\u
、\h
等,則顯示這個符號的作用。如果是不能解釋的符號,如@
或“空格”,則原符號輸出。
總結:
# 預設的提示符顯示
# [使用者名稱@簡寫主機名 所在目錄最後一級] 提示符
[root@localhost ~ ] # echo $PS1
[\u@\h \W]\$
3、PS1環境變數的配置
其實我們在使用Linux系統的時候,還是比較習慣的預設的系統命令提示符的配置,也就是PS1變數的預設配置,一般我們是不做任何修改的,因為我們習慣了,修改了之後你會不舒服。如有需要,則看一下。
設定PS1環境變數,如下:
#修改提示符為
#[使用者名稱@當前時間 當前所在完整目錄] 提示符
[root@localhost ~ ] # PS1='[\u@\t \w]\$ (空格)'
# (空格)是因為習慣,看著舒服,不是必須。
#切換下當前所在目錄
#因為家目錄是看不出來區別的
[root@04:46:40 ~ ] # cd /usr/local/src/
[root@04:47:29 /usr/local/src] #
#提示符按照我們的設計發生了變化
這裡一定要注意,PS1變數的值要用單引號包含,因為需要把PS1變數的選項中的特殊符號轉變成普通的字串(主要是$
符號),否則設定不生效。系統預設也是單引號設定的,你照著寫就可以了。
擴充套件:再舉個例子。
#可以同時給SP1設定更多的選項
[root@localhost ~ ] # PS1='[\u@\@ \h \# \W]\$ '
[root@04:53 上午 localhost 31 src] #
#\@:顯示12小時制時間,格式為HH:MM am/pm。
#\#:會顯示執行了多少個命令。
PS1變數可以自由定製,不過說實話,預設的提示符已經使用習慣了,如果換一個還是非常彆扭的,推薦預設的提示符就很好。
4、總結
我們上邊在命令列中直接定義PS1變數的值是臨時生效的,一旦重啟電腦就會消失,如果需要永久生效,需要寫入到對應的配置檔案中的。
對應的配置檔案為/etc/bashrc
,該檔案也是一個環境變數的配置檔案。
如下圖:
注意看圖中SP1變數的配置,是加雙引號的,需要在\$
之前再加上一個\
,才能正常顯示\$
。