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 | 默认背景色 |