Linux 字體顏色設置

1 概述

在linux中,我們在編輯時需要對文檔編輯或者一些信息的顯示加上顏色,增強閱讀的效果

格式: echo -e "\033[字體顏色;字背景顏色m字符串\033[0m"

要顯示什么顏色,優先是先判斷位置,按語法上來說,應該是先字體色,然后是背景色,但是字體色的地方數值為43,所以判斷為背景的顏色,而在后面的31本應該是背景色,結果數值31位字體的顏色,所以顯示的效果是字體的顏色為紅色,而不是背景紅色,假設這個31是數值41,則表示背景的為紅色,整體的效果就是紅色背景,字體處沒有顏色,為默認的白色,且效果是閃爍。

其中設置顏色的格式為:\033[ ; m …… \033[0m,其中ascii code是對顏色調用的始末.也可以表示為\e[F;Bm…….\e[0m

2 顏色語法

2.1 ?顏色范圍

字背景顏色范圍: 40--49? ? ? ? ? ? ? ? ? 字顏色: 30--39

字體顏色

2.2 顏色舉例

顏色設置

3 案例

3.1 在vim編輯模式下,顏色顯示

例如顯示紅色,其中紅色^[[31mred^[[0m其中^[是在插入編輯模式下按鍵進去額ctr+v+[這三個按鍵輸入的。

假設寫在文檔tt1寫入對應的語句來查看,通過cat ?tt1驗證效果

^[[31mred^[[0m :表示對應的字是紅色字體,沒有底色,如下截圖


^[[31mred^[[44m:表示紅色字體,底色為紫紅色。假設寫在文檔tt1,后面cat tt1.這個屏幕底色都是藍色,字都是紅色如下截圖


^[[31;44mred^[[0m:表示紅色字體,字和屏幕的底色為藍色,背景沒有底色,和^[[31mred^[[44m效果一樣。如下截圖


^[[31;44mred^[[44m:表示紅色字體,底色都是藍色


3.2 命令行模式

在命令行里輸入命令:echo -e '\e[43;31;4mmagedu\e[0m',得到如下的效果


3.3 命令提示符顯示

PS1是Linux終端用戶的一個環境變量,用來說明命令行提示符的設置。在終端輸入命令:echo $PS1,就會輸出PS1的定義:

默認的PS1變量值為 : PS1="[\u@\h \W]$"

PS1的定義中個常用的參數的含義如下:


參數含義

3.3.1 把\u顯示紅色,\h顯示綠色

給PS1賦值如下:

PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"

這里需要注意,顏色的結束調用符號,要放在最后面,否則當使用命令history查看歷史命令時,會出現各種異常的顯示

正確的結果得到的結果如下圖

用戶名紅色 主機名藍色

當把結束符調整到$前面,如PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\[\e[0m\\$",使用history查找的時候出現了如下的異常顯示

異常顯示

注意,這里賦值的時候要用單引號才能得到要的效果,只是單純改變顏色,其他值不改變,如果賦值用雙引號,如下

錯誤寫法:PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\$"

得到的效果如下:


如果是root時,提示符為:# ,普通用戶則為:$,但是雙引號后root的提示符為$,是不對的

解決辦法:如果用雙引號,需要再\$前再加一個\,語句如下

PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"

3.3.2 背景黃色,第一個[左邊中括號白色,用戶名和@紅色,主機名和后面字符是藍色

賦值為PS1='\[\e[43m\][\[\e[31m\]\u@\[\e[34m\]\h \W]\$\e[0m'

效果如下截圖


這個例子,我們可以明顯看出,\e[顏色值m這個是說明接下來的顏色從這里開始是什么顏色,\e[0m說明的是顏色的結束位置,

這里需要注意的是,如果沒有通過\[ ? \]對每一個顏色進行界定,使用過程,如上翻歷史頁,就會出現顯示異常。

3.3.3 寫入配置文件

將設置好的PS1變量寫到家目錄下的.bashrc 里面,這樣后面開啟的終端都有效。

$ vim .bashrc

打開后添加一行

PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\\$"

保存退出再次登錄時顯示的顏色也會是我們設定的值了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.了解PS1PS1是Linux終端用戶的一個環境變量,用來定義命令行提示符的參數。在終端輸入命令:$ set |...
    云端漫記閱讀 7,832評論 0 3
  • echo要變換顏色的時候,要使用參數-e格式:echo -e "\033[字背景顏色;字體顏色m字符串\033[0...
    738bc070cd74閱讀 548評論 0 0
  • 要想修改終端的顏色,可以使用修改PS1環境變量的方式,也可以通過命令setterm來進行設置。 一、PS1 1.P...
    孤逐王閱讀 6,015評論 0 4
  • ArchLinux?VirtualBox?Git?$PS1?Promt color 上一篇·易用性配置 I 簡介:...
    華麗同行閱讀 1,211評論 0 1
  • 又要離開了。 上一次離開,正好是一年以前。那時候還是大四的學生,也算是意氣風發。 而如今,一個失敗者,灰頭土臉地偷...
    喵小葵閱讀 177評論 0 0