web-dev-qa-db-ja.com

OS XおよびiTerm2のターミナルでlsコマンドの出力色を変更するにはどうすればよいですか?

私は同様の質問がで尋ねられたことを知っています:

lsの出力を色付けする方法は?

私は答えを本当に理解しておらず、それを実際に機能させることができませんでしたが。

しかし、私は別のことを試みました。 lsのマニュアルページを読むことにしました。lsコマンドを処理するときに設定できるさまざまな環境変数について説明しています。 -Gオプションに移動すると、CLICOLOR環境変数を調べるように指示されます。私はそうしました、そしてthat1つはあなたをLSCOLORS環境変数のドキュメントにリンクします。私はそれに行きました、そしてそれは言及します:

「この変数の値は、CLICOLORで色が有効になっているときに、どの属性にどの色を使用するかを示します。この文字列は、fb形式のペアを連結したものです。ここで、fは前景色、bは背景色です。」

また、LSCOLORSのデフォルト値は「exfxcxdxbxegedabagacad」であり、各部分はlsコマンドで特定のものの色を指定することにも言及しています。たとえば、例の最初のペアexは、ディレクトリの色を指定します。 2番目のfxはシンボリックリンクの色などです... eは青を意味し、xはデフォルトの「前景」を意味します。

1)まず、これはどういう意味ですか:「CLICOLORで色が有効になっている場合」?

2) "foreground"はどういう意味ですか?

lsコマンドが出力に色を付けるには、環境変数は何である必要がありますか?


私も試しました:

ls --color

しかし、それは私に次のエラーを投げました:

ls: illegal option -- - usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

ls --color=autoを実行したときにも同じエラーが発生しました。それだけでも、エラーがスローされます。理由はわかりませんが、iTerm2とOS Xのどちらが原因なのか、なぜそれが起こったのかはわかりません。他のシステムでも動作するようです...

4
Charlie Parker

私自身の質問に答えようとしている間、私はいくつかの異なることを試みました、そしてそれはすべて実験によってうまくいきました。

1)「CLICOLORを有効にする」とは、変数を1に設定すると、LSCOLORが機能し始めたため、1に設定する(つまりtrue)ことを意味すると推測しています。

2)この文脈では、「前景」とは、それが適用されることを強調する背景を意味します。たとえば、最初のペアのbcは、ディレクトリの文字を赤で色付けし、背景/ハイライトを緑で表示することを意味します。たとえば、環境変数が次の場合:export LSCOLORS = "bCfxcxdxbxegedabagacad"

次にlsを実行すると、次のようになります。

enter image description here

明らかに、これが機能するためには、lsコマンドをls -Gにエイリアスする必要があり(または毎回ls -Gを実行する)、. bashrcまたは使用するShellrcファイルに次の行を含める必要があります。

export CLICOLOR=1
export LSCOLORS="gxfxcxdxbxegedabagacad"

これで、manlsファイルで指定されているようにLSCOLORSを自由に変更できます。

これを機能させるにはさまざまな方法があるかもしれませんが、これが、iTerm2上のOSXマーベリックスのUnixで私にとってどのように機能したかです。

5
Charlie Parker

lsを実行するときは、--color-Gに置き換えます。

2
Chris Eisenhart