2006年10月17日

カラフル端末で視認性を高める - ls編

はてなブックマークに登録

ターミナルがあればご飯三杯いけるぐらいのCUI大好きっ子なんですが、ターミナルの画面はモノトーンで殺風景なのでどうも色気がありません。

色気はさておき、逆説的ですがモノトーンのターミナルで色を使うと、視認性がグッと上がります。

というわけで、今回から数回にわけて、ターミナルの中で色を効果的に使い、いかに色気を出すか、もとい、視認性を高める方法を紹介します。

第1回は ls (GNU coreutilsのls-5.2.1) を取り上げます。

$ ls -F
broken-symlink@ directory/ file file.orig write-blog.todo
ddl.sql executable* file.bak symlink@

GNU coreutilsに含まれるlsは、ファイルやディレクトリに色をつけることができます。Linuxでコンソールログインするとそうなるので、多くの人がご存じのことだと思います。

Debian (sarge) だとこんなしかけでカラー化が有効になっています。


  • シェルの初期化ファイル (bashrcやbash_profile) でdircolorsの結果をevalする。
  • dircolorsは、カラー化に必要な環境変数を出力する。
  • それをevalして環境変数をセットする。
  • lsは、--colorオプションが指定された場合に、環境変数に応じてカラー化した出力をする。


なので、色をカスタマイズするにはdircolorsがセットする環境変数を変更します。

詳しい使い方や書式は

  • ls(1)
  • dircolors(1)
  • DIR_COLORS(5)

あたりのmanやinfoを見ていただくとして、ユーザ毎に色をカスタマイズするには、自分用の定義ファイルを用意してそれをdircolorsに読み込ませればOKです。

いちから定義ファイルを作るのは大変なので、雛形を元に変更していきましょう。
$ dircolors -p > ~/.dir_colors


定義ファイルができたら、シェルの起動時にそれを読むようにします。~/.bash_profileなどに以下のようなコードを追加すればよいでしょう。
if [ "$TERM" != "dumb" -a -r $HOME/.dir_colors ]; then
eval "`dircolors -b ~/.dir_colors`"
alias ls='ls --color=auto'
fi


種類別のカラー化



これで、lsしたときにディレクトリが青色で実行ビットが立っているファイルは緑色で表示されるようになるはずです。

たとえばこれを、

  • ディレクトリは緑
  • 実行ファイルは太字の赤
  • 参照先が存在しないシンボリックリンクは赤地に太字の水色

にしたい場合は、~/.dir_colorsを以下のように変更してdircolorsコマンドで環境変数を再設定します。

-DIR 01;34
+DIR 00;32

-EXEC 01;32
+EXEC 01;31

-ORPHAN 40;31;01
+ORPHAN 41;36;01


lsの-Fオプションでディレクトリや実行ファイルにはマークをつけて見た目に区別することができますが、ぱっと見たときの視認性の高さはカラー化には及ばないでしょう。

また、参照先がないシンボリックリンクは探そうと思わなければ見つけられないので、カラー化で目立つようにしておくととてもとても有益だと思います。


拡張子別のカラー化



lsは拡張子別にもカラー化できます。

デフォルトでは圧縮ファイルや画像の類いの拡張子をもつファイルには色がつきますが、~/.dir_colorsに書けばこのほかの拡張子のファイルにも色を付けることができます。

例えば、

  • *.sqlは太字の黄
  • *.origと*.bakは白地に黒
  • *.todoは赤地に黄

にするには、~/.dir_colorsに以下を追加します。
.sql  01;33
.orig 47;30
.bak 47;30
.todo 04;33;41


拡張子といってもドット以降の文字列ならなんでもカラー化のキーにできるので、*.todoのようにちょっとしたToDoやメモを書き込んだファイルを目立たせるのに便利かもしれませんね。
klab_gijutsu2 at 14:12│Comments(0)TrackBack(0)tool 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Blog内検索
Archives
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント