Linux下設定終端文字的顯示屬性

superw發表於2019-05-14

Linux 通過ANSI逸出序列(escape sequences)設定終端文字的顯示屬性,如文字的前景與背景顏色等,形式為
ESC[{parameters…}m

ESC用於引導逸出序列,八進位制、十進位制與十六進位制分別表示為033/27/0x1b,通常以反斜槓(“)轉義的形式 33,x1b或e表示
{parameters…}為指定的顯示屬性,通過數字表示,可以為單個屬性,也可以為由分號(;)分隔的多個屬性組成的列表,單個屬性可以位於屬性列表的任意位置,不影響設定
m表示顯示屬性的末尾
ESC,左方括號([),顯示屬性與m之間都不包含空格,m與隨後的文字之間可以包含可選的空格

字元屬性:
01:bold,加粗
22:取消加粗
04:underscore,下劃線
24:取消下劃線
05:blink,閃爍
25:取消閃爍
07:reverse,反顯,即翻轉前景色與背景色
27:取消反顯
08:hidden,隱藏
28:取消隱藏
00:reset,將所有屬性與顏色重置為預設

字元/前景顏色:30 – 39
30:black,黑色
31:red,紅色
32:green,綠色
33:brown,棕黃色
34:blue,藍色
35:magenta,紫色
36:cyan,青色
37:white,白色
38:開啟下劃線,並設定預設前景顏色
39:關閉下劃線,並設定預設前景顏色

背景顏色:40 – 49
40:黑色
41:紅色
42:綠色
43:棕黃色
44:藍色
45:紫色
46:青色
47:白色
49:預設背景顏色

終端文字的顯示屬性可以通過C程式與shell/Python指令碼等設定,如bash中

echo -e "e[1;5;31m Successfully.x1b[0m"

表示以加粗紅色字型,閃爍顯示Successfully.,隨後將所有屬性恢復預設

或C語言中

printf(" 33[1;4;32mHello,world 33[0m
");

表示以帶下劃線的加粗綠色字型顯示Hello,world,隨後將所有屬性恢復預設

參考
ascii(7)
console_codes(4)

Bash: Using Colors
http://webhome.csc.uvic.ca/~s…

Bash tips: Colors and formatting (ANSI/VT100 Control sequences)
http://misc.flogisoft.com/bas…

相關文章