botchy hack note

TypeScript、Ruby、Golang とか Macとかの備忘録です.間違いがあるとご指摘くださると嬉しいです.

lsコマンドの出力に色を付ける

lsコマンドの出力結果に色を付ける方法について調べてみました. manコマンドでlsの説明を見ると,どうやらls -Gとすれば色が付くみたいです.

ls -G


と実行した結果がこちら.


f:id:bokken31:20130923163054p:plain


ただ,そのままだと見づらい.... 自分の好きな色にしたいときは環境変数LSCOLORSを変更すれば良いようです. デフォルトは以下のような設定になってます.

LSCOLORS=exfxcxdxbxegedabagacad


順番とアルファベットによってそれぞれの場所に色を設定します. 順番と場所の対応はそれぞれ以下のようになっていて,文字の色,文字の背景の順番に指定します.

順番

順番 場所
1,2 ディレクトリ
3,4 シンボリックリンク
5,6 ソケット
7,8 パイプ
9,10 実行形式
11,12 ブロックスペシャル
13,14 キャラクタスペシャル
15,16 setuid ビットが設定された実行形式
17,18 setgid ビットが設定された実行形式
19,20 他者 が書き込み可能なディレクトリ,スティッキービットが設定あり
21,22 他者 が書き込み可能なディレクトリ,スティッキービットが設定なし


色は次のような対応になってます.

それぞれ,大文字にすると太字になります.

  • a:ブラック
  • b:レッド
  • c:グリーン
  • d:ブラウン
  • e:ブルー
  • f:マゼンタ
  • g:シアン
  • h:ライトグレイ
  • x : デフォルト



例えば,ディレクトリの文字をシアンの太字, 実行可能ファイルをマゼンタの太字にしたければ次のように設定すれば行けます.

export LSCOLORS=GxfxcxdxFxegedabagacad

結果が次のようになります.

f:id:bokken31:20130923171710p:plain

自分好みに改変していくのは楽しそうですね.



起動時から設定する方法

自分のホームディレクトリの.bashrcに以下の二行を追加するだけでOKです.

alias ls='ls -G'
export LSCOLORS=GxfxcxdxFxegedabagacad

すると,起動時にも設定が反映されることになります.