web-dev-qa-db-ja.com

dircolors:カラー設定をグローバルに変更

lsdircolorsを使用してカラー出力を表示することを理解しています。 dircolorsには、ファイル拡張子に関連付けられた色のデフォルトのデータベースがあり、コマンドで印刷できます

dircolors --print-database

私が読んだman dir_colorsから、システム全体のデータベースは/etc/DIR_COLORSにあるはずです。しかし、このファイルは私のシステム(Debian)には存在しません。 dircolorsのシステム全体の色設定を変更するにはどうすればよいですか?ファイルが存在しない場合、コマンドdircolors --print-databaseはどこから設定を取得しますか。

ユーザーが自分の設定でユーザー固有のファイル~/.dircolorsを持つことができることを知っていますが、これは私には適していません。全員の設定を変更する必要があるためです。

2番目の質問は、dircolorsに8ビットカラーを使用できるかどうかです。私の端末はxterm-256colorです。

43
user1968963

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!
40
Matt

ファイルが存在しない場合、コマンドdircolors --print-databaseはどこから設定を取得しますか。

manual のように、ファイルがない場合はプリコンパイルされたデータベースを使用します。

Fileが指定されている場合、dircolorsはそれを読み取って、どのファイルタイプと拡張子にどの色を使用するかを決定します。それ以外の場合は、プリコンパイルされたデータベースが使用されます。これらのファイルの形式の詳細については、「dircolors --print-database」を実行してください。

全員の設定を変更するには、/etc/dircolorsファイルを作成し、/etc/bashrcに以下を追加します。

d=/etc/dircolors
test -r $d && eval "$(dircolors $d)"
9
devnull

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

シェルを保存して閉じ、再起動します。ディレクトリは、黒の濃い青(判読不能)から黒の明るい青緑(判読可能)に変わります。

8
Eric Leschinski