當前位置:
首頁 > 知識 > 在 Linux 上自定義 bash 命令提示符

在 Linux 上自定義 bash 命令提示符

在 Linux 上自定義 bash 命令提示符

打開今日頭條,查看更多精彩圖片

編譯自: https://www.ostechnix.com/hide-modify-usernamelocalhost-part-terminal/

作者: Sk

譯者: Hank Chow

眾所周知,bash(the Bourne-Again Shell)是目前絕大多數 Linux 發行版使用的默認 shell。本文將會介紹如何通過添加顏色和樣式來自定義 bash 命令提示符的顯示。儘管很多插件或工具都可以很輕易地滿足這一需求,但我們也可以不使用插件和工具,自己手動自定義一些基本的顯示方式,例如添加或者修改某些元素、更改前景色、更改背景色等等。

在 Linux 中自定義 bash 命令提示符

在 bash 中,我們可以通過更改 $PS1 環境變數的值來自定義 bash 命令提示符。

一般情況下,bash 命令提示符會是以下這樣的形式:


在 Linux 上自定義 bash 命令提示符


在上圖這種默認顯示形式當中,「sk」 是我的用戶名,而 「ubuntuserver」 是我的主機名。

只要插入一些以反斜杠開頭的特殊轉義字元串,就可以按照你的喜好修改命令提示符了。下面我來舉幾個例子。

在開始之前,我強烈建議你預先備份 ~/.bashrc 文件。


$ cp ~/.bashrc ~/.bashrc.bak

更改 bash 命令提示符中的 username@hostname 部分

如上所示,bash 命令提示符一般都帶有 「username@hostname」 部分,這個部分是可以修改的。

只需要編輯 ~/.bashrc 文件:


$ vi ~/.bashrc

在文件的最後添加一行:


PS1="ostechnix> "

將上面的 「ostechnix」 替換為任意一個你想使用的單詞,然後按 ESC 並輸入 :wq 保存、退出文件。

執行以下命令使剛才的修改生效:


$ source ~/.bashrc

你就可以看見 bash 命令提示符中出現剛才添加的 「ostechnix」 了。


在 Linux 上自定義 bash 命令提示符


再來看看另一個例子,比如將 「username@hostname」 替換為 「Hello@welcome>」。

同樣是像剛才那樣修改 ~/.bashrc 文件。


export PS1="Hello@welcome> "

然後執行 source ~/.bashrc 讓修改結果立即生效。

以下是我在 Ubuntu 18.04 LTS 上修改後的效果。


在 Linux 上自定義 bash 命令提示符



僅顯示用戶名

如果需要僅顯示用戶名,只需要在 ~/.bashrc 文件中加入以下這一行。

export PS1="u "

這裡的 u 就是一個轉義字元串。

下面提供了一些可以添加到 $PS1 環境變數中的用以改變 bash 命令提示符樣式的轉義字元串。每次修改之後,都需要執行 source ~/.bashrc 命令才能立即生效。


顯示用戶名和主機名

export PS1="uh "

命令提示符會這樣顯示:


skubuntuserver

顯示用戶名和完全限定域名

export PS1="uH "

在用戶名和主機名之間顯示其它字元

如果你還需要在用戶名和主機名之間顯示其它字元(例如 @),可以使用以下格式:


export PS1="u@h "

命令提示符會這樣顯示:

sk@ubuntuserver

顯示用戶名、主機名,並在末尾添加 $ 符號

export PS1="u@h\$ "

綜合以上兩種顯示方式

export PS1="u@h> "

命令提示符最終會這樣顯示:


sk@ubuntuserver>

相似地,還可以添加其它特殊字元,例如冒號、分號、星號、下劃線、空格等等。


顯示用戶名、主機名、shell 名稱

export PS1="u@h>s "

顯示用戶名、主機名、shell 名稱以及 shell 版本

export PS1="u@h>sv "

bash 命令提示符顯示樣式:


在 Linux 上自定義 bash 命令提示符



顯示用戶名、主機名、當前目錄

export PS1="u@hw "

如果當前目錄是 $HOME ,會以一個波浪線(~)顯示。


在 bash 命令提示符中顯示日期

除了用戶名和主機名,如果還想在 bash 命令提示符中顯示日期,可以在 ~/.bashrc 文件中添加以下內容:


export PS1="u@h>d "


在 Linux 上自定義 bash 命令提示符



在 bash 命令提示符中顯示日期及 12 小時制時間

export PS1="u@h>d@ "

顯示日期及 hh:mm:ss 格式時間

export PS1="u@h>dT "

顯示日期及 24 小時制時間

export PS1="u@h>dA "

顯示日期及 24 小時制 hh:mm:ss 格式時間

export PS1="u@h>d "

