
我已在文件中將終端類型設為單色,inittab
如下所示:
c2:... tty2 linux-m
但是當我輸入帶有彩色輸出的命令時,例如:
ls --color=always -l
我仍然得到彩色結果。如果終端設定為非顏色(如上面的 inittab 檔案中的 tty 定義),那會怎麼樣?
答案1
僅終端類型描述使用終端的特定方式。無法保證終端實際上會以這種方式運行,也無法保證程式使用其他資訊來操縱終端。
在本例中,ls
程式使用自己的硬編碼資料庫,該資料庫表示「linux」確實有顏色。
延伸閱讀:ncurses 常見問題解答應用程式被誤認為是圖書館用戶
答案2
如前所述,這些程式可能直接輸出ANSI 轉義序列:
隨著 256 色查找表在顯示卡上變得常見,新增了轉義序列以從預先定義的 256 色集中進行選擇:[需要引用]
ESC[ … 38;5;<n> … m Select foreground color ESC[ … 48;5;<n> … m Select background color 0- 7: standard colors (as in ESC [ 30–37 m) 8- 15: high intensity colors (as in ESC [ 90–97 m) 16-231: 6 × 6 × 6 cube (216 colors): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
232-255:24步從黑到白的灰度
這個論點也可以透過類似問題的答案來加強在 Unix SE 上停用終端和 SSH 上的顏色。
在您之前關於本主題的問題中,您提到您正在使用 xterm。這xterm 手冊頁也列出了-cm
停用 ANSI 轉義序列識別的選項。在連結問題的答案中也提到了這一點:
-公分
此選項可停用 ANSI 顏色變更轉義序列的識別。它將 colorMode 資源設定為“false”。
您透過設定終端資訊所做的是定義終端的功能(根據男子術語訊息)。因此,你所做的相當於告訴ls
他們你確信你可以做某些事情,但這並不意味著他們必須以任何方式尊重它。