Terminal
Linux VT 支持 8 種顏色,但實際有 16 種不同的顏色。為什麼會這樣?
根據 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 種“高強度顏色”。當我通過 tput colors 檢查 Linux 虛擬控制台 (tty) 的終端功能時,它顯示為 8。但是,如果我在 VT 中列印它們,我會得到 16 種不同的顏色。為什麼會這樣?
如果仔細觀察,您會發現顏色 0-7 是 8 到 15 的較暗版本。
該方案基於早期的文本模式硬體,該硬體使用 4 位來確定紅色、綠色、藍色和強度,如下所示:
----------------- | 8 | 4 | 2 | 1 | ----------------- | I | R | G | B | -----------------
將您想要的值加起來。例如,淺紅色 = 8+4 = 12。
在您的範例中,位的排列方式不同,看起來像 1=red,2=green,4=blue。
在此方案中,有 3 個顏色位,因此 8 種不同的顏色(000 或黑色是一種顏色)具有 1 個可選擇的亮度或強度位。這就是“8種標準色和8種高強度色”的含義。
(這些位儲存在稱為“屬性記憶體”的記憶體部分中 - 其他 4 位可以選擇背景顏色並打開/關閉閃爍模式。)
至於為什麼你沒有看到 256 色,你的終端可能不在 256 色模式或類似的模式下。