昨天突然心血來潮想到來替 ls 上個顏色。以前用 Linux 時都有很漂亮的 ls 輸出,除此之外也會認真打造個人的 shell 環境。怎知開始用 Mac 兩年多來,都忘記來把 shell 好好調教一番,幾乎一直維持著原汁原味。
是說原本預設的也夠我用了就是,不過有個多采多姿的 ls 輸出不僅能提昇工作效率,光看著心情也會好起來。
開啟顏色輸出
在 Linux 要開啟顏色輸出是透過 ls --color
指令。而在 Mac 或 BSD 上則是使用 ls -G
。
當然,每次都加這參數也是麻煩。寫程式的都是懶人,所以我在 ~/.bashrc
檔案中加入下面這行設定:
1
|
|
要說明一下的是,上面的設定除了開啟顏色輸出外,還加了 -F
這個能夠在 ls 輸出中加入識別符號的參數。像是目錄的名字後面會加上 ‘/’, 可執行檔會加上 ‘*’, 符號連結 (symbolic link) 會加上 ‘@’ 等等。
顏色的指定
關於顏色的指定,Linux 使用 LS_COLORS
環境變數,BSD 則是使用 LSCOLORS
。兩者的設定方式也不同,這部份網路上資料很好找,就不贅述。
直接說結果,我所使用的顏色組合如下:
1
|
|
將這行加入 ~/.bash_profile
就可以享受美美的 ls 了。這個配色設定是從 LSCOLORS=gxfxbEaEBxxEhEhBaDaCaD 這網頁參考來的。
附帶一提,Mac 或 BSD 的 LSCOLORS
參數只能指定預設檔案類型的顏色,比較常見的類型只有檔案、可執行檔、符號連結三種。Linux 的 LS_COLORS
除了上述這些之外,還可以針對附檔名作指定,像是把 .zip .rar .tgz 等壓縮檔設成黃色;然後 .avi .m4v .mov 等影片檔設成洋紅色之類的。
補充資訊
- BSD 下還有一個環境變數
CLICOLOR
, 在~/.bash_profile
中加入export CLICOLOR=1
可以得到跟ls -G
一樣的效果。 - 如果想要自己配色的,LSCOLORS Generator 這個網頁提供了一個方便的配色小工具。
- 喜歡 Solarized 的話,seebi/dircolors-solarized 是一個將 Solarized 延伸到 ls color 的專案。可惜只適用在 GNU ls, 也就是 Linux 系統上的 ls。
- 如果你無論如何也想在 Mac 上看到壓縮檔、影片檔、音樂檔等不同類型檔案也有不同顏色,或是想要使用上面提到的 Solarized ls 配色,那麼可以考慮安裝 Coreutils - GNU core utilities 這套件。