恥は/dev/nullへ by 初心者

プログラミング素人がのろのろと学んだことをつづっています♪

lsの出力内容の色を変更する

ターミナルを開いてlsコマンドを使う時、ディレクトリの文字色が微妙に見づらいと感じました。そこで、色を変更する方法を調べてみました。

目次


.bashrcでLS_COLORSを設定する場合

たとえば、.bashrcに

export LS_COLORS='di=01;96'

と記述します。diはディレクトリ、01はBold体、96はターコイズを表しています。

.bashrcの編集が終わったら、ターミナルを閉じて、もう一度起動します(もしくは sourceコマンドで.bashrcを読み込みます)。

それから「ls --color=auto」を実行すると、ディレクトリの名前が「色はターコイズ、スタイルは太字」で表示されます。ただ、毎回 --color=auto を入力するのは手間なので、.bashrcにaliasを設定しておいた方が良いです。

alias ls='ls --color=auto'


ついでに、実行属性の付いたファイルを「色は明るい緑、スタイルは普通」にする場合、少し追記して以下のようにします。

export LS_COLORS='di=01;96:ex=00;92'

exは実行属性の付いたファイル、00はDefault、92は明るい緑です。


略語や番号の意味

diやex等の略語、色やスタイルに割り当てられている番号に関しては次のサイトの説明が参考になりました。

LS_COLORSの各項目の意味 - Qiita


このサイトによると「di」「ex」などはGNU coreutilsのソース(ls.cというファイル)に記述されているそうです。一部を以下に引用しておきます。

fi: File
di: Directory
ln: Symlink
pi: Pipe
so: Socket
bd: Block device
cd: Char device
mi: Missing file
or: Orphaned symlink
ex: Executable
do: Door
su: setuid
sg: setgid
st: sticky
ow: other-writable
tw: ow w/ sticky


上記サイトに載っていた色やスタイルの番号も引用しておきます。

# 色
30  Black
31  Red
32  Green
33  Orange
34  Blue
35  Purple
36  Cyan
37  Grey
90  Dark grey
91  Light red
92  Light green
93  Yellow
94  Light blue
95  Light purple
96  Turquoise
97  White

# 背景色
40  Black background
41  Red background
42  Green background
43  Orange background
44  Blue background
45  Purple background
46  Cyan background
47  Grey background
100 Dark grey background
101 Light red background
102 Light green background
103 Yellow background
104 Light blue background
105 Light purple background
106 Turquoise background
107 White background

# スタイル
00  Default colour
01  Bold
04  Underlined
05  Flashing text
07  Reversetd
08  Concealed


.colorrcでLS_COLORSを設定する場合

他に.colorrcを使った設定方法もあるようです。これについては以下のサイトが参考になります。

サーバ環境セットアップ|lsコマンドで表示される文字カラーを変更


このサイトを読みdircolors -pコマンドから.colorrcファイルを出力してみたところ、かなり細かく色設定ができるのだなと感じました。たとえば、「.tarファイルにはこの色、.pngファイルにはこの色」といった風に、拡張子ごとに色を設定することができそうです。ただ、私はそこまで頑張る気力がないのでやっていません(汗)。