如何在 Linux 中自訂 Bash 提示符
BASH(Bourne-Again Shell)是大多數現代 Linux 發行版的預設 shell。厭倦了同樣乏味的 BASH 提示符嗎?讓我們來給它換個新面貌吧!在本指南中,我們將學習如何 自訂 BASH 提示符,並通過添加一些顏色和樣式來提升 bash 提示符的外觀。
當然,有很多插件/工具可以輕鬆且快速地完成這項工作。但在本指南中,我們將保持簡單。我們不會安裝任何額外的東西。
我們將進行一些基本的自訂,例如新增、修改元素、更改前景和背景顏色等,無需任何額外的工具或插件。
到最後,你的終端機將會完全按照你的想法呈現。我們一起開始自訂你的 BASH 提示字元吧!
在 Linux 中自訂 Bash 提示符
在 BASH 中,您可以透過更改 PS1 環境變數的值來自訂和更改 BASH 提示符,使其符合您的需求。
通常,BASH 提示符看起來會像下面這樣:
這裡,sk 是使用者名稱,而 ubuntuserver 是主機名稱。
現在,我們將通過插入一些稱為 跳脫序列 的反斜線轉義特殊字符來修改這個 Bash 提示符。
讓我給你看一些例子。
在對 ~/.bashrc 文件進行任何更改之前,備份該文件總是個好習慣。
$ cp ~/.bashrc ~/.bashrc.bak修改 Bash 提示字元中的 "username@hostname" 部分:
如我上面提到的,在大多數 Linux 發行版中,BASH 提示符預設包含「username@hostname」部分。你可以將這部分改成其他內容。
要做到這一點,請編輯 ~/.bashrc 文件:
$ vi ~/.bashrc在末尾添加以下一行:
PS1="ostechnix> "
將「ostechnix」替換為你選擇的任何字母或詞語。添加後,按下 ESC 鍵,然後輸入 :wq 以保存並退出檔案。
運行以下命令以更新更改:
$ source ~/.bashrc現在,BASH 提示符中將會有 "ostechnix" 這些字母。
這裡是另一個例子。我將把「username@hostname」部分替換為「Hello@welcome>」。
為此,請在您的 ~./bashrc 檔案中新增以下條目。
export PS1="Hello@welcome> "透過執行此命令來更新變更:
$ source ~./bashrc這是我在 Ubuntu 系統中更改預設值後的 BASH 提示符樣子。
僅顯示用戶名:
要僅顯示用戶名,只需在 ~/.bashrc 文件中添加以下行。
export PS1="\u "
在這裡,\u 是轉義序列。
以下是一些其他範例值,您可以將它們加入到 PS1 變數中以更改 BASH 提示字元。加入每個項目後,您必須執行 source ~/.bashrc 命令以使更改生效。
新增帶有主機名稱的使用者名稱:
export PS1="\u\h "你的提示現在看起來如下:
skubuntuserver 新增用戶名和 FQDN(完全合格的網域名稱):
export PS1="\u\H "在使用者名稱和主機名稱之間添加額外字元:
如果你想在使用者名稱和主機名稱之間放置任何字母,例如 @,請使用以下條目:
export PS1="\u@\h "bash 提示符將如下所示:
sk@ubuntuserver在末尾加上帶有 $ 符號的主機名的用戶名:
export PS1="\u@\h\\$ "在使用者名稱和主機名稱之間及之後添加特殊字符:
export PS1="\u@\h> "此條目將如下所示更改 BASH 提示符。
sk@ubuntuserver>同樣地,您可以添加其他特殊字符,例如冒號、分號、*、底線、空格等。
顯示使用者名稱、主機名稱、Shell 名稱:
export PS1="\u@\h>\s "顯示使用者名稱、主機名稱、Shell 以及 Bash 版本:
export PS1="\u@\h>\s\v "Bash 提示符輸出:
顯示使用者名稱、主機名稱以及目前目錄的路徑:
export PS1="\u@\h\w "如果當前目錄是 $HOME,你會看到波浪號 (~) 符號。
在 BASH 提示符顯示日期:
要在 BASH 提示符中顯示日期以及您的使用者名稱和主機名稱,請在 ~/.bashrc 檔案中添加以下條目。
export PS1="\u@\h>\d "BASH 提示符中的 12 小時制日期和時間:
export PS1="\u@\h>\d\@ "日期及 12 小時制時間 hh:mm:ss 格式:
export PS1="\u@\h>\d\T "日期和24小時制時間:
export PS1="\u@\h>\d\A "日期及24小時 hh:mm:ss 格式:
export PS1="\u@\h>\d\t "這些是一些常見的跳脫序列,用來更改 Bash 提示符的格式。還有一些其他的跳脫序列可用。你可以在 bash 手冊頁 的 「PROMPTING」 節中查看它們全部。
而且,您可以隨時使用指令查看當前提示設定:
$ echo $PS1在 Bash 提示符中隱藏「username@hostname」部分:
我不想改變任何東西。我可以完全隱藏它嗎?可以,你可以!
如果你是博客作者或科技作家,你可能需要在你的网站和博客上上傳 Linux 終端機的截圖。你的使用者名稱/主機名稱可能非常酷,所以你可能不希望其他人複製並用作自己的名稱。另一方面,你的使用者名稱/主機名稱可能太奇怪、太差,或者包含冒犯性字符,因此你不希望其他人看到它們。在這種情況下,這個小技巧可能會幫助你在終端機中隱藏或修改“username@hostname”部分。
如果你不想讓用戶查看你的用戶名/主機名部分,只需按照以下步驟操作。
編輯你的 ~/.bashrc 文件:
$ vi ~/.bashrc在結尾添加以下內容:
PS1="\W> "輸入 :wq 以儲存並關閉檔案。
然後,執行以下命令以使更改生效。
$ source ~/.bashrc就是這樣。現在,檢查你的終端機。你不會看到 username@localhost 部分。你只會看到 ~> 符號。
警告: 在某些情況下這是一個不好的做法。例如,如果其他像 zsh 這樣的 shell 繼承了你當前的 shell,可能會引起一些問題。只有在使用單一 shell 時,才用它來隱藏或修改你的 username@localhost 部分。除了在終端中隱藏 username@localhost 部分,這個技巧基本上沒什麼用處,還可能帶來問題。
想知道另一個最簡單的方法而不弄亂 ~/.bashrc 文件嗎?只需創建另一個用戶帳號,例如 user@example 或 admin@demo。使用這些帳號來製作指南、影片並上傳到你的博客或線上。現在,你就不用擔心你的身份問題了。
給 BASH 提示字上色
到目前為止,我們所看到的是我們只是更改和添加了一些元素到 BASH 提示符。在本節中,我們將向 BASH 提示符的元素添加顏色。
你可以透過在 ~/.bashrc 檔案中添加一些程式碼,來增強 BASH 提示符元素的前景色(文字)和背景色。
例如,要將所有文字的前景顏色改為紅色,請添加以下程式碼:
export PS1="\u@\[\e[31m\]\h\[\e[m\] "添加後,使用以下命令更新更改:
現在,你的 BASH 提示符將如下所示:
同樣地,要更改背景顏色,請添加此程式碼:
export PS1="\u@\[\e[31;46m\]\h\[\e[m\] "添加表情符號
誰不喜歡表情符號呢?我們可以透過將以下程式碼放入 ~/.bashrc 檔案來添加表情符號。
PS1="\W ? >"請注意,某些終端可能無法正確顯示表情符號,這取決於所使用的字體。如果沒有合適的字體,您可能會看到亂碼或單色表情符號。
線上 Bash 提示符自訂工具
我覺得自訂 BASH 提示符有點困難。有沒有其他簡單的方法?有的!
如果你是新手,撰寫和添加 PS1 值會感到困惑並且有點困難。同樣地,你會發現排列元素以得到你想要的結果有點困難。別擔心!有一個線上 Bash PS1 生成器可用,它可以讓你輕鬆生成不同的 PS1 值,根據你的需求。
前往以下網站:
只需選擇你想在 BASH 提示符中使用的元素。將顏色添加到這些元素,並以你喜歡的順序重新排列。即時預覽輸出,最後將生成的程式碼複製/粘貼到你的 ~/.bashrc 文件中。就是這麼簡單!本指南中提到的大多數範例都取自此網站。如前所述,別忘了在進行任何更改前,備份你當前的 ~/.bashrc 文件。
建議閱讀:
- 如何更改 Linux 中的 Sudo 提示字元
將 bashrc 檔案還原為預設設定
我把我的 .bashrc 文件搞砸了?如何將它還原為預設設定?是的,這是可能的!
如我先前提到的,強烈建議在進行任何修改之前,備份 ~./bashrc(或任何重要的配置檔案)。這樣,如果出現問題,你可以將其恢復到之前可正常運作的版本。
然而,如果你一開始忘記備份 ~/.bashrc 檔案,你仍然可以按照以下指南將其恢復到預設設定。
- 如何將 .bashrc 文件還原為預設設定
上述指南是基於 Ubuntu,但它也可能適用於其他 Linux 發行版。請讓我們明確說明,上述指南將幫助您將 ~/.bashrc 重置為新安裝時的默認設置。之後所做的任何更改都將丟失。
資源:
- Bash 參考手冊







