![LS_COLORS 用于 256 色终端](https://linux22.com/image/65449/LS_COLORS%20%E7%94%A8%E4%BA%8E%20256%20%E8%89%B2%E7%BB%88%E7%AB%AF.png)
我认为 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;Psm
PS是颜色编号,或者其中\e[38;2;Pr;Pg;Pbm
普罗,PG,铅是 RGB 值。这些可以与其他属性组合,例如\e38;5;61;1m
或\e38;2;95;95;175;1m
用于粗体石板蓝色文本。