如何定製bash提示符

大多數Linux發行版將Bash提示符配置為使用者名稱@主機名:目錄$。但是您可以將Bash提示符配置為包含您喜歡的任何內容,甚至可以選擇您喜歡的任何顏色。...

如何定製bash提示符

大多數Linux發行版將Bash提示符配置為使用者名稱@主機名:目錄$。但是您可以將Bash提示符配置為包含您喜歡的任何內容,甚至可以選擇您喜歡的任何顏色。

這裡的示例步驟是在ubuntu16.04 LTS上執行的。在其他Linux發行版上,這個過程應該是相同的,儘管.bashrc檔案中的預設Bash提示符和設定可能有點不同。

prompt變數的儲存位置

Bash提示符配置儲存在使用者帳戶的.bashrc檔案中,該檔案位於~/.bashrc。因此,如果您的使用者名稱是bob,則檔案位於/home/bob/.bashrc。

可以開啟該檔案以檢視當前Bash變數。我們將使用nano作為我們的示例文字編輯器,儘管您也可以使用vi、emacs或任何其他您熟悉的文字編輯器。開啟終端並執行:

nano ~/.bashrc

如何定製bash提示符

向下滾動到PS1=部分。第一個變數看起來相當複雜,因為它包含顏色資訊,我們稍後將對此進行解釋。第二個變數沒有顏色資訊,如下所示:

${debian_chroot:+($debian_chroot)}\u@\h:\w\$

如何定製bash提示符

由於${debian_uchroot:+($debian\uchroot)}位,這仍然有點複雜。這些只是告訴Bash,如果您使用的是Debian chroot環境,通常不會顯示,那麼就告訴Bash。忽略這些,下面是Bash提示符變數的預設結構:

\u@\h:\w\$

