linux ANSI控制码
linux ANSI控制码
ANSI/3.64控制码标准 ANSI控制码均以 Esc[ 作为控制码的开始标志,其中,Esc 的ansi码为 27-十进制,33-八进制,所以在c中,可以使用 \033 表示。
详见 维基百科
在linux终端使用echo输出带颜色的字符,需要使用ANSI控制码。ANSI控制码开始的标志都为ESC[,在这里ESC对应ASCII码表的033(八进制),所以echo命令使用-e选项启用转义,用”\033”来输入ESC。如下命令echo的参数中:
echo -e "\033[42;36;5msomething here\033[0m"
\ 转义
033[ ANSI控制码的起始标志
42 字体背景颜色码,范围是40-49,42表示绿色。
; 用来分隔属性
36 字体颜色码,范围是30-39,36表示深绿色。
5 闪烁
m 控制标记,前面的为属性,后面的为字符
something here 打印的文本
0 控制码,表示关闭所有控制属性,如果不关闭,终端会继续使用上面的属性。
以m为标记的,是控制字符显示相关的设置,如果有多项设置,可以使用分号将两个数字连接起来,也可以使用连续多个\033[nm。
控制字符,ASCII 码小于 32 的字符都是控制字符。
ANSI控制码
控制码 | 作用 |
---|---|
0 | 关闭所有属性 |
1 | 设置高亮度 |
4 | 下划线 |
5 | 闪烁 |
7 | 反显 |
8 | 消隐 |
22 | 设置正常亮度 |
24 | 关闭下划线 |
25 | 不闪烁 |
30 - 37 | 设置前景色 |
40 - 47 | 设置背景色 |
nA | 光标上移n行 |
nB | 光标下移n行 |
nC | 光标右移n行 |
nD | 渔村左移n行 |
2J | 清屏 |
K | 清除从光标到行尾的内容 |
s | 保存光标位置 |
u | 恢复光标位置 |
?25l | 隐藏光标 |
?25h | 显示光标 |
前景颜色 30 - 37
控制码 | 颜色 |
---|---|
30 | 黑色 |
31 | 红色 |
32 | 绿色 |
33 | 黄色 |
34 | 蓝色 |
35 | 紫色 |
36 | 深绿色 |
37 | 白色 |
39 | 默认前景色 |
背景颜色 40 - 47
控制码 | 颜色 |
---|---|
40 | 黑色 |
41 | 红色 |
42 | 绿色 |
43 | 黄色 |
44 | 蓝色 |
45 | 紫色 |
46 | 深绿色 |
47 | 白色 |
49 | 默认背景色 |