Home

技術系のメモと日々の雑感

ls のデフォルト配色設定の変更

いつも Teraterm の背景を黒に設定しているんだけど、これだと ls のディレクトリの色が見にくいのはよく知られた話。
でも、ずっと設定を変えずに使っていた。
アカウントごとに設定を変える方法はすぐに見つかるけど、システム全体のデフォルト設定を変える方法がよく分からなかったからだ。
で、こないだふと手持ち無沙汰になることがあったので、暇つぶしに調べてみることにした。
環境は CentOS 5.2 で、Teraterm のバージョンは 4.61。
/etc/DIR_COLORS を変更してもコンソールの設定が変わるだけで Teraterm の表示に変化がないのは過去の経験で知っていた。
そこで、試しに /etc/DIR_COLORS をリネームしてみると、Teraterm 側は変わらず、コンソール側は環境変数 LS_COLORS が設定されなくなって、色付けされてない状態(すべて白)になった。
ということは、それぞれ別々に設定を持っているわけか。
そして、ここで set の出力を眺めているうちに謎が解けた。
COLORS という環境変数に /etc/DIR_COLORS.xterm という値がセットされていて、これで参照する設定ファイルを決めているらしい。
Teraterm の場合はこっちを変更しないといけないんだね。
今までこのファイルの存在に気づかなかったのは何でだろ。
念のためコンソールでログインしたら、予想通り COLORS に /etc/DIR_COLORS がセットされていた。
ここまで分かればあとは簡単。
/etc/DIR_COLORS.xterm の

DIR 00;34    # directory

の行を

DIR 01;34    # directory

といった設定に変更すればいい。
で、ここでひとつひらめいた。
/etc/DIR_COLORS.xterm は、名前の通り xterm とかの白背景に合わせて設定されていて、逆に /etc/DIR_COLORS は黒背景のコンソールで見やすいように設定されているわけだから、Teraterm も黒背景で使っているなら /etc/DIR_COLORS の設定をそのまま流用してしまえばいいじゃないかと・・・。
つまり

cp /etc/DIR_COLORS.xterm /etc/DIR_COLORS.xterm.default
cp -f /etc/DIR_COLORS /etc/DIR_COLORS.xterm

という風に設定をコピーしてしまうわけだ。(1行目はバックアップ)
しっかし、我ながらものぐさモード全開だな〜。
さらにもうひとつおまけ&備忘用のメモ。
上の設定は自分が管理するサーバでしかできないけど、そうじゃない場合に手っ取り早く配色を変更したいときは

export LS_COLORS='di=01;34'

これだけでいける。(未指定のファイルタイプにはデフォルトの値がセットされる)
アカウントごとの設定を真面目にやろうとすると、~/.dir_colors を作って

eval `dircolors ~/.dir_colors -b`

を叩かないといけないから、LS_COLORS を直接変更する方が簡単だ。

この記事に対するトラックバック

この記事のトラックバックURL

この記事に対するコメント

承認待ちコメント

このコメントは管理者の承認待ちです

  • 投稿者: -
  • 2011/02/27 16:49:58
  • [編集]

この記事にコメントする

管理者にだけ表示を許可する