説明
プログラム 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
- 孤立した (存在しないファイルを指している) シンボリックリンクに使われる色を指定する。 指定されない場合、 ls は LINK の色を代わりに使う。
- MISSING color-sequence
- 行方不明のファイル (存在しないにもかかわらず シンボリックリンクが指しているファイル) に使われる色を指定する。 指定されない場合、 ls は FILE の色を代わりに使う。
- 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 は以下をデフォルトとして使う。
NORMAL | 0 | (ファイル名でない) 通常のテキスト |
FILE | 0 | 通常のファイル |
DIR | 32 | ディレクトリ |
LINK | 36 | シンボリックリンク |
ORPHAN | undefined | 孤立したシンボリックリンク |
MISSING | undefined | 行方不明のファイル |
FIFO | 31 | 名前付きパイプ (FIFO) |
SOCK | 33 | ソケット |
BLK | 44;37 | ブロックデバイス |
CHR | 44;37 | キャラクターデバイス |
EXEC | 35 | 実行ファイル |
デフォルトの設定を完全に認識できない端末プログラムも少数存在する。 ディレクトリをリストした後にすべてのテキストがカラー表示されたなら、 NORMAL と FILE のコードを通常の前景色と背景色のための数値コードに変更すること。
その他の端末タイプ (高度な設定)
カラー表示可能 (またはハイライト表示可能) だが、 異なるコードセットを使う端末 (あるいはプリンター!) を持っている場合でも、 それに適した設定を作ることができる。 そのためには、 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 端末で使われる LEFTCODE と RIGHTCODE のデフォルトの定義は、次のようになっている。
-
LEFTCODE \e[ RIGHTCODE m
ENDCODE のデフォルトは定義されていない。
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。