Tips記事
» 2001年12月12日 00時00分 UPDATE

ls実行時に表示される配色を変更したい

[木田佳克,ITmedia]

 Linuxディストリビューションの多くでは,ディレクトリやファイルを表示させるlsコマンドを実行した際,次のように属性によって色分け表示される。

画面
このようにディレクトリやファイルが色分けして表示される。自分好みの配色であればよいのだが…

 まず最初に現在の設定を見る場合には,環境変数「$LS_COLORS」を見てみよう。

$ echo $LS_COLORS
no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=
40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:
ex=01;32:.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=
01;32:*.bat=01;32:.sh=01;32:*.csh=01;32:*.tar=01;31:
*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=
01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:
*.bz=01;31:*.tz=01;31:*.rpm=01;31:.cpio=01;31:*.jpg=
01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35: *.xpm=
01;35:*.png=01;35:*.tif=01;35:

※実際には改行なく表示される

 上記リストからは,それぞれの意味が分からなければ次に進めないというわけではない。このような表示になるとだけ覚えておこう。

 配色を変えたい場合には,次のように設定を編集すればよい。次に挙げる設定ファイル「/etc/DIR_COLORS」は,全ユーザーに関わるものだ。個々のユーザーで変更したい場合の設定は後述しよう。

# vi /etc/DIR_COLORS

# Configuration file for the color ls utility # This file goes in the /etc directory, and must be world readable.
# You can copy this file to .dir_colors in your $HOME directory to override
# the system defaults.

# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not
# pipes. 'all' adds color characters to all output. 'none' shuts colorization
# off.
COLOR tty

# Extra command line options for ls go here.
# Basically these ones are:
#-F = show '/' for dirs, '*' for executables, etc.
#-T 0 = don't trust tab spacing when formatting ls output.
OPTIONS -F -T 0

# Below, there should be one TERM entry for each termtype that is colorizable
TERM linux
TERM console
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cons25
TERM xterm
TERM rxvt
TERM xterm-color
TERM color-xterm
TERM vt100
TERM dtterm
TERM color_xterm

# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output)
EIGHTBIT 1

# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
NORMAL 00 # global default, although everything should be something.
FILE 00 # normal file
DIR 01;34 # directory
LINK 01;36# symbolic link
FIFO 40;33# pipe
SOCK 01;35# socket
BLK 40;33;01# block device driver
CHR 40;33;01# character device driver
ORPHAN 01;05;37;41# orphaned syminks
MISSING 01;05;37;41 # ... and the files they point to

# This is for files with execute permission:
EXEC 01;32

# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
.cmd 01;32 # executables (bright green)
.exe 01;32
.com 01;32
.btm 01;32
.bat 01;32
.sh01;32
.csh 01;32
.tar 01;31 # archives or compressed (bright red)
.tgz 01;31
.arj 01;31
.taz 01;31
.lzh 01;31
.zip 01;31
.z 01;31
.Z 01;31
.gz01;31
.bz2 01;31
.bz01;31
.tz01;31
.rpm 01;31
.cpio 01;31
.jpg 01;35 # image formats
.gif 01;35
.bmp 01;35
.xbm 01;35
.xpm 01;35
.png 01;35
.tif 01;35

 長いリストにうんざりとしてしまったかもしれない。しかし,ここでは配色を変更することだけに焦点を当てているため,書式フォーマットさえ覚えてしまえば難しいことはない。

 上記リストの中で,例として次の2つを挙げてみた。「DIR」はディレクトリの配色を決めているもので「01;34」と書かれている。これは,01が「明るくする」,34が「青色文字」という意味になっている。「.sh」の拡張子を持つファイルは,32として「緑色文字」が定義されている。

DIR 01;34
.sh01;32

 ほかにも色指定は多数あるため,次の表を参考にして自分で変更してみるとよいだろう。また,色だけでなく前述の1段階明るい色にしたり,点滅させるといった指定も可能だ。好みに応じて設定してみてほしい。

■エスケープ指定
指定番号 内  容 指定番号 内  容
00 標準色 37 白色文字
01 明るくする 40 バックを黒
04 下線を引く 41 バックを赤
05 点滅させる 42 バックを緑
30 黒色文字 43 バックを黄
31 赤色文字 44 バックを青
32 緑色文字 45 バックを紫
33 黄色文字 46 バックを水色
34 青色文字 47 バックを白
35 紫色文字
36 水色文字

 個々のユーザーで配色を変えるには,次のように「~/.dir_color」ファイルを編集すればよい(環境によっては新規作成する必要がある)。

$ vi .dir_colors

 また,編集後には次のように設定を有効にさせる必要がある。もしも~/.dir_colorsファイルが存在しなかった場合には,/etc/DIR_COLORSを.dir_colorとしてコピーすればよい。

$ eval 'dircolors .dir_colors -b'

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