ECサイト基本システム

Linuxでlsコマンドに色をつける方法

RHEL5 に teraterm などでログインしてlsコマンドを叩くと、デフォルトの環境ではディレクトリが青字、リンボリックリンクが水色、シェルなどは緑色で表示されると思いますが、なぜかaliasでコマンドをカスタマイズすると、このディレクトリやリンクなどの色分けがされなくなってしまうという現象に悩まされました。

…実際は悩むほどではなく、なんで色分けされなくなってるんだろうな~、くらいでしたが(笑)

ちなみに、lsコマンドに対しては

alias ls='ls -F'

とやっていただけ。環境変数の LS_COLORS には手を加えていないし、/etc/DIR_COLORS にも手を加えていない。もちろん、~/.dir_color も手を加えていない…どころか、作成すらしていないし。

うーん、じゃあ誰がどこでどうやって色を無効にしているんだ…。

と思って、何気なく which コマンドを試してみたら…。

$ which ls
alias ls='ls -F'
        /bin/ls

おや、which コマンドってエイリアスも表示されるんだ。知らなかった。んじゃログイン直後はどうなっているんだろう。

$ which ls
alias ls='ls --color=tty'
        /bin/ls

なんと、パラメータで指定されていたようで。

ということで、試しに

alias ls='ls -F --color=tty'

としてみたら、ちゃんと色分けされつつも、ディレクトリ記号「/」やシンボリックリンク記号「@」などが表示されました。

Fedora や Debian などでも color パラメータは使えたけど、AIX や Solaris などの UNIX では使えませんでした。Linux系のls固有のオプションなのかな。

またひとつ勉強になりました。

スポンサーリンク

この記事をシェア

アカウントをフォロー