カラフルなlsを使おう
イントロダクション
solaris9のlsは表示に色をつけるオプションがサポートされていない。しかし、大抵の
Linux ディストリビューションに付属するlsは色付けをデフォルトでサポートしたlsを使っている。これはlsのソースコードが違うためにおこる。色のつかないlsはファイルとディレクトリの区別が面倒だ(-Fオプションで少し緩和はできるが)。やはり色によって区別されると、表示されたディレクトリエントリが一体どのようなファイルなのかが一目瞭然に理解できて楽である。ということで、ワークステーションに色づけをサポートしたlsを持ってきて使えるようにしよう。ちなみに、もっとも簡素なlsのソースコードは以下のようになる。
#include<stdio.h> // printf
#include<dirent.h> // DIR, struct dirent
#include<string.h> // strcpy
int main(int argc, char **argv)
{
DIR *dp;
struct dirent *ent;
char path[256];
if (argc < 2)
strcpy(path, ".");
else if (argc < 3)
strcpy(path, argv[1]);
else {
printf("usage %s [path]\n", argv[0]);
return 0;
}
dp =opendir(path);
while ((ent = readdir(dp)) != NULL)
printf("%s\n", ent->d_name);
closedir(dp);
return 0;
}
今回使うのはGNU coreutilsである。UNIX, Linuxを語る上で
GNUの存在は欠かせないトピックの一つである。以下の文献が参考になるだろう。あとで参照するといいと思う。
既に私たちはGNUのソフトウェアの恩恵を受けている。muleはemacsの多言語拡張版である。gccはgnu compiler collectionの略だ
し、gnuplotはまんまgnuのソフトだ(
http://oku.edu.mie-u.ac.jp/~okumura/linux/?gnuplot)。gdbもgnu debuggerだし(ちなみにgdbにはdddというソフトがフロントエンドにある。調べてみるといいかも)、glibというC言語のライブラリもGNUの成果物だ。そのほかにもコンパイラコンパイラであるflexやbisonなどといったソフトがある。
get started
手順1:ソースコードを持って来る
以下のサーバから最新のcoreutilsを入手する。
http://ftp.gnu.org/gnu/coreutils/
lsなどといった基本的なコマンド群は他の主要なコマンドと含めてパッケージとして配布されている。私はls単体のソースを探すことができなかったのでこれを使うとにした。GNUとFSFの話題作りになったからいいということで。ということでcoreutils-6.9.tar.gzをダウンロードしてホームフォルダに保存する。
手順2:圧縮されたファイルを解凍する。
$ tar xvzf coreutils-6.9.tar.gz
手順3:ソースコードのビルドとlsの実行可能ファイルのコピー
今回の目的は色つきのlsを手に入れることである。従って、解凍してできたファイル群をビルドし、lsの実行可能ファイルだけを取り出す。
$ cd coreutils
$ ./configure
$ make
前回はこのあとmake installしたが今回は違う。lsのバイナリをホームフォルダにコピーする。そのまえに、ホームフォルダにbinディレクトリを作っていない場合は作成してPATHを通すのがいい。
$ cd
$ mkdir bin
$ cat >> .bashrc
PATH=~/bin:$PATH
export PATH
^D (コントロール+D)
$ source .bashrc
$ cp coreutils/src/ls ./bin
これで色づけオプションをサポートしたlsを手に入れた。
$ ls --color
各ディレクトリエントリが対応した色になって表示されているはず。オプションをつけるのが面倒なら.bashrcにlsをls --colorの別名として定義すればハッピーかもしれない。
(.bashrc内)
alias ls="ls -F --color"
終了!
最後に
今回やったのは
最終更新:2007年11月13日 11:53