Bunte Verzeichnisse

Farbige Ausgabe von ls mit dircolors

01.09.2004
Der Befehl ls sorgt für einen Überblick über Verzeichnisinhalte, eine farbenfrohe Ausgabe ist dabei für viele Anwender bereits selbstverständlich. Dieser Artikel beschreibt, wie Sie die Farbwahl von ls steuern.

Sicherlich hat jeder Linux-Anwender, der schonmal ein Kommandozeilenfenster gestartet hat, bereits den ls-Befehl genutzt, um Verzeichnisinhalte anzuzeigen. Die gängigen Distributionen sind so vorkonfiguriert, dass verschiedene Farben die Ausgabe übersichtlicher gestalten (Abbildung 1).

Abbildung 1: Die Distributoren sorgen gewöhnlich bereits für eine bunte Ausgabe von ls.

Die Auswahl der vordefinierten Farben muss aber nicht optimal sein. Beispielsweise kommt es auf die Hintergrundfarbe des Fensters an; dunkelblaue Verzeichnisnamen auf schwarzem Hintergrund sind schwer lesbar, wie Abbildung 1 zeigt. Den individuellen Geschmack oder beispielsweise eine Rot-Grün-Blindheit kann kein Distributor vorhersehen.

Kasten 1:

ls

versus

dir

Einige Distributionen bieten ihren Nutzern, mit dem Augenmerk auf Windows-Umsteiger, die von DOS bekannten Befehle auch unter Linux an. Ein Beispiel hierfür ist der dir-Befehl, der unter DOS und der Kommandozeileneingabe von Windows Verzeichnisinhalte ausgibt. Typischerweise sind derartige Kommandos unter Linux als Alias realisiert: Unter Suse 9 beispielsweise führt die Eingabe von dir in der Kommandozeile lediglich den Befehl ls -l aus.

Ein Griff in den Malkasten

Die Farben, in denen ls die verschiedenen Dateitypen und Verzeichnisse darstellt, definiert die Umgebungsvariable LS_COLORS. In der Bash-Shell, die die meisten Distributionen als Standard verwenden, liest man diese mit dem Befehl echo $LS_COLORS aus. Unter Suse beispielsweise sieht das Ergebnis so aus:

LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32 .tar=01;31 .tgz=01;31 .arj=01;31 .taz=01;31 .lzh=01;31 .zip=01;31 .z=01;31 .Z=01;31 .gz=01;31 .bz2=01;31 .deb=01;31 .rpm=01;31 .jar=01;31 .jpg=01;35 .jpeg=01;35 .gif=01;35 .bmp=01;35 .pbm=01;35 .pgm=01;35 .ppm=01;35 .tga=01;35 .xbm=01;35 .xpm=01;35 .tif=01;35 .tiff=01;35 .png=01;35 .mpg=01;35 .mpeg=01;35 .avi=01;35 .fli=01;35 .gl=01;35 .dl=01;35 .xcf=01;35 .xwd=01;35 .ogg=01;35 .mp3=01;35 .wav=01;35:'

Der Befehl dircolors vereinfacht den Umgang mit den vielen einzelnen Werten dieser Variable. Ohne Parameter aufgerufen gibt dircolors zwei Zeilen aus: in der ersten den aktuellen Inhalt von LS_COLORS und in der zweiten den Befehl export LS_COLORS, der dafür sorgt, dass die Variable für alle zukünftig in der Shell gestarteten Programme gilt. Der Aufruf dircolors -p gibt eine erklärende Liste der einzelnen Werte aus; Listing 1 zeigt einen Auszug.

Listing 1

Ausgabe von

dircolors -p
TERM linux
#…
TERM Eterm
NORMAL 00       # Standardeinstellung
FILE 00         # Standardeinstellung für Dateien
DIR 01;34       # Standardeinstellung für Verzeichnisse
LINK 01;36      # Symbolische Links
#…
ORPHAN 40;31;01 # verwaiste symbolische Links
#…
EXEC 01;32      # Ausführbare Dateien
.tar 01;31      # Dateien mit der Endung .tar
.jpg 01;35
[…]

Ganz oben erscheint eine Liste der zu unterstützenden Terminal-Typen. Dann folgen die Farbgebungen für die einzelnen Dateitypen, zuerst die allgemeinen Fälle: NORMAL behandelt alle Typen, die nicht anderweitig definiert sind. Darunter folgt der Eintrag FILE, der die anzuzeigende Farbe gewöhnlicher Dateien bestimmt.

