【终端显示字体背景和字体颜色等使用用法】
在命令行下想要产生五颜六色的字体和背景,只需要加上一些颜色代码即可。
ANSI 标准规定了一种所有终端共享的指令集,并要求用 ASCII 的数字字符传递所有数值信息,用于控制 Linux 终端上的光标位置、颜色和其他选项。在文本中嵌入确定的字节序列,大部分以 ESC 转义字符和 "[" 字符开始,终端会把这些字节序列解释为相应的指令,而不是普通的字符编码。终端颜色就是 ANSI 转义序的一种应用。ANSI 控制序列三部分构成:前置引导,CSI 控制序列,结束符号。
可输入指令查看其使用方法:man console_codes
在 ANSI 兼容终端里,可以用彩色显示文本而不仅仅是黑白。
前置引导器就是由 ESC 的 ASCII 码值:\033,颜色的控制通过 ESC 字符(ASCII 码值十进制:27,八进制:033)(作用:告诉终端这是个控制命令,终端就不会把这个引导符号后面的文本当字符串来解释),接着加上 "[",再加上颜色代码和 "m" 来实现。
CSI 控制序列
这个 CSI 序列主要是控制输出样式的,比如颜色,光标......
CSI 序列由:[、若干个(包括0个)“参数字节”、若干个 “中间字节”,以及一个 “最终字节” 组成。
各部分的字符范围如下:[<PREFIX>];[<COLOR>];[<TEXT DECORATION>]
- PREFIX:使用的 256 的颜色模式
- COLOR:输出颜色,前景色,背景色等
- TEXT DECORATION:文字装饰器,比如下划线等
"m" 指示控制序列的结尾,如:[0m,没有任何特殊参数的 CSI 序列。\033[0m 即关闭转义序列,\033[0m 是终端默认颜色,ESC[m 这样没有参数的情况相当于参数为 0。
\033[0m:重置所有文本属性。(将文本样式恢复为默认状态,包括颜色、加粗、下划线等。这个序列用于取消之前应用的任何格式设置,确保后续输出使用默认样式)
\033[0K:清除从光标当前位置到行尾的内容。(删除当前光标所在位置到当前行的结束部分的所有字符。如果光标在行的开头,0K 会清除整行内容)