dircolors:色設定をグローバルに変更します


40

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

dircolors --print-database

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

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

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

回答:


36

ls環境変数から色の設定を取得しますLS_COLORSdircolorsこの環境変数を生成する便利な方法にすぎません。この環境変数をシステム全体で有効にするには、シェルの起動ファイルに配置します。

の場合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から設定を取得するかについては、ファイルを指定しないと、組み込みのデフォルトが使用されます。

xtermdircolorsファイルでの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!

1
256色のエスケープコードの使用方法を説明していただけますか?のは、私は次のように変更したいとしましょう.mp3 00;36のxterm-256色はチャートから使用color126にupload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svgを
user1968963

1
確かに、私の編集を参照してください。
マット

8

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

マニュアルに従って、ファイルがない場合はプリコンパイルされたデータベースを使用します。

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

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

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

7

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

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


2
-1:/etc/DIR_COLORSOPのディストリビューションであるDebianにはありません。そして彼はすでに知っている~/.dircolors、それは問題ではなかった
メストレリオン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.