\u表示您的使用者名稱,@表示@符號,\h表示主機名(計算機名),:表示:字元,\w表示工作目錄,\$表示$(如果您是普通使用者帳戶或#如果您是root使用者)。所以,把這些放在一起使用者名稱@主機名:工作目錄$。

要更改Bash提示符,只需新增、刪除或重新排列PS1變數中的特殊字元。但是可以使用的變數比預設變數多得多。

暫時將文字編輯器留在nano中,按Ctrl+X退出。我們將向您展示如何在將新變數寫入.bashrc檔案之前對變數進行實驗。

如何建立自定義bash提示符

Bash提示符配置儲存在PS1變數中。要將PS1變數的內容儲存到新變數中,請執行以下命令:

DEFAULT=$PS1

現在可以將PS1變數設定為不同的值進行實驗。例如,這裡的第一行將您的提示設定為基本的“user$”提示,而第二行將您的提示設定為基本的使用者:工作目錄$”提示。

PS1="\u\$ " PS1="\u:\w\$ "

如果您想返回預設提示符,只需執行以下命令。

PS1=$DEFAULT

由於您先前儲存了這些預設設定,Bash將恢復到其預設提示。請注意,您在這裡所做的任何更改都只是當前Bash會話的臨時更改,因此您可以始終登出並重新登入,或者關閉並重新開啟終端視窗以返回預設提示。但是上面這一行可以很容易地返回到預設的Bash提示符,而無需登出或關閉視窗。

如何定製bash提示符

可以向變數中新增任何字元或文字。因此,要使用“Hello World”作為預設提示的字首,可以使用:

PS1="Hello World \u@\h:\w\$ "

如何定製bash提示符

既然你已經掌握了基本知識,你只需要知道所有的特殊角色是什麼。您可能不會關心其中的許多問題,但下面是Bash手冊中顯示的完整列表:

  • 鐘形字元:\A
  • 日期,採用“工作日-月日期”格式(例如,“5月26日星期二”):\d
  • 格式被傳遞給strftime(3),結果***到提示字串中;空格式將導致特定於語言環境的時間表示。大括號是必需的:\D{format}
  • 跳脫字元:\e
  • 主機名,直到第一個“.”:\h
  • 主機名:\H
  • shell當前管理的作業數:\j
  • shell的終端裝置名稱的基名稱:\l
  • 換行符:\n
  • 回車符:\r
  • shell的名稱,basename$0(最後斜槓後面的部分):\s
  • 時間,24小時HH:MM:SS格式:\t
  • 時間,12小時HH:MM:SS格式:\T
  • 時間,12小時am/pm格式:\@
  • 時間,24小時HH:MM格式:\A
  • 當前使用者的使用者名稱:\u
  • Bash的版本(例如2.00):\v
  • Bash的發行版,版本+補丁級別(例如2.00.0):\V
  • 當前工作目錄,$HOME用波浪號縮寫(使用$PROMPT\U DIRTRIM變數):\w
  • $PWD的basename,其中$HOME用波浪號縮寫:\W
  • 此命令的歷史編號:\!
  • 此命令的命令號:\#
  • 如果有效uid為0,#,否則$:\$
  • ASCII碼為八進位制值nnn:\nnn的字元
  • 反斜槓:\\
  • 開始一系列非列印字元。這可用於將終端控制序列嵌入到提示符中:\[
  • 結束非列印字元序列:\]

因此,如果您想將日期和時間新增到Bash提示符中,並將工作目錄放在命令的第二行,則可以使用以下構造:

PS1="[\d \t] \u@\h\n\w\$ "

這裡的方括號根本不需要,但有助於直觀地將事情分解,使行更容易閱讀。正如我們前面所介紹的,您可以向您喜歡的變數新增任何文字或普通字元,因此可以隨意使用任何對您有用的內容。

如何定製bash提示符

還有一個更強大的技巧你應該知道:你可以新增任何命令的輸出到提示符。每當出現提示時,Bash都會執行命令並填寫當前資訊。為此,只需在兩個字元之間包含任何要執行的命令。那不是撇號,那是重音符,它出現在你鍵盤的Tab鍵上方。

例如,假設您想在提示符中檢視Linux核心版本。您可以使用以下行:

PS1="\u@\h on `uname -s -r` \w\$ "

如何定製bash提示符

作為另一個示例,假設您希望檢視系統的正常執行時間和平均負載,如uptime命令所示。您可以使用以下構造,將正常執行時間放在提示符的其餘部分之前。

PS1="(`uptime`)\n\u@\h:\w$ "

如何定製bash提示符

您可以隨意嘗試使用不同的特殊字元和命令來組裝理想的命令提示符。

如何向bash提示符新增顏色

一旦你找到了你喜歡的提示,你可以給它新增顏色。這實際上非常簡單,但是如果你不明白你在看什麼,它會讓變數看起來非常混亂和複雜。

例如,前面的預設顏色提示變數是:

${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

或者,再次刪除debian\u chroot位:

\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

如何定製bash提示符

這實際上只是前面的\u@\h:\w$變數,但包含顏色資訊。實際上,我們可以把它分成幾個部分:

\[\033[01;32m\]\u@\h \[\033[00m\]: \[\033[01;34m\]\w \[\033[00m\]\$

第一部分是\u@\h位,前面的顏色資訊將其變為綠色。第二個是:字元,前面是顏色資訊,可以刪除任何顏色。第三個是\w位,前面是使其變為藍色的顏色資訊。第四個是\$位,前面是去除任何顏色的顏色資訊。

如何定製bash提示符

一旦您瞭解瞭如何構造自己的顏色標記,就可以將您喜歡的任何顏色新增到Bash提示符的任何部分。

您需要知道的是:您必須在\[和\]字元之間包含完整的顏色程式碼資訊。在標記內部,必須以\033[或\e]開頭,以向Bash指示這是顏色資訊。\033[和\e[都做相同的事情。\e[較短,因此使用起來可能更方便,但我們將在此處使用\033[因為它與預設使用的匹配。在標記的末尾,必須以m\結尾,以指示顏色標記的結尾。

分解一下,下面是每個顏色標籤的樣子。唯一的區別是您新增的資訊代替了顏色來定義實際顏色:

\[\033[COLORm\]

Bash允許您更改前景文字的顏色,為文字新增“粗體”或“下劃線”等屬性,並設定背景色。

以下是前景文字的值:

  • 黑色:30
  • 藍色:34
  • 青色:36
  • 綠色:32
  • 紫色:35
  • 紅色:31
  • 白色:37
  • 黃色:33

例如,因為紫色文字的顏色程式碼是32,所以您應該使用\[\033[32m\]來表示紫色文字。

如何定製bash提示符

也可以為文字指定屬性。此屬性必須新增在顏色編號之前,並用分號(;)分隔。具有這些屬性的文字在不同的終端模擬器中看起來會不同。

以下是文字屬性的值:

  • 普通文字:0
  • 粗體或淺色文字:1(取決於終端模擬器。)
  • 尺寸文字:2
  • 下劃線文字:4
  • 閃爍文字:5(這在大多數終端模擬器中不起作用。)
  • 反轉文字:7(這將反轉前景色和背景色,因此如果當前文字是黑色背景上的白色文字,您將看到白色背景上的黑色文字。)
  • 隱藏文字:8

實際上不需要包含normal text屬性。不管怎樣,這是預設值。

例如,由於紅色文字是程式碼31,粗體文字是程式碼1,所以粗體紅色文字使用\[\033[1;31m\]。

如何定製bash提示符

也可以指定背景色,但不能向背景色新增屬性。

以下是背景色的值:

  • 黑色背景:40
  • 藍色背景:44
  • 青色背景:46
  • 綠色背景:42
  • 紫色背景:45
  • 紅色背景:41
  • 白色背景:47
  • 黃色背景:43

例如,由於藍色背景是程式碼44,\[\033[44m\]將指定藍色背景。

如何定製bash提示符

可以指定前景和背景色標記。例如,42表示綠色背景,31表示紅色文字。因此,要使預設提示變為綠色背景上的紅色文字,可以使用:

PS1="\[\033[42m\]\[\033[31m\]\u@\h:\w\$ "

我們只需在這裡指定一種背景顏色,然後指定一種前景文字顏色,該顏色從提示符的開頭開始,並應用於提示符中的所有文字。但是,您可以在變數中指定任意數量的顏色標記,以使提示的不同部分按自己的喜好著色。

如何定製bash提示符

背景和前景文字顏色將一直超過提示,除非指定顏色程式碼00清除顏色資訊。也可以在變數中使用此標記將格式重置為提示中的預設值。例如,下一行將在\$字元之前結束所有著色。

PS1="\[\033[42m\]\[\033[31m\]\u@\h:\w\\[\033[00m\]\$ "

如何定製bash提示符

如何設定新的預設提示

一旦您完成了顏色的實驗,您應該在當前會話中有一個您喜歡的Bash提示。但是您可能希望使這個新的提示永久化,以便在所有Bash會話中自動使用它。

要做到這一點,您只需要更改.bashrc檔案中PS1變數的內容,我們前面已經看過了。

在首選文字編輯器中開啟.bashrc檔案,如下所示:

nano ~/.bashrc

向下滾動並找到PS1=部分。只需用自定義變數替換預設變數。您可能希望將${debian\u chroot:+($debian\u chroot)}位放在一邊,但是它們不會出現,除非您在chroot環境中。

在if[“$color_prompt”=yes];then行下輸入彩色PS1變數。在else行下輸入不帶顏色的變數。

如何定製bash提示符

儲存檔案並關閉文字編輯器。例如,要將檔案儲存在nano中,請按Ctrl+O,按Enter,然後按Ctrl+X退出。

下次啟動新的bashshell時,例如,透過在終端登入或開啟新的終端視窗,您將看到定製的提示。

如何定製bash提示符

  • 發表於 2021-04-07 20:19
  • 閱讀 ( 36 )
  • 分類:網際網路

你可能感興趣的文章

頂級網站和書籍,讓您成為linux命令列英雄

...使用者介面的通用術語。Windows和macOS都有兩個版本(命令提示符和Windows PowerShell)。在Linux中,命令列通常稱為 ...

  • 發佈於 2021-03-14 07:04
  • 閲讀 ( 60 )

最好的,最快的,最堅固的usb快閃記憶體驅動器,你可以現在購買

...保持你的主資料夾完好無損。要完成此操作,請透過命令提示符或PowerShell執行以下命令: ...

  • 發佈於 2021-03-17 01:06
  • 閲讀 ( 51 )

如何在windows10上獲得linux bash shell

... 但是這與僅僅使用Windows命令提示符或PowerShell有什麼不同呢? ...

  • 發佈於 2021-03-21 11:48
  • 閲讀 ( 60 )

如何定製mac終端並使其更有用

... 第二行是實際的命令提示符;末尾的矩形框是游標。您將在此行鍵入命令: ...

  • 發佈於 2021-03-21 20:13
  • 閲讀 ( 49 )

如何在macos終端中定製zsh提示符

... 您可以對zsh提示符進行修飾,使其最小化並充分利用空間。我們將向您展示如何定製終端應用程式中的zsh提示符,使其在您選擇的任何背景中都脫穎而出。 ...

  • 發佈於 2021-03-26 16:03
  • 閲讀 ( 60 )

如何使用shopt定製bashshell

...shshell的行為,您可以控制超過50個設定。我們將向您展示如何按照您喜歡的方式定製您的Linux系統。 shopt內建 shopt內建是bashshell所有版本的一部分,因此不需要安裝任何東西。多年來,shopt提供的選項數量穩步增加。所以,Bash...

  • 發佈於 2021-04-01 12:30
  • 閲讀 ( 59 )

如何使用chsh在linux上更改預設shell

...們啟動FishShell時,會收到一條友好的歡迎訊息,並且命令提示符會發生變化。可能令人驚訝的是,$SHELL環境仍然持有bash可執行檔案/bin/bash的路徑。沒關係,這很正常。 啟動新shell(或任何其他程式)時,它將繼承父shell的環境。...

  • 發佈於 2021-04-02 06:04
  • 閲讀 ( 66 )

如何在linux上的bash中設定環境變數

...儲存的設定定義了在終端視窗中找到的環境,一直到命令提示符的外觀。所以,自然地,它們被稱為環境變數。 一些環境變數是系統範圍的,或者是全域性的。其他人是全會,只能由你看到。其他人無法引用您的會話環境變數...

  • 發佈於 2021-04-02 06:44
  • 閲讀 ( 58 )

如何在macos catalina上將預設shell更改為bash

有了macOS Catalina,蘋果現在使用Zsh作為預設shell。我們喜歡Zsh,但是macOS中仍然包含可靠的老Bash shell,如果您願意,可以快速切換回Bash。 Zsh只是新建立的使用者帳戶上的預設shell,因此在升級的Mac上的任何現有帳戶在預設情況下...

  • 發佈於 2021-04-03 01:32
  • 閲讀 ( 52 )

如何自定義新的windows終端應用程式

...改變字型顏色、背景色、游標形狀等。您可以分別為命令提示符、Bash和PowerShell選擇主題。 要切換預設主題,首先,透過向下滾動到“profiles”:“部分並檢視每個子部分中的命令列條目,找到您想要的shell配置檔案。 命令提示...

  • 發佈於 2021-04-03 10:37
  • 閲讀 ( 58 )
abjv500
abjv500

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