Terminal
是什麼導致 ls 輸出中出現這種綠色背景?
’ls’ 顯示了兩個目錄。通常,任何地方的目錄都是黑色背景上的藍色。但是第一個是綠色的,無法閱讀。為什麼是這樣?如何使它在黑色上變成藍色,或者至少在黑暗的東西上變成淺色?
這是在 Ubuntu 12.04 上,在 Gnome 終端中使用 bash。在 Konsole 中,藍色稍暗,並且可以閱讀,但可能會更好。
除了根據文件類型(音頻文件為青綠色,檔案和壓縮文件為鮮紅色,圖像和影片為紫色)為文件著色之外,
ls
還根據文件和目錄的屬性為文件和目錄著色:
- 帶有綠色背景的黑色文本表示目錄可以被除所屬使用者和組之外的其他人寫入,並且設置了粘性位 (
o+w, +t
)。- 帶有綠色背景的藍色文本表示目錄可以被除擁有使用者和組之外的其他人寫入,並且沒有設置粘性位 (
o+w, -t
)。Ask Ubuntu上的Stephano Palazzo在不同的屬性顏色上製作了這張非常有啟發性的圖片:
正如terdon指出的,顏色設置可以通過
dircolors
. 可以使用 訪問不同顏色設置的列表dircolors --print-database
。每行輸出,例如
BLK 40;33;01
,格式為:[TARGET] [TEXT_STYLE];[FOREGROUND_COLOR];[BACKGROUND_COLOR]
TARGET
表示著色規則的目標
TEXT_STYLE
表示文字樣式:
00
= 無01
= 粗體04
= 下劃線05
= 眨眼07
=反向,08
= 隱藏
FOREGROUND_COLOR
表示前景色:
30
= 黑色31
= 紅色32
= 綠色33
= 黃色34
= 藍色,35
= 洋紅色36
= 青色37
= 白色
BACKGROUND_COLOR
表示背景顏色:
40
= 黑色41
= 紅色42
= 綠色43
= 黃色44
= 藍色,45
= 洋紅色46
= 青色47
= 白色從右邊開始可以省略欄位,例如
.tar 01;31
表示粗體和紅色。XTerm 和大多數其他現代終端仿真器支持 256 色。
XTerm 256 色前景色程式碼的形式為:
38;5;[FOREGROUND_COLOR]
XTerm 256 色背景顏色程式碼的形式為:
48;5;[BACKGROUND_COLOR]
其中
FOREGROUND_COLOR
和BACKGROUND_COLOR
都是 0-255 範圍內的數字。下面的螢幕截圖顯示了 16 和 256 顏色模式的完整顏色程式碼列表: