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

1240

字體顏色

 2.2 顏色舉例

1240

顏色設置

3 案例

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

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

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

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

1240

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

1240

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

1240

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

1240

3.2 命令行模式

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


1240

3.3 命令提示符顯示

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

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

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

1240

參數含義

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

給PS1賦值如下:

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

得到的結果如下圖

1240

用戶名紅色 主機名藍色

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

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

得到的效果如下:

1240

如果是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'

效果如下截圖

1240

這個例子,我們可以明顯看出,\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\\$"

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

這裏需要注意,如果設置PS1的顏色值後,按向上鍵查看歷史的命令,如果歷史命令顯示格式有問題,可能是顏色調用的結束符號位置放置了,需要根據實際情況進行調整。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章