轉自:http://zisedeqing.blog.163.com/blog/static/9555087120129111485394/
#include <stdio.h>#include <unistd.h>// 清除螢幕#define CLEAR() printf("\033[2J")// 上移游標#define MOVEUP(x) printf("\033[%dA", (x))// 下移游標#define MOVEDOWN(x) printf("\033[%dB", (x))// 左移游標#define MOVELEFT(y) printf("\033[%dD", (y))// 右移游標#define MOVERIGHT(y) printf("\033[%dC",(y))// 定位游標#define MOVETO(x,y) printf("\033[%d;%dH", (x), (y))// 游標複位#define RESET_CURSOR() printf("\033[H")// 隱藏游標#define HIDE_CURSOR() printf("\033[?25l")// 顯示光線標#define SHOW_CURSOR() printf("\033[?25h")//反顯#define HIGHT_LIGHT() printf("\033[7m")#define UN_HIGHT_LIGHT() printf("\033[27m")int main(int argc,char **argv){printf("\033[31mThe color,%s!\033[1m\n","haha");printf("\033[31mThe color,%s!\033[4m\n","haha");printf("\033[31mThe color,%s!\033[5m\n","haha");printf("\033[31mThe color,%s!\033[7m\n","haha");printf("\033[31mThe color,%s!\033[8m\n","haha");printf("\033[31mThe color,%s!\033[0m\n","haha");printf("\033[47;31mThe color,%s!\033[0m\n","haha");printf("\033[47mThe color,%s!\033[0m\n","haha");sleep(2);printf("\033[47m%s!\033[5A\n","up 5");sleep(2);printf("\033[47m%s!\033[9B\n","down 9");sleep(2);printf("\033[47m%s!\033[19C\n","right 19");printf("right19");sleep(2);printf("\033[47m%s!\033[10D\n","left 10");printf("left 10");sleep(2);printf("\033[47m%s!\033[50;20H\n","move to y:50,x 20");printf("y50 x 20");sleep(2);printf("\033[47m%s!\033[?25l\n","hide cursor");sleep(2);printf("\033[47m%s!\033[?25h\n","sow cursor");sleep(2);printf("\033[47m%s!\033[2J\n","clear scleen");sleep(2);return 0;}
printf("\033[47;31mhello world\033[5m");
47是字背景顏色, 31是字型的顏色, hello world是字串. 後面的\033[5m是控制碼
.顏色代碼:QUOTE:字背景色彩範圍:
40--49 字顏色: 30--39
40: 黑 30: 黑
41: 紅 31: 紅
42: 綠 32: 綠
43: 黃 33: 黃
44: 藍 34: 藍
45: 紫 35: 紫
46: 深綠 36: 深綠
47: 白色 37: 白色
ANSI控制碼:
QUOTE:
\033[0m 關閉所有屬性
\033[1m 設定高亮度
\03[4m 底線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m -- \033[37m 設定前景色彩
\033[40m -- \033[47m 設定背景色
\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 顯示光線標這樣, 在某些時候就可以實現動態輸出.
47是字背景顏色, 31是字型的顏色, hello world是字串. 後面的\033[5m是控制碼.
顏色代碼:
QUOTE:
字背景色彩範圍: 40--49 字顏色: 30--39
40: 黑 30: 黑
41: 紅 31: 紅
42: 綠 32: 綠
43: 黃 33: 黃
44: 藍 34: 藍
45: 紫 35: 紫
46: 深綠 36: 深綠
47: 白色 37: 白色
ANSI控制碼:
QUOTE:
\033[0m 關閉所有屬性
\033[1m 設定高亮度
\03[4m 底線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m -- \033[37m 設定前景色彩
\033[40m -- \033[47m 設定背景色
\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 顯示光線標
這樣, 在某些時候就可以實現動態輸出.
十六進位
1b 5b 30 30 6d 1b 5b 30 30 6d ###### 1b 5b 30 30 6d 20
. [ 0 0 m . [ 0 0 m ###### . [ 0 0 m
其中###表示字串。
.[00m.[00m 第一個.[00m表示顏色開始,第二個.[00m表示白色。
.[00m 表示顏色設定結束。
.[00m.[34m 第一個.[00m表示顏色開始,第二個.[34m表示藍色。
.[00m 表示顏色設定結束。
.[00m.[00manaconda-ks.cfg.[00m .[01;34mDesktop.[00m .[00minstall.log.[00m .[01;34mpackages.[00m
manaconda-ks.cfg和 install.log是白色,Desktop和packages是藍色。
[ <parameters> m 設定顯示內容. 同樣的序列可以設定一個或多個屬性.par 作用
0 所有屬性重設為預設值
1 設定邊框
2 設定亮度減半(用一種顏色類比另一種顏色)
4 設定底紋(用一種顏色類比另一種顏色)
(用於類比的顏色由using ESC ] ...設定)
5 設定閃爍
7 設定反轉視頻(reverse video)
10 重設選定映像,顯示控制標記,
反轉元素標記.
11 選擇空映像,設定顯示控制標記,
重設反轉標記.
12 選擇空映像,設定顯示控制標記,
重設反轉標記.(在完成映像錶轉
換之前反轉標記引起每一位元組的
高位反轉.)
21 設定正常亮度(和 ECMA-48 不相容)
22 設定正常亮度
24 關閉底線
25 不閃爍
27 反轉視頻關閉
30 黑色前景
31 紅色前景
32 綠色前景
33 棕色前景
34 藍色前景
35 品紅前景
36 孔雀藍前景
37 白色前景
38 開啟底線,設定預設前景色彩
39 關閉底線,設定預設前景色彩
40 黑色背景
41 紅色背景
42 綠色背景
43 棕色背景
44 藍色背景
45 品紅背景
46 孔雀藍背景
47 白色背景
49 設定預設背景色
下面的定義摘自:
http://www.linuxselfhelp.com/howtos/Bash-Prompt/Bash-Prompt-HOWTO-12.html,可見telnet與unix的淵源很深。
local BLUE="\[\033[0;34m\]"
local LIGHT_GRAY="\[\033[0;37m\]"
local LIGHT_GREEN="\[\033[1;32m\]"
local LIGHT_BLUE="\[\033[1;34m\]"
local LIGHT_CYAN="\[\033[1;36m\]"
local YELLOW="\[\033[1;33m\]"
local WHITE="\[\033[1;37m\]"
local RED="\[\033[0;31m\]"
local NO_COLOUR="\[\033[0m\]"