如何定制您的Linux終端提示符
您的Ubuntu系統(tǒng)使用作為默認(rèn)的終端應(yīng)用程序bash或dash。
您可以根據(jù)一個默認(rèn)提示輸入命令,該提示通常在一些預(yù)定義的顏色主題中列出您的用戶名、主機(jī)名和當(dāng)前目錄。
bash為提示符提供了許多自定義選項,您不僅可以使用這些選項在提示符中集成各種特性,還可以使用不同的顏色區(qū)分它們。
在本文中,我們將使用各種示例對終端應(yīng)用程序的提示符進(jìn)行自定義和重新著色,使您能夠根據(jù)自己的需要進(jìn)行操作。我們正在Ubuntu 18.04 LTS系統(tǒng)上運行本文描述的命令和過程。
查看當(dāng)前Bash提示符配置
當(dāng)您通過Dash或Ctrl+Alt +T快捷鍵打開終端時,您會看到如下提示:
linuxidc@linuxidc:~$
此默認(rèn)格式列出用戶名、主機(jī)名以及用戶的當(dāng)前目錄。bash從bashrc文件中獲取此配置,該文件是為每個用戶在其主目錄中單獨設(shè)置的。你可以這樣打開這個文件:
vim ~/.bashrc
位置:/home/username/.bashrc
您還可以使用任何其他文本編輯器打開此文件。
這是配置文件的樣子。我們在這里向您展示文件的相關(guān)部分。
您在上面的圖像中看到的PS1變量具有bash提示符的所有必需配置。我們首先解釋一下這個變量中的字符是什么。您可以在else語句后列出的PS1變量中清楚地查看此變量。
- \u-這表示當(dāng)前用戶的用戶名
- \h:這表示從完全限定域名中提取的當(dāng)前用戶的主機(jī)名。
- \w:這表示當(dāng)前工作目錄。主目錄用波浪號~符號表示。
- \$:這表示您是普通用戶($)還是root用戶(#)。
您還可以通過回顯其值來查看PS1變量的配置,如下所示:
自定義Shell提示符
在了解了提示信息存儲在何處以及PS1變量描述了什么之后,讓我們看看如何編輯它,以便定制bash提示符。
在編輯PS1變量之前,重要的是將其默認(rèn)內(nèi)容存儲在一個新變量中。如果出現(xiàn)錯誤,這將幫助我們恢復(fù)提示符的原始配置。在終端輸入以下命令:
$ DEFAULT=$PS1
現(xiàn)在,變量“DEFAULT”具有恢復(fù)默認(rèn)提示設(shè)置所需的所有信息。
現(xiàn)在讓我們用PS1變量進(jìn)行一些實驗。輸入以下命令:
$ PS1="\u\$ "
PS1的這個新值對您的提示符有以下效果:
現(xiàn)在您只能看到您的用戶名和根用戶信息,沒有任何顏色,因為還沒有設(shè)置任何顏色信息。
讓我們輸入以下命令,以便提示符也列出工作目錄
$ PS1="\u:\w\$ "
PS1的這個新值對您的提示符有以下效果:
由于我的工作目錄是home,我只能看到〜符號。在其他目錄中,比如www.linuxidc.com,我的提示將顯示以下信息:
將提示設(shè)置回默認(rèn)值
由于我們將PS1變量的原始配置存儲在默認(rèn)變量中,所以可以通過將默認(rèn)變量的值提供給PS1,將PS1的值設(shè)置回默認(rèn)值。
PS1=DEFAULT
您還可以定制什么?
如果希望提示包含特定的自定義文本,可以使用以下語法:
PS1="[custom text] \u@\h:\w\$ "
例子:
我已經(jīng)設(shè)置了我的提示,包括一個自定義消息如下:
linuxidc@linuxidc:~$ PS1="Linux公社www.linuxidc.com \u@\h:\w\$ "
Linux公社www.linuxidc.com linuxidc@linuxidc:~$
你可以在提示符中加入以下基本字符:
字符 | 用途 |
\d | 以日、月為單位日期格式。 |
\e | ASCII轉(zhuǎn)義字符 |
\a | 轉(zhuǎn)義字符。 |
\h | 當(dāng)前用戶的主機(jī)名直到'.' |
\H | 當(dāng)前用戶的主機(jī)名。 |
\l | 終端設(shè)備的基本名稱。 |
\j | 由shell運行的作業(yè)的數(shù)量。 |
\r | 回車。 |
\n | 一個新行。 |
\u | 當(dāng)前用戶的用戶名。 |
\v | Bash版本。 |
\! | 打印正在運行的命令的歷史記錄編號。 |
您可以通過以下命令在提示中包括當(dāng)前系統(tǒng)時間:
PS1="\A\u: \w\$ "
PS1的這個新值對您的提示符有以下效果:
您還可以自定義提示符,以包含命令的輸出;這使您可以在提示符中包含***的選項。
語法:
$ PS1="\u@\h on `[command]` \w\$ "
例:
在此示例中,我將設(shè)置提示以包括當(dāng)前用戶所屬的主組的名稱。
$ PS1="\u@\h on `id -gn` \w\$ "
著色提示
自定義提示后,您會發(fā)現(xiàn)事情可能看起來有些混亂。一個明顯的原因是,如果它們都以相同的顏色列出,那么將一個特征與另一個特征區(qū)分開來并不容易?,F(xiàn)在讓我們學(xué)習(xí)如何著色提示,使其更令人愉悅。
為了向一個或多個特征添加顏色,PS1變量包括顏色標(biāo)記。以下圖像中突出顯示的文本是顏色標(biāo)記。
這是顏色標(biāo)記的格式:
\[\033[COLOR]m\]
例如,我們在默認(rèn)終端提示符中看到的默認(rèn)用戶名和主機(jī)名是綠色的,這是因為下面的顏色標(biāo)簽:
\[\033[01;32m\]\u@\h\
您可以針對bash提示符特性更改此顏色值,以賦予它一個新的顏色,或者向沒有任何顏色的特性添加一個新的顏色標(biāo)記。
下面是一些常見的顏色及其值:
顏色 | 值 |
Green | 32 |
Red | 31 |
Black | 30 |
Blue | 34 |
Cyan | 36 |
Purple | 35 |
Yellow | 33 |
White | 37 |
例:
以下命令將提示符變?yōu)榧t色,因為我們在顏色標(biāo)記中指定了31(紅色):
$ PS1="\[\033[31m\]\u@\h:\w$ "
在提示中使用文本樣式
您可以通過為顏色標(biāo)記指定屬性值來為提示文本添加樣式。以下是具有屬性的顏色標(biāo)記的格式:
\[\033[ATTRIBUTE; COLORm\]
您可以為提示文本使用以下屬性值:
屬性值 | 用途 |
0 | 標(biāo)準(zhǔn)文本(即使沒有設(shè)置屬性,這也是默認(rèn)值) |
1 | 在Ubuntu終端中,此值指定粗體文本 |
2 | 暗淡文本 |
4 | 文本下劃線 |
5 | 閃爍的文本 |
7 | 反轉(zhuǎn)文本和背景顏色 |
8 | 隱藏的文本 |
例子:
可以使用以下命令對bash提示加下劃線:
$ PS1="\[\033[4;31m\]\u@\h:\w$ "
值4表示我們想要“下劃線”文本。
對提示符進(jìn)行***更改
到目前為止執(zhí)行的命令只會更改當(dāng)前bash會話的提示符。在您嘗試了文本自定義和提示符的顏色化之后,您需要編輯bashrc文件。
打開.bashrc文件,復(fù)制if下PS1行中您最終確定的PS1值;然后行。在下面的圖片中,我剛剛將bash提示符的顏色更改為紅色:
按Ctrl+X保存文件,然后按y保存。對bash提示符的更改現(xiàn)在將是***性的。退出終端并重新打開,可以看到bash提示符仍然與您設(shè)置的一樣。
保存文件
在完成本教程的練習(xí)之后,您可以出色地定制bash提示符。然后,您可以設(shè)置顏色來區(qū)分您在提示符中包含的不同特性。這樣,每次使用bash提示符時,您都可以查看和使用這些有用的信息。