Linux中國

在 Linux 終端中自定義 Bash 配色和提示內容

如果你一直都在考慮,或者只是一時好奇,如何定製可以使 Bash 更好用。不管怎樣,請繼續讀下去 —— 本文將告訴你怎麼做。

PS1 Bash 環境變數

命令提示符和終端外觀是通過一個叫 PS1 的變數來進行管理的。根據 Bash 手冊頁說明,PS1 代表了 shell 準備好讀取命令時顯示的主體的提示字元串。

PS1 所允許的內容包括一些反斜杠轉義的特殊字元,可以查看手冊頁中 PRMPTING 部分的內容來了解它們的含義。

為了演示,讓我們先來顯示下我們系統中 PS1 的當前內容吧(這或許看上去和你們的有那麼點不同):

$ echo $PS1
[u@h W]$

現在,讓我們來了解一下怎樣自定義 PS1 吧,以滿足我們各自的需求。

自定義 PS1 格式

根據手冊頁 PROMPTING 章節的描述,下面對各個特殊字元的含義作如下說明:

  • u: 顯示當前用戶的 用戶名
  • h: 完全限定域名 Fully-Qualified Domain Name (FQDN)中第一個點(.)之前的主機名
  • W: 當前工作目錄的基本名,如果是位於 $HOME (家目錄)通常使用波浪符號簡化表示(~)。
  • $: 如果當前用戶是 root,顯示為 #,否則為 $

例如,如果我們想要顯示當前命令的歷史數量,可以考慮添加 !;如果我們想要顯示 FQDN 全稱而不是短伺服器名,那麼可以考慮添加 H

在下面的例子中,我們同時將這兩個特殊字元引入我們當前的環境中,命令如下:

PS1="[u@H W !]$"

當按下回車鍵後,你將會看到提示內容會變成下面這樣。可以對比執行命令修改前和修改後的提示內容:

Customize Linux Terminal Prompt PS1

自定義 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]$ "

Change Linux Terminal Color Prompt PS1

修改 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

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國