kazmax - Linux で自宅サーバー

dir_colors - ファイルのフォーマットと規約の説明 - Linux コマンド集 一覧表

  1. 名前
  2. 説明
  3. ISO 6429 (ANSI) カラーシーケンス
  4. その他の端末タイプ (高度な設定)
  5. エスケープシーケンス
  6. 注意
  7. 関連項目
  8. ファイル
  9. 注意

名前

dir_colors - 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
(ファイル名でない) 通常のテキストに使われる色を指定する。
FILE color-sequence
通常のファイルに使われる色を指定する。
DIR color-sequence
ディレクトリに使われる色を指定する。
LINK color-sequence
シンボリックリンクに使われる色を指定する。
ORPHAN color-sequence
孤立した (存在しないファイルを指している) シンボリックリンクに使われる色を指定する。 指定されない場合、 lsLINK の色を代わりに使う。
MISSING color-sequence
行方不明のファイル (存在しないにもかかわらず シンボリックリンクが指しているファイル) に使われる色を指定する。 指定されない場合、 lsFILE の色を代わりに使う。
FIFO color-sequence
FIFO (名前付きパイプ) に使われる色を指定する。
SOCK color-sequence
ソケットに使われる色を指定する。
DOOR color-sequence
(file-utils 4.1 以降でサポートされる) door (Solaris 2.5 以降) で使われる色を指定する。
BLK color-sequence
ブロックデバイススペシャルファイルに使われる色を指定する。
CHR color-sequence
キャラクターデバイススペシャルファイルに使われる色を指定する。
EXEC color-sequence
実行属性が設定されているファイルに使われる色を設定する。
LEFTCODE color-sequence
ISO6429 端末 (下記参照) 以外で "left code" に使われる色を指定する。
RIGHTCODE color-sequence
ISO6429 端末 (下記参照) 以外で "right code" に使われる色を指定する。
ENDCODE color-sequence
ISO6429 端末 (下記参照) 以外で "end code" に使われる色を指定する。
*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   未定義  孤立したシンボリックリンク
MISSING  未定義  行方不明のファイル
FIFO     31      名前付きパイプ (FIFO)
SOCK     33      ソケット
BLK      44;37   ブロックデバイス
CHR      44;37   キャラクターデバイス
EXEC     35      実行ファイル


デフォルトの設定を完全に認識できない端末プログラムも少数存在する。 ディレクトリをリストした後にすべてのテキストがカラー表示されたなら、 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 進数表記の) 任意の文字
\_      スペース
\\      バックスラッシュ (\)
\^      キャレット (^)
\#      ハッシュマーク (#)


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

注意

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

LEFTCODE  \e[
RIGHTCODE m


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

関連項目

  dircolors (1),   ls (1),   stty (1),  xterm (1)

ファイル

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

注意

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