ls
がdircolors
を使用してカラー出力を表示することを理解しています。 dircolors
には、ファイル拡張子に関連付けられた色のデフォルトのデータベースがあり、コマンドで印刷できます
dircolors --print-database
私が読んだman dir_colors
から、システム全体のデータベースは/etc/DIR_COLORS
にあるはずです。しかし、このファイルは私のシステム(Debian)には存在しません。 dircolors
のシステム全体の色設定を変更するにはどうすればよいですか?ファイルが存在しない場合、コマンドdircolors --print-database
はどこから設定を取得しますか。
ユーザーが自分の設定でユーザー固有のファイル~/.dircolors
を持つことができることを知っていますが、これは私には適していません。全員の設定を変更する必要があるためです。
2番目の質問は、dircolorsに8ビットカラーを使用できるかどうかです。私の端末はxterm-256color
です。
ls
は、環境変数LS_COLORS
からカラー設定を取得します。 dircolors
は、この環境変数を生成する便利な方法にすぎません。この環境変数をシステム全体で有効にするには、シェルの起動ファイルに配置します。
bash
の場合、これを/etc/profile
に入れます。
# `dircolors` prints out `LS_COLORS='...'; export LS_COLORS`, so eval'ing
# $(dircolors) effectively sets the LS_COLORS environment variable.
eval "$(dircolors /etc/DIR_COLORS)"
zsh
の場合は、/etc/zshrc
に入れるか、zsh
が起動時に/etc/profile
を読み取るように調整します。あなたのディストリビューションはzsh
ですでにそれをしているかもしれません。真にすべての人のdircolors
の設定は、使用するシェルに依存することを指摘するために、これを取り上げます。
dircolors
がどこから設定を取得するかについては、ファイルを指定しない場合、組み込みのデフォルトを使用するだけです。
Dircolorsファイルではxterm
の256色のエスケープコードを使用できますが、これらはxterm
互換の端末でのみ機能することに注意してください。たとえば、Linuxのテキストコンソールでは機能しません。
256色のエスケープコードの形式は、前景色は38;5;colorN
、背景色は48;5;colorN
です。だから例えば:
.mp3 38;5;160 # Set fg color to color 160
.flac 48;5;240 # Set bg color to color 240
.ogg 38;5;160;48;5;240 # Set fg color 160 *and* bg color 240.
.wav 01;04;05;38;5;160;48;5;240 # Pure madness: make bold (01), underlined (04), blink (05), fg color 160, and bg color 240!
ファイルが存在しない場合、コマンド
dircolors --print-database
はどこから設定を取得しますか。
manual のように、ファイルがない場合はプリコンパイルされたデータベースを使用します。
Fileが指定されている場合、dircolorsはそれを読み取って、どのファイルタイプと拡張子にどの色を使用するかを決定します。それ以外の場合は、プリコンパイルされたデータベースが使用されます。これらのファイルの形式の詳細については、「
dircolors --print-database
」を実行してください。
全員の設定を変更するには、/etc/dircolors
ファイルを作成し、/etc/bashrc
に以下を追加します。
d=/etc/dircolors
test -r $d && eval "$(dircolors $d)"
Linuxはdircolorsを使用してコンソールの背景色を設定します:
Dircolorsファイルは、コンソールのlsを介して表示される単語の色を制御します。これを見つける.dircolors
配布用ファイル、ヘルプへのリンク:
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/profile.html
私のFedora 17では、dircolorsファイルは/etc/DIR_COLORS
コピー/etc/DIR_COLORS
を/home/el/.dircolors
ディレクトリ。存在しない場合は作成してください。
/ home/el/.dircolorsを編集し、「dir」というテキストを探します。
これを変える:
DIR 01;34 # directory
これに:
DIR 01;36 # directory
シェルを保存して閉じ、再起動します。ディレクトリは、黒の濃い青(判読不能)から黒の明るい青緑(判読可能)に変わります。