DIR und LINK sind für Verzeichnisse und symbolische Links zu anderen Dateien oder Verzeichnissen zuständig, dann folgen die Einträge für spezielle Dateitypen wie die Gerätedateien im Verzeichnis /dev. Der Eintrag ORPHAN beschreibt Links, die auf nicht existierende Dateien verweisen. Anschließend folgt eine Liste gewöhnlicher Dateien mit bestimmten Endungen, für jedes beliebige Suffix lässt sich eine eigene Farbe festlegen.

Malen mit Zahlen

Hinter jedem Eintrag stehen mindestens eine und bis zu drei Zahlen, die Schriftfarbe- und art – z. B. fett – sowie die Hintergrundfarbe bestimmen. Im Eintrag DIR 01;34 beispielsweise sorgt der Wert 01 für eine fette Darstellung, die 34 ergibt eine blaue Schriftfarbe.

Der Eintrag ORPHAN 40;31;01 stellt drei Werte ein, neben der Fettschrift mit 01 und der Farbe rot (31) erzwingt der Eintrag 40 einen schwarzen Hintergrund (Abbildung 2). Die Reihenfolge der verwendeten Werte spielt keine Rolle: Die Werte zwischen 00 und 08 definieren immer die Schriftart, 30 bis 37 die Vordergrundfarbe und 40 bis 47 den Hintergrund. Fehlt eine Angabe, verwendet ls den Standard. Tabelle 1 zeigt die einzelnen Schlüssel.

Abbildung 2: Bunte Anzeige von ls mit definierter Hintergrundfarbe.

Tabelle 1: Bedeutung der Werte bei dircolors

Schriftart Schrift-/Hintergrundfarbe
00: Keine Veränderung 30/40: Schwarz
01: Fett 31/41: Rot
04: Unterstrichen 32/42: Grün
05: Blinkend 33/43: Gelb
07: Vertauscht Vorder- und Hintergrundfarbe 34/44: Blau
08: Verborgen (funktioniert nicht bei allen Terminals) 35/45: Magenta
  36/46: Cyan
  37/47: Weiß

Beim Eintrag LINK gibt es einen zusätzlichen Spezialfall: Wollen Sie Links keine eigene Farbe zuordnen, sondern sie wie ihr Ziel darstellen lassen, gibt es für diesen Eintrag die Sonderoption target. Anstelle der Zahlenwerte tragen Sie ein:

LINK target

Damit unterscheidet ein Aufruf von ls farblich nicht mehr zwischen einem Verzeichnis und einem Link auf ein Verzeichnis.

Um die Liste mit Hilfe von dircolors zu bearbeiten, exportieren Sie die eingestellten Werte in eine eigene Datei:

dircolors -p > meine_farben.txt

In meine_farben.txt ändern Sie nun mit einem beliebigen Texteditor die Werte nach Bedarf. Der Befehl dircolors meine_farben.txt liest anschließend die Werte aus dieser Datei aus und gibt die Zeilen aus, durch deren Ausführung die Variable LS_COLORS entsprechend gesetzt würde. Damit die Änderungen wirksam werden, führt der Befehl eval die ausgegeben Kommandos direkt aus:

eval `dircolors meine_farben.txt`
Abbildung 3: Verzeichnisnamen in Gelb.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • ls
    Lassen Sie sich Ihre Dateien doch mal auf der Kommandozeile auflisten! Mit ls behalten Sie dabei den Überblick.
  • Farbige Shell-Prompts und "ls"-Ausgaben
    Die Bash lässt sich in vielfältiger Weise konfigurieren und den persönlichen Vorlieben anpassen. Ein individueller Prompt kann die Übersichtlichkeit fördern, und auch die Ausgabe von "ls" wird mit Farben lesbarer.
  • Ein neuer Anstrich
    Jetzt ist Schluss mit dem grauen Shell-Alltag – renovieren Sie die Konsole und verpassen Sie ihr mit ANSI-Escape-Sequenzen einen neuen Look.
  • Verzeichnisinhalt en detail mit "ls"
    Das Kommando "ls" listet Ihre Daten auf der Kommandozeile auf und verrät dabei auch allerhand über die Dateieigenschaften. Ob mit oder ohne Farbe – mit diesem Befehl behalten Sie den Überblick über Ihre Daten.
  • Terminal-Emulatoren im Vergleich
    Als Schnittstelle zwischen GUI und Prompt stellen Terminal-Emulatoren das wohl wichtigste Werkzeug auf der grafischen Oberfläche dar. Wir klopfen die zehn wichtigsten Vertreter dieser Gattung auf Ihre Fähigkeiten ab.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...