「ls」は2つのディレクトリを表示します。通常、ディレクトリは黒の背景に青です。ただし、最初のものは青色の背景に緑色のテキストがあり、読み取れません。なぜこれですか?黒い背景に青く見えるようにしたり、暗い背景に少なくとも明るい色に見えるようにするにはどうすればよいですか。
これはGnome Terminalでbashを使用するUbuntu 12.04です。 Konsoleでは、青が少し暗くなって読みやすくなりますが、より良いかもしれません。
答え1
種類に応じたファイルの色付け(オーディオファイルの場合はターコイズ、アーカイブ、圧縮ファイルの場合は明るい赤、画像、ビデオの場合は紫)に加えて、ls
ファイルとディレクトリの色もそのプロパティに基づいて色付けされます。
- 緑色の背景の黒いテキストは、所有ユーザーとグループを除く他のユーザーがそのディレクトリに書き込むことができ、固定ビット(
o+w, +t
)が設定されていることを示します。 - 緑色の背景に青いテキストは、所有しているユーザーとグループを除く他のユーザーがそのディレクトリに書き込むことができることを意味します。いいえスティッキービット(
o+w, -t
)を設定します。
パラッツェ・ステファノ~へUbuntuに尋ねるさまざまなプロパティの色で非常に魅力的なイメージを作成しました。
〜のようにテデンカラー設定は次のように変更できます。dircolors
。さまざまな色設定のリストにを使用してアクセスできますdircolors --print-database
。
各出力行(例BLK 40;33;01
:)は次の形式です。
[TARGET] [TEXT_STYLE];[FOREGROUND_COLOR];[BACKGROUND_COLOR]
TARGET
着色ルールのターゲットを表します。TEXT_STYLE
テキストスタイルを表します。00
=なし01
=太字04
=下線05
=点滅07
=逆、08
=隠す
FOREGROUND_COLOR
前景色を示します。30
=黒31
=赤32
=緑33
=黄色34
=青、35
=マゼンタ色36
=ターコイズ37
=白
BACKGROUND_COLOR
背景色を示します。40
=黒41
=赤42
=緑43
=黄色44
=青、45
=マゼンタ色46
=ターコイズ47
=白
フィールドは右から省略できるため、たとえば.tar 01;31
太字と赤で表示されます。
XTermおよび他のほとんどの最新のターミナルエミュレータは256色をサポートしています。
XTerm 256カラーフォアグラウンドカラーコードの形式は次のとおりです。
38;5;[FOREGROUND_COLOR]
XTerm 256色の背景色コードの形式は次のとおりです。
48;5;[BACKGROUND_COLOR]
ここFOREGROUND_COLOR
で、BACKGROUND_COLOR
とは、すべて0〜255の範囲の数値です。以下のスクリーンショットは、16色と256色のモードのフルカラーコードのリストを示しています。
答え2
色はls
権限を表します。一部のシステムのデフォルトは、緑色の背景にすべての人が書き込みアクセス権を持つディレクトリを表示することです。
(from) 編集$LS_COLORS
変数を使用して色を変更できます。dircolors
man ls
Using color to distinguish file types is disabled both by default and
with --color=never. With --color=auto, ls emits color codes only when
standard output is connected to a terminal. The LS_COLORS environment
variable can change the settings. Use the dircolors command to set it.
もちろん、ここの構文は少し迷惑ですが、必要な色でファイルを作成し、次のように保存してこの色を変更できます~/.dircolors
。
dircolors -p > ~/.dircolors
このコマンドはデフォルト値をに印刷します~/.dircolors
。その後、ファイルを編集して次の行を変更する必要があります。
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
たとえば、赤の背景に黒いテキストに設定するには(参照ここカラーコードリストのインポート):
OTHER_WRITABLE 30;41 # dir that is other-writable (o+w) and not sticky
すべてのデフォルト値を持つ必要はなく、変更したい項目だけを上書きする1行でファイルを作成することもできます。とにかくファイルが作成されたら、次のようにロードします。
eval "$(dircolors ~/.dircolors)";
動作中です。
これを自動化するには、上記のeval
コマンドを~/.bashrc
ファイルに追加します。
答え3
いいですね。どうやって解決しますか?
問題をすばやく解決するには:
LS_COLORS+=':ow=01;33'
- nobgで他の書き込み可能ファイルを黄色で表示するように設定する
- シェル構成ファイル(たとえば
~/.bashrc
、~/.profile
など)を編集して永久に作成します。
詳細は:
on33
と交換してください。より簡単に以下を実装してください。34
blue
nobg
nofg
nobg
LS_COLORS+=:ow=
変更を永久に適用するには、その内容を .profile に追加します。
echo "export LS_COLORS+=':ow=01;33'" >> ~/.profile
表示できる非拡張関連ルールLS_COLORS
:
echo "$LS_COLORS" | sed 's/:/\n/g' | grep -v '\*.'
sed
各ルールを1行に配置grep
します。*.'.
ls
端末の色をナビゲートするには、次を使用することをお勧めします。
C="$LS_COLORS"
function sc () {
echo "$LS_COLORS" | sed 's/:/\n/g' | grep -v '\*.'
}
function t () {
ls /mnt # Or the path to your example directory.
}
それから
LS_COLORS="$C:ow=38;5;250;48;5;025";t
他の回答(Thomas Nymanの回答)で述べたように、38;5;
前景のx項256色と背景x項256色の接頭辞です。48;5;
しかし、すべての端末が256色をサポートしているわけではありません。
また見てください-lsのさまざまな色はどういう意味ですか? -AskUbuntuから。
答え4
色を変更するために使用する3つのステップは次のとおりです。
まず、基本色をファイルにコピーします。
dircolors -p > ~/.dircolors
次に、このファイルを変更します。内部でいくつかの色の値を見つけることができます。
Code Color
0 Default Colour
1 Bold
4 Underlined
5 Flashing Text
7 Reverse Field
31 Red
32 Green
33 Orange
34 Blue
35 Purple
36 Cyan
37 Grey
40 Black Background
41 Red Background
42 Green Background
43 Orange Background
44 Blue Background
45 Purple Background
46 Cyan Background
47 Grey Background
90 Dark Grey
91 Light Red
92 Light Green
93 Yellow
94 Light Blue
95 Light Purple
96 Turquoise
100 Dark Grey Background
101 Light Red Background
102 Light Green Background
103 Yellow Background
104 Light Blue Background
105 Light Purple Background
106 Turquoise Background
(源泉)
~/.bashrc
最後に、端末を開くときに色を自動的に読み込むには、ファイルに次の行を追加します。
eval 'dircolors ~/.dircolors' > /dev/null
のため~/.zshrc
:
if [[ -f ~/.dircolors ]] ; then
eval $(dircolors -b ~/.dircolors)
elif [[ -f /etc/DIR_COLORS ]] ; then
eval $(dircolors -b /etc/DIR_COLORS)
fi