DIR_COLORS(5) | Linux User Manual | DIR_COLORS(5) |
dir_colors - dircolors(1) の設定ファイル
プログラム ls(1) は、環境変数 LS_COLORS を使い、ファイル名を何色で表示するかを決定する。 この環境変数は、通常
のようなコマンドで設定される。 このコマンドは /etc/profile や /etc/csh.cshrc といったシステムのシェル初期化ファイルにある。 (dircolors(1) を参照すること。) 通常、ここで使われるファイルは /etc/DIR_COLORS であるが、ホームディレクトリの .dir_colors ファイルで上書きすることができる。
設定ファイルは 1 行毎に書かれたステートメントで構成される。 ハッシュマーク (#) が行の始めにある場合や、 ハッシュマークの前に少なくとも 1 つの空白がある場合、 ハッシュマークの後ろはコメントとして扱われる。 空行は無視される。
このファイルの グローバル セクションは、 最初の TERM ステートメントより前にある任意のステートメントからなる。 グローバルセクションにあるステートメントは、 すべての端末タイプについて有効であるとみなされる。 グローバルセクションの次には、 端末固有 セクションが続く。 各端末固有セクションの先頭には、1 つ以上の TERM ステートメントが置かれる。 TERM ステートメントは、その後に続く宣言が適用される (環境変数 TERM で与えられる) 端末タイプを指定する。 グローバル宣言をその後に続く端末固有の宣言で上書きすることが常に可能である。
次のステートメントが認識される。大文字と小文字は区別されない。
最近のカラー表示可能な 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 進数表記の) 任意の文字 |
\_ | スペース |
\\ | バックスラッシュ (\) |
\^ | キャレット (^) |
\# | ハッシュマーク (#) |
ハッシュマークを最初の文字として入力する場合と同様に、 スペース、 バックスラッシュ、 キャレット、任意の制御文字を、文字列の任意の部分に入力するためには、 エスケープが必要であることに注意すること。
このページは fileutils-4.1 パッケージで使われている dir_colors のファイル形式について説明している。 その他のバージョンでは少し違いがあるかも知れない。
ISO 6429 端末で使われる LEFTCODE と RIGHTCODE のデフォルトの定義は、次のようになっている。
LEFTCODE | \e[ |
RIGHTCODE | m |
ENDCODE のデフォルトは定義されていない。
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。
2020-08-13 | GNU |