Unveveiling the Control Character of Emulator Terminal
首先我们要知道控制字符的表现和 Emulator Terminal
有关系,可以通过 echo $TERM
来查看当前终端的类型。
There are a link about xterm.
ESC 控制字符
\033
是八进制的转义字符,对应 ASCII
上的 ESC
,是控制字符的一种,用作控制序列的开始。
此外需要提示的是:
\x
表示 16 进制,\0
表示 8 进制
因此 \0x1b 等于 \033
颜色
格式
\033[xx;xx;..m
- 前景色和背景色:
30
到37
: 前景色,范围是黑色到白色。 echo -e “\033[31m 红色字 \033[0m” echo -e “\033[32m 绿色字 \033[0m” echo -e “\033[33m 黄色字 \033[0m” echo -e “\033[34m 蓝色字 \033[0m” echo -e “\033[35m 紫色字 \033[0m” echo -e “\033[36m 天蓝字 \033[0m” echo -e “\033[37m 白色字 \033[0m”40
到47
:背景景色,范围是黑色到白色。
- 文本样式:
0
: 重置所有文本属性,恢复默认值。1
: 加粗或粗体文本。2
: 弱化的颜色或模糊文本(并非所有终端支持)。3
: 斜体文本(并非所有终端支持)。4
: 下划线。7
: 反显,交换前景色和背景色。
- 特殊效果:
5
: 闪烁效果(并非所有终端支持)。8
: 隐藏文本(并非所有终端支持)。
- 删除线:
9
: 删除线(并非所有终端支持)。
如果多个效果叠加在一起,使用分号进行分割,比如 \033[31;5;240m
表示:
31
: 这是设置前景色的参数。数字 31 表示红色的颜色码,这意味着后面的文本将会显示为红色。5
: 这是一个特殊的参数,通常用于触发闪烁或闪光的效果。在某些终端中,数字 5 可以表示闪烁,但并非所有终端都支持这个效果。这个参数在大多数情况下可能不会产生显著影响。240
: 这是设置背景色的参数。数字 240 可能代表一种特定的背景颜色,具体颜色值因终端而异。在大多数情况下,这可能是一种比较深的灰色。
光标
格式
\033[xx q
样式
echo -e -n "\033[0 q" # changes to blinking block
echo -e -n "\033[1 q" # changes to blinking block also
echo -e -n "\033[2 q" # changes to steady block
echo -e -n "\033[2 q" # changes to blinking underline
echo -e -n "\033[3 q" # changes to steady underline
echo -e -n "\033[4 q" # changes to blinking bar
echo -e -n "\033[6 q" # changes to steady bar
光标移动
- 将光标移动到指定位置:
\033[<行>; <列>H
或\033[<行>;<列>f
- 光标上移/下移/左移/右移:
\033[<n>A
、\033[<n>B
、\033[<n>C
、\033[<n>D
- 清屏:
- 清除屏幕:
\033[2J
- 清除屏幕并将光标移到左上角:
\033[2J\033[H
- 清除屏幕:
- 窗口标题:
- 设置窗口标题:
\033]0;<标题>\007
- 设置窗口标题:
- 属性设置:
- 加粗/粗体文本:
\033[1m
- 斜体文本:
\033[3m
- 重置所有属性:
\033[0m
- 加粗/粗体文本:
- 滚动:
- 向上滚动一行:
\033[S
- 向下滚动一行:
\033[T
- 向上滚动一行: