在 Linux 終端中自定義 Bash 配色和提示內容
如果你一直都在考慮,或者只是一時好奇,如何定製可以使 Bash 更好用。不管怎樣,請繼續讀下去 —— 本文將告訴你怎麼做。
PS1 Bash 環境變數
命令提示符和終端外觀是通過一個叫 PS1
的變數來進行管理的。根據 Bash 手冊頁說明,PS1 代表了 shell 準備好讀取命令時顯示的主體的提示字元串。
PS1 所允許的內容包括一些反斜杠轉義的特殊字元,可以查看手冊頁中 PRMPTING 部分的內容來了解它們的含義。
為了演示,讓我們先來顯示下我們系統中 PS1
的當前內容吧(這或許看上去和你們的有那麼點不同):
$ echo $PS1
[u@h W]$
現在,讓我們來了解一下怎樣自定義 PS1 吧,以滿足我們各自的需求。
自定義 PS1 格式
根據手冊頁 PROMPTING 章節的描述,下面對各個特殊字元的含義作如下說明:
u:
顯示當前用戶的 用戶名。h:
完全限定域名 (FQDN)中第一個點(.
)之前的主機名。W:
當前工作目錄的基本名,如果是位於$HOME
(家目錄)通常使用波浪符號簡化表示(~
)。$:
如果當前用戶是 root,顯示為#
,否則為$
。
例如,如果我們想要顯示當前命令的歷史數量,可以考慮添加 !
;如果我們想要顯示 FQDN 全稱而不是短伺服器名,那麼可以考慮添加 H
。
在下面的例子中,我們同時將這兩個特殊字元引入我們當前的環境中,命令如下:
PS1="[u@H W !]$"
當按下回車鍵後,你將會看到提示內容會變成下面這樣。可以對比執行命令修改前和修改後的提示內容:
自定義 Linux 終端提示符 PS1
現在,讓我們再深入一點,修改命令提示符中的用戶名和主機名 —— 同時修改文本和環境背景。
實際上,我們可以對提示符進行 3 個方面的自定義:
文本格式 | 前景色(文本) | 背景色 |
---|---|---|
0: 常規文本 | 30: 黑色 | 40: 黑色 |
1: 加粗文本 | 31: 紅色 | 41: 紅色 |
4: 下劃線文本 | 32: 綠色 | 42: 綠色 |
33: 黃色 | 43: 黃色 | |
34: 藍色 | 44: 藍色 | |
35: 紫色 | 45: 紫色 | |
36: 青色 | 46: 青色 | |
37: 白色 | 47: 白色 |
我們將在開頭使用 e
特殊字元,跟著顏色序列,在結尾使用 m
來表示結束。
在該序列中,三個值(背景,格式和前景)由分號分隔(如果不賦值,則假定為默認值)。
建議閱讀: 在 Linux 中學習 Bash shell 腳本。
此外,由於值的範圍不同,指定背景,格式,或者前景的先後順序沒有關係。
例如,下面的 PS1
將導致提示符為黃色帶下劃線文本,並且背景為紅色:
PS1="e[41;4;33m[u@h W]$ "
修改 Linux 終端提示符配色 PS1
雖然它看起來那麼漂亮,但是這個自定義將只會持續到當前用戶會話結束。如果你關閉終端,或者退出本次會話,所有修改都會丟失。
為了讓修改永久生效,你必須將下面這行添加到 ~/.bashrc
或者 ~/.bash_profile
,這取決於你的版本。
PS1="e[41;4;33m[u@h W]$ "
盡情去玩耍吧,你可以嘗試任何色彩,直到找出最適合你的。
(LCTT 譯註:原文的這種設置,不但會影響到提示符,也會影響到輸入和顯示的其它文字,因此應該在 PS1 設置中使用 e[0m
來結束顏色設置。如:PS1="e[41;4;33m[u@h W]$e[0m "
)
小結
在本文中,我們講述了如何來自定義 Bash 提示符的配色和提示內容。如果你對本文還有什麼問題或者建議,請在下面評論框中寫下來吧。我們期待你們的聲音。
作者簡介:
Aaron Kili 是一位 Linux 及 F.O.S.S 的狂熱愛好者,一位未來的 Linux 系統管理員,web 開發者,而當前是 TechMint 的原創作者,他熱愛計算機工作,並且信奉知識分享。
via: http://www.tecmint.com/customize-bash-colors-terminal-prompt-linux/
作者:Aaron Kili 譯者:GOLinux 校對:jasminepeng
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive