根据 Wiki 的https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit文章,有 8 种“标准颜色”和 8 种“高强度颜色”。当我检查 Linux 虚拟控制台 (tty) 的终端功能时,tput colors
它显示为 8。但是,如果我在 VT 中打印它们,我会得到 16 种不同的颜色。为什么会这样?
这是屏幕截图:
我看到没有 256 色支持。控制台只是混合现有的导致这种“效果”的。所以我不问为什么它不支持 X 或类似的东西。
根据 Wiki 的https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit文章,有 8 种“标准颜色”和 8 种“高强度颜色”。当我检查 Linux 虚拟控制台 (tty) 的终端功能时,tput colors
它显示为 8。但是,如果我在 VT 中打印它们,我会得到 16 种不同的颜色。为什么会这样?
这是屏幕截图:
我看到没有 256 色支持。控制台只是混合现有的导致这种“效果”的。所以我不问为什么它不支持 X 或类似的东西。
如果仔细观察,您会发现颜色 0-7 是 8 到 15 的较暗版本。
该方案基于早期的文本模式硬件,该硬件使用 4 位来确定红色、绿色、蓝色和强度,如下所示:
将您想要的值加起来。例如,浅红色 = 8+4 = 12。
在您的示例中,位的排列方式不同,看起来像 1=red,2=green,4=blue。
在此方案中,有 3 个颜色位,因此 8 种不同的颜色(000 或黑色是一种颜色)具有 1 个可选择的亮度或强度位。这就是“8种标准色和8种高强度色”的含义。
(这些位存储在称为“属性内存”的内存部分中 - 其他 4 位可以选择背景颜色并打开/关闭闪烁模式。)
至于为什么你没有看到 256 色,你的终端可能不在 256 色模式或类似的模式下。