Macでlsコマンドの出力結果の文字色を変更する

今回もMacの小ネタ。
Macのターミナルでlsコマンドを使うと、ディレクトリに色を塗ってくれますが、背景色との組み合わせによっては見辛いことがあります。
(具体的に言えば、黒背景で使っている時の通常ディレクトリの青は見辛いです)

これらの色は、 LSCOLORS という環境変数に適切に値を設定することで変更可能です。
設定内容は、 ls コマンドのマニュアル内で検索すると出てきます。

$ man ls
で、マニュアルを開いて、
/LSCOLORS
で検索しましょう。

自分のMacで実行した時の該当部分を載せておきます。

LSCOLORS The value of this variable describes what color to use for which attribute when col-
ors are enabled with CLICOLOR. This string is a concatenation of pairs of the format
fb, where f is the foreground color and b is the background color.

The color designators are as follows:

a black
b red
c green
d brown
e blue
f magenta
g cyan
h light grey
A bold black, usually shows up as dark grey
B bold red
C bold green
D bold brown, usually shows up as yellow
E bold blue
F bold magenta
G bold cyan
H bold light grey; looks like bright white
x default foreground or background

Note that the above are standard ANSI colors. The actual display may differ depend-
ing on the color capabilities of the terminal in use.

The order of the attributes are as follows:

1. directory
2. symbolic link
3. socket
4. pipe
5. executable
6. block special
7. character special
8. executable with setuid bit set
9. executable with setgid bit set
10. directory writable to others, with sticky bit
11. directory writable to others, without sticky bit

The default is “exfxcxdxbxegedabagacad”, i.e. blue foreground and default background
for regular directories, black foreground and red background for setuid executables,
etc.

初期設定はこれです。
exfxcxdxbxegedabagacad

この22文字が、2文字ずつ”文字色””背景色”のペアになっていて、マニュアル中の11種類に対応しています。
最初の ex が directory の配色で、 blue の文字と、デフォルトの背景色です。

これが読みにくいので、 g : cyan あたりに変更するには、
gxfxcxdxbxegedabagacad と設定すれば大丈夫です。

.bash_profile に以下のように設定しておきましょう。


export LSCOLORS=gxfxcxdxbxegedabagacad

濃い青が明るい水色になって(僕の環境では)とても読みやすくなります。

Note that the above are standard ANSI colors. The actual display may differ depending on the color capabilities of the terminal in use.
と注意されている通り、環境によって色は違うので設定を変更するときは試しながら行うことをお勧めします。
例えば今の僕の環境では d : brown は黄色いです。