Osx

如何在 OS X 和 iTerm2 的終端中更改 ls 命令的輸出顏色?

  • October 28, 2015

我知道有人問過類似的問題:

如何著色 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 就開始工作。

  1. 在這種情況下,“前景”是指將應用的背景突出顯示。例如,第一對的 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 上的工作方式。

引用自:https://unix.stackexchange.com/questions/137339