Linux環境變量中PS1是很重要的環境變量:linux
PS(Prompt Sign): 是指命令提示符,例如在Fedora 12的終端下:[liutao@liutao ~]$ ,在設定PS1環境變量時,咱們須要用到預設的一些特殊符號來設定PS1,下面是鳥哥書上關於BASH的特殊變量。spa
o \d :表明日期,格式爲 Weekday Month Date,例如 "Mon Aug 1" .net
o \H :完整的主機名稱。舉例來講,鳥哥的練習機 linux.dmtsai.tw ,那麼這個主機名稱就是 linux.dmtsai.tw ci
o \h :僅取主機名稱的第一個名字。以上述來說,就是 linux 而已, .dmtsai.tw 被省略。 get
o \t :顯示時間,爲 24 小時格式,如: HH:MM:SS ast
o \T :顯示時間,12 小時的時間格式! 變量
o \A :顯示時間,24 小時格式, HH:MM 終端
o \u :目前使用者的帳號名稱; 引用
o \v :BASH 的版本信息; 程序
o \w :完整的工做目錄名稱。家目錄會以 ~ 取代;
o \W :利用 basename 取得工做目錄名稱,因此僅會列出最後一個目錄名。
o \# :下達的第幾個指令。
o \$ :提示字符,若是是 root 時,提示字符爲 # ,不然就是 $ 。
Fedora 12下,PS1 內容爲:
鳥哥書上的例子爲: [root@linux /home/dmtsai 16:50 #12]#
PS1='[\u@\h \w \A #\#]\$ '
在Fedora 12上的實現:
在上例中咱們看出了,PS1在賦值的時用了單引號(‘),下面咱們將討論下在SHELL變量賦值,先看鳥哥書上的變量賦值:
1. 變量與變量內容以等號( = )來連結;
2. 等號兩邊不能直接接空格符;
3. 變量名稱只能是英文字母與數字,可是數字不能是開頭字符;
4. 若在賦值中有空格符可使用雙引號或單引號來將變量內容結合起來,但需要特別留意, 雙引號內的特殊字符能夠保有變量特性,可是單引號內的特殊字符則僅爲通常字符;
5. 必要時須要以反斜槓(\)來將特殊符號 ( 如 Enter, $, \, 空格符, ' 等 ) 變成通常符號;
6. 在一串指令中,還須要藉由其它的指令提供的信息,可使用 引用字符(` command` );(特別特別注意,那個 ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號!)
7. 若該變量爲擴增變量內容時,則需以雙引號及 $變量名稱 如: "$PATH":/home繼續累加內容;
8. 若該變量須要在其它子程序執行,則須要以 export 來使變量變成環境變量, 如export PATH
9. 一般大寫字符爲系統預設變量,自行設定變量可使用小寫字符,方便判斷 ( 純粹依照使用者興趣與嗜好 ) ;
10. 取消變量的方法爲: unset 變量名稱。
那麼在PS1的設置中,由於中間有空格,因此咱們須要用單雙引號,沒有與須要用到命令的結果,因此不須要引用。而咱們選擇單引號是爲了讓PS1直接接受純字符,而不是在SHELL中有特殊意義的字符,或者以$開頭的變量,因此咱們用單引號便可,當讓也能夠用雙引號。