個性化PS1變量

##PS1是個啥? 鳥哥的書中關於PS1這麼說的:linux

這是 PS1 (數字的 1 不是英文字母),這個東西就是咱們的『命令提示字符』喔! 當咱們每次按下 [Enter] 按鍵去運行某個命令後,最後要再次出現提示字符時, 就會主動去讀取這個變量值了。上頭 PS1 內顯示的是一些特殊符號,這些特殊符號能夠顯示不一樣的信息, 每一個 distributions 的 bash 默認的 PS1 變量內容可能有些許的差別,沒關係,『習慣你本身的習慣』就行了。 你能夠用 man bash (注3)去查詢一下 PS1 的相關說明,以理解底下的一些符號意義。shell

總結來講,這個環境變量主要控制這命令提示符(也就是終端裏的wgjak47@wgjak47-M410:~$)的樣式。 ubuntu下這個變量值默認爲\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 而其中{debian_chroot:+($debian_chroot)} 這句的意思是說,若是在/etc下有debian_chroot文件,則命令提示符前面就附加上debian_chroot文件的內容。關於:+這個語法的能夠參考:[linux bash shell之變量替換][http://my.oschina.net/u/1242185/blog/357330]ubuntu

根據man page,PS1的經常使用的變量值有如下項:bash

\a 一個 ASCII 響鈴字符 (010)
\d 日期,格式是 "星期 月份 日" (例如,"Tue May 26")
\D{format}
format 被傳遞給 strftime(3),結果被插入到提示字符串中; 空的 format 將使用語言環境特定的時間格式。花括號是必需的
\e 一個 ASCII 轉義字符 (033)
\h 主機名,第一個 `.' 以前的部分
\H 主機名
\j shell 當前管理的做業數量
\l shell 的終端設備名的基本部分
\n 新行符
\r 回車
\s shell 的名稱, $0 的基本部分 (最後一個斜槓後面的部分)
\t 當前時間,採用 24小時制的 HH:MM:SS 格式
\T 當前時間,採用 12小時制的 HH:MM:SS 格式
@ 當前時間,採用 12小時制上午/下午 (am/pm) 格式
\A 當前時間,採用 24小時制上午/下午格式
\u 當前用戶的用戶名 the username of the current user
\v bash 的版本 (例如,2.00)
\V bash 的發行編號,版本號加補丁級別 (例如,2.00.0)
\w 當前工做目錄
\W 當前工做目錄的基本部分
! 此命令的歷史編號
# 此命令的命令編號
$ 若是有效 UID 是 0,就是 #, 其餘狀況下是 $
\nnn 對應八進制數 nnn 的字符
\ 一個反斜槓
[ 一個不可打印字符序列的開始,能夠用於在提示符中嵌入終端控制序列
] 一個不可打印字符序列的結束
經過設置PS1變量能夠獲得你但願的提示符樣式。字體

更進一步:彩色化 這個其實沒什麼太大用處,只是讓提示符更好看一些。 PS1環境變量支持如下色彩和特效:.net

顏色表code

前景 背景 顏色

30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫色
36 46 青色
37 47 白色orm

代碼 意義

0 OFF
1 高亮顯示
4 underline
5 閃爍
7 反白顯示
8 不可見blog

使用方法:字符串

在PS1中配置字符序列顏色的格式爲:

[\e[F;Bm]

基本上是夾在 "\e["(轉義開方括號)和 "m" 之間數字值。假如指定一個以上的數字代碼,則用分號將他們分開。

其中 F 爲字體顏色,編號30~37; B 爲背景色,編號40~47。

可經過 \e[0m 關閉顏色輸出;特別的,當B爲1時,將顯示加亮加粗的文字,請看下面的顏色表和代碼表。

例: export PS1="\[\e[32;1m\]\u@\[\e[32;1m\]\H\$ \[\e[0m\]"

相關文章
相關標籤/搜索