轉義序列符
為了添加個人風格的彩色提示符,我們需要使用轉義序列符。一個轉義序列符是一個控制命令,它控制Shell執行某個特定的動作。一個轉義序列符通常以 ESC開始,在Shell中被記錄為"^[",有時候也被常常記錄為3(因為ESC在ASCII編碼中是27,八進制就被記錄為033)。為了直接在 Shell中輸入一個轉義序列符,一般會以“Ctrl+V”作為前導,也就是“Ctrl-v ESC”。
使用Shell顏色
首先使用一個例子來說明如何實現Shell彩色:
PS1="[ 3[0;32;40mu@h:w$ 3[0m ]"
這時候就會顯示如下的提示符:
在上面命令中,“3[0;32;40m”表示定義后面文本的顏色,“3”表示啟動一個轉義序列,“[”定義開始顏色定義,“0”定義默認的字體顏色,其它部分稍后定義。“32”定義文本的前景色,這里32表示綠色;“40”定義文本的背景色,40表示黑色。在字符串的最后定義了“ 3[0m”,它是用來恢復了默認的文本顏色設置,這樣就只會得到一個彩色提示符,而不會影響命令和其輸出的顏色顯示(即黑底白字)。
我們一共有8種字體顏色可供選擇,它們分別是30 (黑色)、31 (紅色)、32 (綠色)、33 (黃色)、34 (藍色)、35 ( 紫紅色)、36 (青色)和37 (白色)。對於底色也有8種顏色可供選擇,只需要將字體顏色的3修改為4即可,例如40、41、42、43、44、45、46、47。
例如,運行下面命令:
~/.bashrc: PS1="[3[0;37;44mu@3[0;32;43mh:3[0;33;41mw$3[0m]"
或者
PS1="[3[1;34;40m[3[1;31;40mu@h:w3[1;34;40m]3[1;37;40m $3[0;37;0m] "
前景 背景 顏色
---------------------------------------
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
代碼 意義
-------------------------
0 OFF
1 高亮顯示
4 underline
5 閃爍
7 反白顯示
8 不可見
在Linux中讓echo命令顯示帶顏色
echo顯示帶顏色,需要使用參數-e
格式如下:
echo -e "\033[字背景顏色;文字顏色m字符串\033[0m"
例如:
echo -e "\033[41;37m TonyZhang \033[0m"
其中41的位置代表底色, 37的位置是代表字的顏色
注:
1、字背景顏色和文字顏色之間是英文的“""”
2、文字顏色后面有個m
3、字符串前后可以沒有空格,如果有的話,輸出也是同樣有空格
下面看幾個例子:
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 紅色字 \033[0m"
echo -e "\033[32m 綠色字 \033[0m"
echo -e "\033[33m 黃色字 \033[0m"
echo -e "\033[34m 藍色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天藍字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 紅底白字 \033[0m"
echo -e "\033[42;37m 綠底白字 \033[0m"
echo -e "\033[43;37m 黃底白字 \033[0m"
echo -e "\033[44;37m 藍底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天藍底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"
控制選項說明 :
\33[0m 關閉所有屬性
\33[1m 設置高亮度
\33[4m 下划線
\33[5m 閃爍
\33[7m 反顯
\33[8m 消隱
\33[30m -- \33[37m 設置前景色
\33[40m -- \33[47m 設置背景色
\33[nA 光標上移n行
\33[nB 光標下移n行
\33[nC 光標右移n行
\33[nD 光標左移n行
\33[y;xH設置光標位置
\33[2J 清屏
\33[K 清除從光標到行尾的內容
\33[s 保存光標位置
\33[u 恢復光標位置
\33[?25l 隱藏光標
\33[?25h 顯示光標
閃爍:
高亮:
下划線:
反顯: