dir_colors(5) dircolors(1) の設定ファイル

説明

プログラム ls(1) は、環境変数 LS_COLORS を使い、ファイル名を何色で表示するかを決定する。 この環境変数は、通常

eval `dircolors some_path/dir_colors`

のようなコマンドで設定される。 このコマンドは /etc/profile/etc/csh.cshrc といったシステムのシェル初期化ファイルにある。 (dircolors(1) を参照すること。) 通常、ここで使われるファイルは /etc/DIR_COLORS であるが、ホームディレクトリの .dir_colors ファイルで上書きすることができる。

設定ファイルは 1 行毎に書かれたステートメントで構成される。 ハッシュマーク (#) が行の始めにある場合や、 ハッシュマークの前に少なくとも 1 つの空白がある場合、 ハッシュマークの後ろはコメントとして扱われる。 空行は無視される。

このファイルの グローバル セクションは、 最初の TERM ステートメントより前にある任意のステートメントからなる。 グローバルセクションにあるステートメントは、 すべての端末タイプについて有効であるとみなされる。 グローバルセクションの次には、 端末固有 セクションが続く。 各端末固有セクションの先頭には、1 つ以上の TERM ステートメントが置かれる。 TERM ステートメントは、その後に続く宣言が適用される (環境変数 TERM で与えられる) 端末タイプを指定する。 グローバル宣言をその後に続く端末固有の宣言で上書きすることが常に可能である。

次のステートメントが認識される。大文字と小文字は区別されない。

TERM terminal-type
端末固有セクションを開始し、どの端末に適用するかを指定する。 複数の端末タイプに適用するため、複数の TERM ステートメントを使うことができる。
COLOR yes|all|no|none|tty
(Slackware のみ; GNU dircolors(1) では無視される。) カラー表示を常に有効にするのか (yes または all)、 常に無効にするのか (no または none)、 出力先が端末の場合にのみ有効にするのか (tty) を指定する。 デフォルトは no である。
EIGHTBIT yes|no
(Slackware のみ; GNU dircolors(1) では無視される。) デフォルトで 8 ビットの ISO 8859 文字を有効にするかを指定する。 互換性のため、1 で yes を、0 で no を指定することができる。 デフォルトは no である。
OPTIONS options
(Slackware のみ; GNU dircolors(1) では無視される。) コマンドラインオプションをデフォルトの ls コマンドラインに追加する。 このオプションには、すべての有効な ls のコマンドラインオプションを指定できる。 オプションの前にはマイナス記号を置かなければならない。 dircolors がオプションの有効性を検証しない点に注意すること。
NORMAL color-sequence
(ファイル名でない) 通常のテキストに使われる色を指定する。

NORM の同義語。

FILE color-sequence
通常のファイルに使われる色を指定する。
DIR color-sequence
ディレクトリに使われる色を指定する。
LINK color-sequence
シンボリックリンクに使われる色を指定する。

LNK, SYMLINK の同義語。

ORPHAN color-sequence
孤立した (存在しないファイルを指している) シンボリックリンクに使われる色を指定する。 指定されない場合、 lsLINK の色を代わりに使う。
MISSING color-sequence
行方不明のファイル (存在しないにもかかわらず シンボリックリンクが指しているファイル) に使われる色を指定する。 指定されない場合、 lsFILE の色を代わりに使う。
FIFO color-sequence
FIFO (名前付きパイプ) に使われる色を指定する。

PIPE の同義語。

SOCK color-sequence
ソケットに使われる色を指定する。
DOOR color-sequence
(fileutils 4.1 以降でサポートされる) door (Solaris 2.5 以降) で使われる色を指定する。
BLK color-sequence
ブロックデバイススペシャルファイルに使われる色を指定する。

BLOCK の同義語。

CHR color-sequence
キャラクターデバイススペシャルファイルに使われる色を指定する。

CHAR の同義語。

EXEC color-sequence
実行属性が設定されているファイルに使われる色を設定する。
SUID color-sequence
set-user-ID 属性が設定されているファイルに使われる色を設定する。

SETUID の同義語。

SGID color-sequence
set-group-ID 属性が設定されているファイルに使われる色を設定する。

SETGID の同義語。

STICKY color-sequence
sticky 属性が設定されているディレクトリに使われる色を設定する。
STICKY_OTHER_WRITABLE color-sequence
実行属性が設定されている他人が書き込み可能なディレクトリに使われる色を設定する。

OWT の同義語。

OTHER_WRITABLE color-sequence
実行属性が設定されていない他人が書き込み可能なディレクトリに使われる色を設定する。

OWR の同義語。

LEFTCODE color-sequence
ISO 6429 端末 (下記参照) 以外で left code に使われる色を指定する。

LEFT の同義語。

RIGHTCODE color-sequence
ISO 6429 端末 (下記参照) 以外で right code に使われる色を指定する。

RIGHT の同義語。

ENDCODE color-sequence
ISO 6429 端末 (下記参照) 以外で end code に使われる色を指定する。

END の同義語。

*extension color-sequence
extension で終るすべてのファイルに使われる色を指定する。

 .extension color-sequence
*.extension と同じ。 extension で終るすべてのファイルに使われる色を指定する。 ピリオドは拡張子に含まれ、 emacs のバックアップファイル ~ のようなピリオドで始まらない拡張子を指定することができない点に注意すること。 この形式は古いものと考えられている。

ISO 6429 (ANSI) カラーシーケンス

最近のカラー表示可能な ASCII 端末の大部分は、 ISO 6429 (ANSI) カラーシーケンスを用いる。 xterm や広く使われている DEC VT100 クローンを含む カラー表示できない一般的な端末の多くは、 ISO 6429 カラーコードを認識し、出力から実害なく削除するか、エミュレートする。 ls は、カラー表示が有効であることを仮定し、ISO 6429 コードをデフォルトで使う。

ISO 6429 カラーシーケンスは、セミコロンで区切られた数字のシーケンスで作られる。 最も一般的なコードを示す。


 0
デフォルトカラーを復元

 1
より明るい色

 4
下線付きのテキスト

 5
点滅するテキスト
30文字表示色:黒
31文字表示色:赤
32文字表示色:緑
33文字表示色:黄 (または茶)
34文字表示色:青
35文字表示色:紫
36文字表示色:シアン
37文字表示色:白 (またはグレー)
40背景色:黒
41背景色:赤
42背景色:緑
43背景色:黄 (または茶)
44背景色:青
45背景色:紫
46背景色:シアン
47背景色:白 (またはグレー)

システムと表示デバイスによっては、動作しないコマンドもある。

ls は以下をデフォルトとして使う。

NORMAL0 (ファイル名でない) 通常のテキスト
FILE0 通常のファイル
DIR32 ディレクトリ
LINK36 シンボリックリンク
ORPHANundefined孤立したシンボリックリンク
MISSINGundefined行方不明のファイル
FIFO31 名前付きパイプ (FIFO)
SOCK33 ソケット
BLK44;37 ブロックデバイス
CHR44;37 キャラクターデバイス
EXEC35 実行ファイル

デフォルトの設定を完全に認識できない端末プログラムも少数存在する。 ディレクトリをリストした後にすべてのテキストがカラー表示されたなら、 NORMALFILE のコードを通常の前景色と背景色のための数値コードに変更すること。

その他の端末タイプ (高度な設定)

カラー表示可能 (またはハイライト表示可能) だが、 異なるコードセットを使う端末 (あるいはプリンター!) を持っている場合でも、 それに適した設定を作ることができる。 そのためには、 LEFTCODE, RIGHTCODE, ENDCODE 定義を使う必要がある。

ファイル名を出力する場合、 ls は " LEFTCODE typecode RIGHTCODE filename ENDCODE " という出力シーケンスを生成する。 ここで、 typecode はファイルのタイプや名前に依存したカラーシーケンスである。 ENDCODE が未定義の場合、シーケンス LEFTCODE NORMAL RIGHTCODE が代わりに使われる。 leftcode と rightcode の目的は、単に必要な打ち込む回数を減らす (さらに、見苦しいエスケープコードをユーザーに隠す) ことにある。 シーケンスがその端末にとって適切でない場合、 行内のそれぞれのキーワード自身を指定して削除することができる。

注意: ENDCODE が設定ファイルのグローバルセクションで定義されている場合、 ファイルの端末固有セクションで未定義にすることは できない。 これは、 NORMAL の定義が何も影響を及ぼさないことを意味する。 しかし、異なった ENDCODE を指定することで同じ効果を得ることができる。

エスケープシーケンス

カラーシーケンスやファイル名の拡張子で制御文字やブランク文字を指定するために、 C 言語スタイルの \ エスケープ表記と stty スタイルの ^ 表記の両方を使うことができる。 C 言語スタイルの表記には以下の文字が含まれる。

\aベル (ASCII 7)
\bバックスペース (ASCII 8)
\eエスケープ (ASCII 27)
\f改ページ (ASCII 12)
\n改行 (ASCII 10)
\r復帰 (ASCII 13)
\tタブ (ASCII 9)
\v垂直タブ (ASCII 11)
\?削除 (ASCII 127)
\nnn(8 進数表記の) 任意の文字
\xnnn(16 進数表記の) 任意の文字
\_スペース
\\バックスラッシュ (\)
\^キャレット (^)
\#ハッシュマーク (#)

ハッシュマークを最初の文字として入力する場合と同様に、 スペース、 バックスラッシュ、 キャレット、任意の制御文字を、文字列の任意の部分に入力するためには、 エスケープが必要であることに注意すること。

ファイル

/etc/DIR_COLORS
システム全体の設定ファイル。
~/.dir_colors
ユーザー毎の設定ファイル。

このページは fileutils-4.1 パッケージで使われている dir_colors のファイル形式について説明している。 その他のバージョンでは少し違いがあるかも知れない。

注意

ISO 6429 端末で使われる LEFTCODERIGHTCODE のデフォルトの定義は、次のようになっている。

LEFTCODE\e[
RIGHTCODEm

ENDCODE のデフォルトは定義されていない。

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。