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
- 向上滚动一行: