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
- (ファイル名でない)
通常のテキストに使われる色を指定する。
-
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
のバックアップファイル
~
のようなピリオドで始まらない拡張子を指定することができない点に注意すること。
この形式は古いものと考えられている。
最近のカラー表示可能な
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
のデフォルトの定義は、次のようになっている。
ENDCODE
のデフォルトは定義されていない。
dircolors(1),
ls(1),
stty(1),
xterm(1)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。