PS1(是數字1而不是字母l),每個版本bash的PS1變量內的特殊符號可能有些小的差異,你可以先man bash 一下。下面是FC4環境下默認的特殊符號所代表的意義:
\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 :當前用戶的賬號名稱
\v :BASH的版本信息
\w :完整的工作目錄名稱。家目錄會以 ~代替
\W :利用basename取得工作目錄名稱,所以只會列出最後一個目錄
\# :下達的第幾個命令
\$ :提示字符,如果是root時,提示符為:# ,普通用戶則為:$
默認的PS1內容為: PS1='[\u@\h \W]\$ ' ,所以默認的提示符就是: [root@linux ~]#。
如要更改在shell提示符下輸入:
復制代碼代碼如下:
[root@web1177 ~]# PS1='[\u@\h \w\#]\$ '
這樣就可以知道你現在輸入的是第幾個命令。
下面我們將討論下在SHELL變量賦值,先看鳥哥書上的變量賦值:
1. 變量與變量內容以等號( = )來連結;
2. 等號兩邊不能直接接空格符;
3. 變量名稱只能是英文字母與數字,但是數字不能是開頭字符;
4. 若在賦值中有空格符可以使用雙引號或單引號來將變量內容結合起來,但須要特別留意, 雙引號內的特殊字符可以保有變量特性,但是單引號內的特殊字符則僅為一般字符;
5. 必要時需要以反斜槓(\)來將特殊符號 ( 如 Enter, $, \, 空格符, ' 等 ) 變成一般符號;
6. 在一串指令中,還需要藉由其它的指令提供的信息,可以使用引用字符(` command` );(特別特別注意,那個 ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號!)
7. 若該變量為擴增變量內容時,則需以雙引號及 $變量名稱 如: "$PATH":/home繼續累加內容;
8. 若該變量需要在其它子程序執行,則需要以 export 來使變量變成環境變量, 如export PATH
9. 通常大寫字符為系統預設變量,自行設定變量可以使用小寫字符,方便判斷 ( 純粹依照使用者興趣與嗜好 ) ;
10. 取消變量的方法為: unset 變量名稱。
那麼在PS1的設置中,因為中間有空格,所以我們需要用單雙引號,沒有與需要用到命令的結果,所以不需要引用。而我們選擇單引號是為了讓PS1直接接受純字符,而不是在SHELL中有特殊意義的字符,或者以$開頭的變量,所以我們用單引號即可,當讓也可以用雙引號。