终端字体,颜色,背景,光标,屏幕等样式 ANSI Esc \033, \x1B, \e 转义序列用法

终端字体,颜色,背景,光标,屏幕等样式 ANSI Esc \033, \x1B, \e 转义序列用法

简介

ANSI 转义序列Esc(\033, \x1B, \e)是个特殊转义字符,它可以在终端控制光标,改变字体颜色和背景,设置屏幕或者使用私有模式来改变终端样式,使终端样式更美观,功能更多


通用 ASCII 码

名称描述C语言Ctrl10进制8进制16进制
BEL响铃\a^G7070x07
BS退格\b^H80100x08
HT水平制表符\t^I90110x09
LF换行\n^N100120x0A
VT垂直制表符\v^J110130x0B
FF换页(又作:新页面 NP )\f^K120140x0C
CR回车\r^M130150x0D
\eEsc序列\e^[270330x1B
DEL删除nonenone12701770x7F

示例代码(linux shell):

echo -en "\e[31mred\e[32mgreen\e[34mblue"

运行结果:
运行结果

光标

序列描述
\e[H将光标移动到起始位置 (0, 0)
\e[{line};{column}H
\e[{line};{column}f
将光标移动到第 # 行,第 # 列
\e[#A将光标向上移动 # 行
\e[#B将光标向下移动 # 行
\e[#C向右移动光标#列
\e[#D向左移动光标#列
\e[#E将光标移动到下一行的开头,向下 # 行
\e[#F将光标移动到上一行的开头,#行向上
\e[#G将光标移动到列#
\e[6n请求光标位置(报告为 \e[#;#R )
\e M将光标向上移动一行,如果需要滚动
\e 7保存光标位置 (DEC)
\e 8将光标恢复到上次保存的位置 (DEC)
\e[s保存光标位置 (SCO)
\e[u将光标恢复到上次保存的位置 (SCO)

擦除

序列描述
\e[J在显示中擦除(与 \e[0J 相同)
\e[0J从光标擦除直到屏幕结束
\e[1J从光标擦除到屏幕开头
\e[2J擦除整个屏幕
\e[3J删除保存的行
\e[K行内擦除(同 \e[0K)
\e[0K从光标擦除到行尾
\e[1K擦除光标所在行的开头
\e[2K擦除整行

样式

序列重置序列描述
\e[1;34;{…}m设置单元格的图形模式,以分号 ( ; ) 分隔
\e[0m重置所有模式(样式和颜色)
\e[1m\e[22m设置粗体模式
\e[2m\e[22m设置昏暗/昏暗模式
\e[3m\e[23m设置斜体模式
\e[4m\e[24m设置下划线模式
\e[5m\e[25m设置闪烁模式
\e[7m\e[27m设置反向/反向模式
\e[8m\e[28m设置隐藏/不可见模式
\e[9m\e[29m设置删除线模式

颜色

颜色前景背景
\e[30m\e[40m
\e[31m\e[41m
绿\e[32m\e[42m
\e[33m\e[43m
\e[34m\e[44m
\e[35m\e[45m
\e[36m\e[46m
\e[37m\e[47m
256色/RGB 色\e[38m\e[48m
默认\e[39m\e[49m
重置\e[0m\e[0m

大多数终端,除了基本的 8 种颜色外,还支持"明亮"或"粗体"颜色

支持 aixterm 规范 的终端提供了 ISO 颜色的明亮版本,无需使用粗体修饰符

颜色前景背景
亮黑\e[90m\e[100m
亮红\e[91m\e[101m
亮绿\e[92m\e[102m
亮黄\e[93m\e[103m
亮蓝\e[94m\e[104m
亮粉\e[95m\e[105m
亮青\e[96m\e[106m
亮白\e[97m\e[107m

256 色

序列描述
\e[38;5;{ID}m设置前景色
\e[48;5;{ID}m设置背景颜色

根据颜色索引图替换{ID}值:

颜色索引

RGB 色

序列描述
\e[38;2;{r};{g};{b}m将前景色设置为 RGB
\e[48;2;{r};{g};{b}m将背景颜色设置为 RGB

屏幕模式

设置模式

序列描述
\e[={value}h将屏幕宽度或类型更改为 value 指定的模式
\e[=0h40 x 25 单色(文本)
\e[=1h40 x 25 彩色(文字)
\e[=2h80 x 25 单色(文本)
\e[=3h80 x 25 彩色(文字)
\e[=4h320 x 200 4 色(图形)
\e[=5h320 x 200 单色(图形)
\e[=6h640 x 200 单色(图形)
\e[=7h启用换行
\e[=13h320 x 200 彩色(图形)
\e[=14h640 x 200 色(16 色图形)
\e[=15h640 x 350 单色(2 色图形)
\e[=16h640 x 350 色(16 色图形)
\e[=17h640 x 480 单色(2 色图形)
\e[=18h640 x 480 色(16 色图形)
\e[=19h320 x 200 色(256 色图形)
\e[={value}l使用与设置模式相同的值重置模式,但 7 除外,它禁用换行 此转义序列中的最后一个字符是小写 L

常见的私有模式

这些是私有模式的一些示例,规范中没有定义,但在大多数终端中都实现了

序列描述
\e[?25l使光标不可见
\e[?25h使光标可见
\e[?47l恢复屏幕
\e[?47h保存画面
\e[?1049h启用备用缓冲区
\e[?1049l禁用备用缓冲区

有关 XTerm定义的私有模式的更深入列表, 请参阅 XTerm 控制序列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值