參考:html
http://www.cnblogs.com/clover-toeic/p/4031618.htmllinux
http://www.cnblogs.com/luoxu34/p/5239675.html函數
終端的字符顏色是用轉義序列控制的,是文本模式下的系統顯示功能。spa
和具體的語言無關,因此C語言中的 printf/fprintf 函數也能夠這樣使用。code
本文最重要的一句話,全部的問題都在這裏,看明白了就知道怎麼改變文本的顯示方式了:htm
\033[顯示方式;前景色;背景色mblog
把\033換成\e是同樣的:class
\e[顯示方式;前景色;背景色m終端
解釋:im
①顏色的轉義序列是以 ESC 開頭
②顯示方式:
0(默認值)、1(高亮)、22(非粗體)、4(下劃線)、24(非下劃線)、5(閃爍)、25(非閃爍)、7(反顯)、27(非反顯)
③前景色:
30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍色)、35(洋紅)、36(青色)、37(白色)
④背景色:
40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍色)、45(洋紅)、46(青色)、47(白色)
⑤\033[0m表示默認,能夠關閉前邊設置的任何效果
\033[nA 光標上移n行
\03[nB 光標下移n行
\033[nC 光標右移n行
\033[nD 光標左移n行
\033[y;xH 設置光標位置
\033[2J 清屏
\033[K 清除從光標到行尾的內容
\033[s 保存光標位置
\033[u 恢復光標位置
\033[?25l 隱藏光標
\33[?25h 顯示光標
#define NONE "\e[0m" #define BLACK "\e[0;30m" #define L_BLACK "\e[1;30m" #define RED "\e[0;31m" #define L_RED "\e[1;31m" #define GREEN "\e[0;32m" #define L_GREEN "\e[1;32m" #define BROWN "\e[0;33m" #define YELLOW "\e[1;33m" #define BLUE "\e[0;34m" #define L_BLUE "\e[1;34m" #define PURPLE "\e[0;35m" #define L_PURPLE "\e[1;35m" #define CYAN "\e[0;36m" #define L_CYAN "\e[1;36m" #define GRAY "\e[0;37m" #define WHITE "\e[1;37m" #define BOLD "\e[1m" #define UNDERLINE "\e[4m" #define BLINK "\e[5m" #define REVERSE "\e[7m" #define HIDE "\e[8m" #define CLEAR "\e[2J" #define CLRLINE "\r\e[K" //or "\e[1K\r"