Wie ändere ich die Ausgabefarbe des Befehls „ls“ im Terminal in OS X und iTerm2?

Wie ändere ich die Ausgabefarbe des Befehls „ls“ im Terminal in OS X und iTerm2?

Ich weiß, dass eine ähnliche Frage hier gestellt wurde:

Wie kann ich die Ausgabe von ls einfärben?

obwohl ich die Antwort nicht wirklich verstanden habe und es nicht wirklich zum Laufen bringen konnte.

Ich habe jedoch etwas anderes versucht. Ich habe beschlossen, die Handbuchseite zu lesen, lsund dort werden verschiedene Umgebungsvariablen erwähnt, die beim Umgang mit dem lsBefehl festgelegt werden können. Wenn man auf die Option geht, -Gheißt es, man solle sich die CLICOLORUmgebungsvariablen ansehen. Das habe ich getan undDasEiner verlinkt Sie zur Dokumentation für die LSCOLORSUmgebungsvariable. Ich habe sie aufgerufen und dort steht:

„Der Wert dieser Variable beschreibt, welche Farbe für welches Attribut verwendet werden soll, wenn Farben mit CLICOLOR aktiviert werden. Diese Zeichenfolge ist eine Verkettung von Paaren im Format fb, wobei f die Vordergrundfarbe und b die Hintergrundfarbe ist.“

Außerdem wird erwähnt, dass der Standardwert von LSCOLORS „exfxcxdxbxegedabagacad“ ist und dass jeder Teil die Farbe eines bestimmten Elements im ls-Befehl angibt. Beispielsweise gibt das erste Paar „ex“ im Beispiel die Farbe von Verzeichnissen an. Das zweite „fx“ die Farbe von symbolischen Links usw. … „e“ bedeutet blau und „x“ bedeutet standardmäßig „Vordergrund“.

1) Was bedeutet zunächst: „wenn Farben mit CLICOLOR aktiviert werden“?

2) Was bedeutet"Vordergrund"bedeuten?

Welche Umgebungsvariablen müssen vorhanden sein, damit der lsBefehl die Ausgabe nach meinen Wünschen einfärben kann?


Ich habe auch versucht:

ls --color

Aber es wurde mir der folgende Fehler angezeigt:

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

Dabei ist der gleiche Fehler aufgetreten ls --color=auto: Auch allein wird ein Fehler ausgegeben. Ich habe keine Ahnung, warum, und bin mir nicht sicher, ob es an iTerm2 oder OS X lag oder warum das passiert ist. Es scheint, dass es auf anderen Systemen funktioniert ...

Antwort1

Beim Versuch, meine eigene Frage zu beantworten, habe ich ein paar verschiedene Dinge ausprobiert und durch Experimentieren hat alles geklappt.

1) Ich vermute, dass „CLICOLOR aktivieren“ bedeutet, es auf 1 (also „true“) zu setzen, denn sobald ich diese Variable auf 1 gesetzt habe, begann LSCOLOR zu funktionieren.

2) In diesem Zusammenhang bedeutet „Vordergrund“ die Hintergrundhervorhebung, die angewendet wird. Beispielsweise bedeutet bc für das erste Paar, dass die Zeichen für Verzeichnisse rot eingefärbt werden, während der Hintergrund/die Hervorhebung dafür grün ist. Wenn Ihre Umgebungsvariable beispielsweise so lautet: export LSCOLORS="bCfxcxdxbxegedabagacad"

Wenn Sie dann „ls“ ausführen, wird ungefähr Folgendes angezeigt:

Bildbeschreibung hier eingeben

Damit dies funktioniert, muss der Befehl ls natürlich als Alias ​​für ls -G verwendet werden (oder Sie müssen jedes Mal einfach ls -G ausführen) und Ihre .bashrc- oder die von Ihnen verwendete Shell-RC-Datei muss die folgenden Zeilen enthalten:

export CLICOLOR=1
export LSCOLORS="gxfxcxdxbxegedabagacad"

Jetzt können Sie die LSCOLORS gemäß den Angaben in der man-ls-Datei beliebig ändern.

Es gibt möglicherweise verschiedene Möglichkeiten, wie dies funktionieren kann, aber so hat es bei mir unter Unix in OS X Mavericks auf iTerm2 funktioniert.

Antwort2

Ersetzen Sie --colores durch „ -Gbeim Ausführen“ ls.

verwandte Informationen