LSCOLORS環境変数

BSD版(macOSやFreeBSDなど)のlsコマンドのls -Gで表示されるファイル・ディレクトリの色を変更するには、環境変数LSCOLORSを設定する。
CLICOLOR環境変数を設定すると、-Gオプションなしでも自動的に色が有効になる。
ターミナルのテーマによってはデフォルトの色が見づらい。その場合は好みの色に変更するとよい。

$ export LSCOLORS=gxfxcxdxbxegedabagacad
$ ls -G

macOSの場合、LSCOLORSのデフォルト値はexfxcxdxbxegedabagacadah

Linux(GNU版のls)では LS_COLORS という環境変数を使用し、設定形式も異なる。この記事はBSD版(macOS、FreeBSD)のlsコマンドについて説明している。

LSCOLORSの基本構造

LSCOLORSは22文字列で構成され、2文字ずつの11ペアとなっている。(最新macOSでは12ペア24文字のLSCOLORSもサポートされているが、基本的な構造は同じ)

  • 1文字目: Foreground color(文字色)
  • 2文字目: Background color(背景色)

並び順

LSCOLORSの11ペアの並び順は以下の通り。

ペア位置ファイルタイプ
1ディレクトリ
2シンボリックリンク
3ソケット
4パイプ(名前付きパイプ)
5実行可能ファイル
6ブロックデバイス
7キャラクタデバイス
8setuid された実行ファイル
9setgid された実行ファイル
10スティッキービット付き・他者書込可
11スティッキービットなし・他者書込可
12dataless file(最新macOSのみ)

色コード

LSCOLORSで使用できる色コードは以下の通り。

コード
a黒 (black)
b赤 (red)
c緑 (green)
d茶 (brown)
e青 (blue)
f紫 (magenta)
gシアン (cyan)
hライトグレー (light gray)
A黒 (bold black、灰色に見える)
B赤 (bold red)
C緑 (bold green)
D茶 (bold brown、黄色に見える)
E青 (bold blue)
F紫 (bold magenta)
Gシアン (bold cyan)
Hライトグレー (bold light grey)
xデフォルト (default)

設定の永続化

.zshrcや.bashrcなどのシェルの設定ファイルに上記のexport LSCOLORS=...を追加しておくとよい。