ls出力でこの緑色の背景が発生する原因は何ですか?

Linuxマシンでのls出力のスクリーンショット

2つのディレクトリが「ls」。通常、ディレクトリはどこでも黒の背景に青です。しかし、最初のものは緑に青で、読むことが不可能です。どうしてこれなの?黒地に青にする方法、または少なくとも暗いものに明るいものを作成するにはどうすればよいですか?

これはUbuntu12.04で、Gnomeターミナルでbashを使用しています。 Konsoleでは、青は少し暗く、読むことができますが、はるかに優れている可能性があります。

回答

色付けは別としてタイプに基づいてファイル(オーディオファイルの場合はターコイズ、アーカイブと圧縮ファイルの場合は明るい赤、画像とビデオの場合は紫)、lsは、属性に基づいてファイルとディレクトリにも色を付けます。

  • 背景が緑色の黒いテキストは、ディレクトリが所有しているユーザーとグループ以外のユーザーによって書き込み可能であり、スティッキービットが設定されていることを示します(o+w, +t) 。
  • 背景が緑色の青色のテキストは、ディレクトリが所有しているユーザーとグループ以外のユーザーによって書き込み可能であり、スティッキービットが設定されていないことを示します( 2613218656 “>

)。

ステファノパラッツォ Ask Ubuntu は、さまざまな属性の色についてこの非常に有益な図を作成しました:

Whターミナルでの色の意味の違い

terdon が指摘しているように、色の設定は 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色をサポートしています。

XTerm256色の前景色のカラーコードは次の形式です。

38;5;[FOREGROUND_COLOR] 

XTerm256色の背景色のコードは次の形式です。フォーム:

48;5;[BACKGROUND_COLOR] 

FOREGROUND_COLORBACKGROUND_COLORの両方が0〜255の範囲に番号を付けます。以下のスクリーンショットに、16および256カラーモードのカラーコードの完全なリストを示します。

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

コメント

  • BACKGROUND_COLORコードはFOREGROUND_COLORと同じではありません。背景コードは40〜47です。
  • 38;5; は、xterm 256色の前景色コードを開始します。 48;5; は、xtermの256色の背景色コードを開始します。 dircolors出力のシアンは38;5;51 ではありません 36ですが、結果は同じです。
  • @stevesliva:コメントありがとうございます。 ‘回答を編集して、背景のカラーコードを正しく示し、256色の前景色と背景のカラーコードを説明しました。
  • つまり、緑だけが前景とは平均? ここにあるように?
  • @ChagaiFriedlander:実行可能ファイル(の下の行を参照写真)。

回答

lsの色で権限を表すことができます、一部のシステムのデフォルトでは、全員が書き込み権限を持っているディレクトリが緑色の背景で表示されます。

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

dircolorsを使用して$LS_COLORS変数を編集することで色を変更できます(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)"; 

実際に動作しています:

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

これを自動的に行うには、

コマンドを~/.bashrcファイルに追加します。

コメント

  • デフォルトの色は、元の作者が私たちと私たちの目を嫌っていることを示しているようです…
  • ありがとうございます。なぜ〜/ .dirname、時には〜/ dircolors、時には〜/と書くのですか? .dircolors?それらは同じであるはずですか?
  • Thアンクス。 dircolors ~/dircolorsなどのより直接的な方法ではなくeval "$(dircolors ~/dircolors)";なのはなぜですか?
  • @Tim dircolorsは設定のみを出力するため、読むためには評価する必要があります。
  • 誰が読むために?

回答

技術的な答えはすべて真実ですが、少し非公式な警告だと思います。寛大に権利を与えたり、cris + crossをコピーしたりすることです…(ほとんどの場合、私たち全員がそうします) 、最初に機能させるには、え?)

黒地に青にする方法…?

最も必要と思われる権利に戻るための優れた「デグリーン」は、次のステートメントです。

chmod -R a-x,o-w,+X thatGreenFolderWithSubfolders/ 

大文字の+ X「特別な実行」の目的を理解している場合、つまりウィキペディア

「+」と組み合わせて使用する場合にのみ、通常は組み合わせて使用すると非常に便利です。通常のファイル(テキストファイルなど)の実行権限を設定せずに、グループまたはその他の大きなディレクトリツリーへのアクセスを許可するための-Rオプションを使用します。これは、通常、「chmod -R a + rx …

回答

色を変更するために使用した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 

回答

問題をすばやく修正するには(nobgで他の書き込み可能なファイルを黄色にします):

LS_COLORS+=":ow=01;33" 

nobgの青の3334に置き換えます。さらに簡単に、nobgでnofgにするには:

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*.".


Toで始まるルールを削除しますターミナルで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. } 

次に

別の回答(Thomas Nymanの回答)で述べられているように、38;5;は前景のx項256色の接頭辞であり、48;5;背景のx-term256色。 256色はすべての端末でサポートされているわけではありません。

も参照してください-AskUbuntuのlsで異なる色はどういう意味ですか?-

コメント

  • LS_COLORS+=':ow=01;33'~/.zshrcは、git-repo内のディレクトリのcolor-backgroundを無効にするのに役立ちました。これは、Pengwin-WSLディストリビューションを搭載したWindows10マシン上にあります。これで、git-repo内のすべてのディレクトリが読み取り可能になります。

回答

これは、このフォルダに権限があることを意味します。これを実行します:

сhmodog-wAU_LI

削除されますbgcolor 🙂

回答

これを修正するには、 ow

パラメーター

例:

~LS_COLORS="fi=0:ln=5:pi=0:so=7:bd=5:cd=5:or=31:mi=0:ex=93:*.py=36:di=40:*.zip=33:*.tgz=33" ~ls -l 

ここに画像の説明を入力

ここで、を追加しますOTHER_WRITABLE)オプション

~export LS_COLORS="fi=0:ln=5:pi=0:so=7:bd=5:cd=5:or=31:mi=0:ex=93:*.py=36:di=40:*.zip=33:*.tgz=33:ow=0" ~ls -l 

ここに画像の説明を入力 バム!!

コメント

回答

Puttyの緑の色調を変更して、テキストを読みやすくすることができます。

Puttyを開き、ウィンドウに移動します。 \ Colours、「ANSI Green」を選択し、濃い緑色(R:0 G:70 B:0)に設定します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です