以上是一些常見的可以改變 bash 命令提示符的轉義字元串。除此以外的其它轉義字元串,可以在 bash 的 man 手冊 PROMPTING 章節中查閱。

你也可以隨時執行以下命令查看當前的命令提示符樣式。


$ echo $PS1

在 bash 命令提示符中去掉 username@hostname 部分

如果我不想做任何調整,直接把 username@hostname 部分整個去掉可以嗎?答案是肯定的。

如果你是一個技術方面的博主,你有可能會需要在網站或者博客中上傳自己的 Linux 終端截圖。或許你的用戶名和主機名太拉風、太另類,不想讓別人看到,在這種情況下,你就需要隱藏命令提示符中的 「username@hostname」 部分。

如果你不想暴露自己的用戶名和主機名,只需要按照以下步驟操作。

編輯 ~/.bashrc 文件:

$ vi ~/.bashrc

在文件末尾添加這一行:


PS1="W> "

輸入 :wq 保存並關閉文件。

執行以下命令讓修改立即生效。


$ source ~/.bashrc

現在看一下你的終端,「username@hostname」 部分已經消失了,只保留了一個 ~> 標記。


在 Linux 上自定義 bash 命令提示符


如果你想要儘可能簡單的操作,又不想弄亂你的 ~/.bashrc 文件,最好的辦法就是在系統中創建另一個用戶(例如 「user@example」、「admin@demo」)。用帶有這樣的命令提示符的用戶去截圖或者錄屏,就不需要顧慮自己的用戶名或主機名被別人看見了。

警告:在某些情況下,這種做法並不推薦。例如像 zsh 這種 shell 會繼承當前 shell 的設置,這個時候可能會出現一些意想不到的問題。這個技巧只用於隱藏命令提示符中的 「username@hostname」 部分,僅此而已,如果把這個技巧挪作他用,也可能會出現異常。


為 bash 命令提示符著色

目前我們也只是變更了 bash 命令提示符中的內容,下面介紹一下如何對命令提示符進行著色。

通過向 ~/.bashrc 文件寫入一些配置,可以修改 bash 命令提示符的前景色(也就是文本的顏色)和背景色。

例如,下面這一行配置可以令某些文本的顏色變成紅色:


export PS1="u@[e[31m]h[e[m] "

添加配置後,執行 source ~/.bashrc 立即生效。

你的 bash 命令提示符就會變成這樣:


在 Linux 上自定義 bash 命令提示符


類似地,可以用這樣的配置來改變背景色:


export PS1="u@[e[31;46m]h[e[m] "


在 Linux 上自定義 bash 命令提示符



添加 emoji

大家都喜歡 emoji。還可以按照以下配置把 emoji 插入到命令提示符中。


PS1="W ? >"

需要注意的是,emoji 的顯示取決於使用的字體,因此某些終端可能會無法正常顯示 emoji,取而代之的是一些亂碼或者單色表情符號。


自定義 bash 命令提示符有點難,有更簡單的方法嗎?

如果你是一個新手,編輯 $PS1 環境變數的過程可能會有些困難,因為命令提示符中的大量轉義字元串可能會讓你有點暈頭轉向。但不要擔心,有一個在線的 bash $PS1 生成器可以幫助你輕鬆生成各種 $PS1 環境變數值。

就是這個 網站 :


在 Linux 上自定義 bash 命令提示符


EzPrompt

只需要直接選擇你想要的 bash 命令提示符樣式,添加顏色、設計排序,然後就完成了。你可以預覽輸出,並將配置代碼複製粘貼到 ~/.bashrc 文件中。就這麼簡單。順便一提,本文中大部分的示例都是通過這個網站製作的。


我把我的 ~/.bashrc 文件弄亂了,該如何恢復?

正如我在上面提到的,強烈建議在更改 ~/.bashrc 文件前做好備份(在更改其它重要的配置文件之前也一定要記得備份)。這樣一旦出現任何問題,你都可以很方便地恢復到更改之前的配置狀態。當然,如果你忘記了備份,還可以按照下面這篇文章中介紹的方法恢復為默認配置。

  • 如何將 ~/.bashrc 文件恢復到默認配置

這篇文章是基於 ubuntu 的,但也適用於其它的 Linux 發行版。不過事先聲明,這篇文章的方法會將 ~/.bashrc 文件恢復到系統最初時的狀態,你對這個文件做過的任何修改都將丟失。

感謝閱讀!



via: https://www.ostechnix.com/hide-modify-usernamelocalhost-part-terminal/

作者: SK 選題: lujun9972 譯者: HankChow 校對: wxy

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


點擊「了解更多」可訪問文內鏈接

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux技術 的精彩文章:

CPU 電源管理器:Linux 系統中 CPU 主頻的控制和管理
系統管理員需知的 16 個 iptables 使用技巧

TAG:Linux技術 |