LS_COLORS 用于 256 色终端

LS_COLORS 用于 256 色终端

我认为 ls 颜色定义为

<file_type>=[<bg(40-47)>];<font_spec(0:5)>;<font_color(30-37)>

但是,我最近发现其中有更多颜色并且颜色指定为,例如:

.tar    00;38;5;61

对于 256 色终端。

这个定义是什么意思呢?

答案1

指令的参数LS_COLORS是一个字符串,作为转义序列的一部分写入终端。显示文件名时,先ls写入\e[,然后写入与文件类型关联的字符串,然后写入m,然后写入文件名,然后写入\e[0m(其中\e表示转义字符)。这是转义序列,告诉 xterm 和兼容终端(现在是大多数终端)更改颜色和其他文本属性(在CSI Pm m文档ls不关心字符序列的含义或它包含多少个分号。

旧终端仅支持 8 种前景色,由数字 30 到 37 指定。支持更多颜色的终端使用转义序列,其中\e[38;5;PsmPS是颜色编号,或者其中\e[38;2;Pr;Pg;Pbm普罗,PG,是 RGB 值。这些可以与其他属性组合,例如\e38;5;61;1m\e38;2;95;95;175;1m用于粗体石板蓝色文本。

相关内容