Ich weiß, dass eine ähnliche Frage hier gestellt wurde:
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, ls
und dort werden verschiedene Umgebungsvariablen erwähnt, die beim Umgang mit dem ls
Befehl festgelegt werden können. Wenn man auf die Option geht, -G
heißt es, man solle sich die CLICOLOR
Umgebungsvariablen ansehen. Das habe ich getan undDasEiner verlinkt Sie zur Dokumentation für die LSCOLORS
Umgebungsvariable. 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 ls
Befehl 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:
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 --color
es durch „ -G
beim Ausführen“ ls
.