Wie färbt man die Ausgabe von ls ein?

22

Ich verwende CentOS im Linux-Textmodus. Wenn ich den Befehl ausführe ls /usr/, ist die Ausgabe zu schwer zu lesen (dunkelblau auf schwarz). Wie kann ich die Textfarbe ändern?

Screenshot der ls-Ausgabe

laufe jeden Tag
quelle

Antworten:

19

Wenn Sie Ihre Farben in der Konsole ändern möchten, die sich außerhalb von X befindet , können Sie Farben in Ihrer .bashrcwie folgt angeben :

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0222222" #black
    echo -en "\e]P8222222" #darkgrey
    echo -en "\e]P1803232" #darkred
    ....
    fi

Wo Sie Schwarz als definieren #222222Siehe diesen Beitrag für die Details: http://phraktured.net/linux-console-colors.html

Wenn Sie in X arbeiten , können Sie Ihr Setup anpassen, indem Sie Ihre Farben .Xresourceswie folgt definieren :

!black
 *color0:  #3D3D3D
 *color8:  #5E5E5E
!red
 *color1:  #8C4665
 *color9:  #BF4D80
 ...

und dann diese Datei ausfindig machen, wenn Sie X starten, normalerweise von Ihrem .xinitrc:

xrdb -merge ~/.Xresources

Das Arch Wiki hat eine Seite über .Xresources, die alle Optionen erklärt: https://wiki.archlinux.org/index.php/Xresources

Eine weitere Verbesserung, die Sie in X vornehmen können oder nicht, besteht darin, alle verschiedenen Dateitypen, die Sie einfärben möchten, und ihre jeweiligen Farben in einer .dir_colorsDatei wie folgt anzugeben :

.xinitrc       01;31 
.Xauthority    01;31
.Xmodmap       00;31
.Xresources    01;33
 ...

Kopieren Sie zunächst /etc/dir_colorsin das Benutzerverzeichnis /homeund nehmen Sie die gewünschten Änderungen vor. Dann geben Sie dies in Ihrer .bashrcmit ein. eval $(dircolors -b ~/.dir_colors)Dadurch können Sie die Farben von Dateien und Dateitypen genau steuern, wenn Sie sie verwenden ls.

Eine (unglaublich detaillierte und gründliche) .dir_colorsBeispieldatei finden Sie hier: https://github.com/trapd00r/LS_COLORS/blob/master/LS_COLORS

Mit einer Kombination aus allen drei Ansätzen können Sie ein relativ einheitliches Setup erstellen, unabhängig davon, ob Sie in der Konsole oder in X arbeiten.

jasonwryan
quelle
Es tut mir leid, ich bin ein neuer Linux-Lerner. Ich habe es in Linux Text installiert. Es gibt keine Konsole. Alles läuft in der Kommandozeile. danke,
runeveryday
2
Ja, das habe ich gemeint, als ich außerhalb von X sagte - in den TTY-Konsolen (TTY 1-7).
Jasonwryan
jasonwryan, ich führe den Befehl vim / etc / DIR_COLORS aus, der DIR ist 01; 34. danke,
runeveryday
2
Der Begriff Farben ist hier: tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html Grün ist 00;32und Hell- / Fettgrün ist 1;32Der einzige Weg, um blaugrün zu werden, besteht darin, die oben beschriebene Methode zu verwenden, um eine dieser 16 Farben zu definieren als Hex-Äquivalent von Knickente.
Jasonwryan
Entschuldigung, wenn dies eine Anfängerfrage ist, aber ändert sich Ihre Antwort für ein Unix-System in OS X?
Charlie Parker
9

Die gewünschte Datei lautet /etc/DIR_COLORS. Ich hatte genau dasselbe Problem wie Sie und habe die Verzeichnisse in eine blaugrüne Farbe geändert. Funktioniert viel besser.

cp /etc/DIR_COLORS /home/yourusername/.dir_colors

Bearbeiten /home/yourusername/.dir_colors, sehen Sie diese Zeile:

DIR 01;34    #directory

Ändern Sie das zu diesem:

DIR 01;36    #directory

Wodurch Verzeichnisfarben blaugrün werden.

n0pe
quelle
Wenn ich den Befehl / etc / DIR_COLORS ausführen, wird die Ausgabeberechtigung verweigert. Ich bin der Root-Benutzer, warum? wie man die Farbe ändert, um zu aquamarinieren. danke
runeveryday
3
@run Es ist kein Befehl, es ist eine Konfigurationsdatei. Öffne es in einem Texteditor
Michael Mrozek
Der DIR ist 01; 34. danke,
runeveryday
@MaxMackie Das scheint bei mir nicht zu funktionieren (kopiert ~/.dir_colors) und hat alles auf geändert 00. Gefunden, dass ich ein neues Terminal öffnen muss. Wie wird dies am aktuellen Terminal durchgesetzt / angebracht?
Bernhard