我知道有人問過類似的問題:
儘管我並不真正理解答案並且無法真正使其發揮作用。
然而,我嘗試過一些不同的東西。我決定閱讀手冊頁ls
,它提到了在處理命令時可以設定的不同環境變數ls
。如果選擇該-G
選項,它會顯示查看CLICOLOR
環境變數。我做了並且那其中一個連結將您連結到環境變數的文檔LSCOLORS
。我去了它,它提到:
「這個變數的值描述了當使用 CLICOLOR 啟用顏色時,哪個屬性使用什麼顏色。這個字串是 fb 格式對的串聯,其中 f 是前景色,b 是背景色。”
它還提到 LSCOLORS 的預設值是“exfxcxdxbxegedabagacad”,並且每個部分指定 ls 命令中某些特定事物的顏色。例如,範例中的第一對 ex 指定目錄的顏色。第二個 fx 符號連結的顏色等... e 表示藍色,x 表示預設「前景」。
1) 首先,這是什麼意思:「當使用 CLICOLOR 啟用顏色時」?
2) 什麼是“前景”意思是?
環境變數必須是什麼,ls
命令才能根據我的需求對輸出進行著色?
我也嘗試過:
ls --color
但它給我帶來了以下錯誤:
ls: illegal option -- - usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
當我這樣做時發生了同樣的錯誤ls --color=auto
:它本身也會引發錯誤。我不知道為什麼,也不確定是否是 iTerm2 或 OS X 導致的,或者為什麼會發生這種情況。似乎它可以在其他系統上運行...
答案1
在試圖回答我自己的問題時,我嘗試了一些不同的事情,這一切都透過實驗解決了。
1)我猜測「啟用CLICOLOR」意味著將其設為1(即true),因為一旦我將該變數設為1,LSCOLOR就開始工作。
2) 在這種情況下,「前景」是指突出顯示它將應用的背景。例如,第一對的 bc 表示它將目錄的字元著色為紅色,而背景/突出顯示將為綠色。例如,如果您的環境變數為:export LSCOLORS="bCfxcxdxbxegedabagacad"
然後執行 ls 顯示如下內容:
顯然,要使其工作, ls 命令必須別名為 ls -G (或每次都執行 ls -G ),並且您必須在 .bashrc 或您使用的任何 shell rc 檔案中包含以下行:
export CLICOLOR=1
export LSCOLORS="gxfxcxdxbxegedabagacad"
現在您可以按照 man ls 檔案指定的方式變更 LSCOLORS。
可能有不同的方法可以實現這一點,但這就是我在 Unix、OS X mavericks 和 iTerm2 上的工作方式。
答案2
運行時替換--color
為.-G
ls