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