ls出力に緑色の背景が表示されるのはなぜですか?

ls出力に緑色の背景が表示されるのはなぜですか?

Linuxシステムのls出力スクリーンショット

「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色のモードのフルカラーコードのリストを示しています。

16および256カラーモードカラーコード

答え2

色はls権限を表します。一部のシステムのデフォルトは、緑色の背景にすべての人が書き込みアクセス権を持つディレクトリを表示することです。

ここに画像の説明を入力してください。

(from) 編集$LS_COLORS変数を使用して色を変更できます。dircolorsman 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と交換してください。より簡単に以下を実装してください。34bluenobgnofgnobg

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

関連情報