如何在 OS X 和 iTerm2 的終端中更改 ls 命令的輸出顏色?
我知道有人問過類似的問題:
儘管我並沒有真正理解答案,也無法真正讓它發揮作用。
但是,我嘗試了一些不同的東西。我決定閱讀手冊頁,它提到了在處理命令
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)我猜測“啟用 CLICOLOR”意味著將其設置為 1(即 true),因為一旦我將該變數設置為 1,LSCOLOR 就開始工作。
- 在這種情況下,“前景”是指將應用的背景突出顯示。例如,第一對的 bc 意味著它將為目錄的字元著色為紅色,而背景/突出顯示為綠色。例如,如果您的環境變數為: export LSCOLORS=“bCfxcxdxbxegedabagacad”
然後執行 ls 顯示如下:
顯然,要使其正常工作,必須將 ls 命令別名為 ls -G (或每次都執行 ls -G ),並且您必須在 .bashrc 或您使用的任何 shell rc 文件中包含以下行:
export CLICOLOR=1 export LSCOLORS="gxfxcxdxbxegedabagacad"
現在,您可以按照 man ls 文件的指定更改 LSCOLORS。
可能有不同的方法可以完成這項工作,但這就是我在 iTerm2 上的 OS X 小牛隊中的 Unix 上的工作方式。