Home / LinuxUser / 2004 / 09 / Farbige Ausgabe von ls mit dircolors

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Aufmacher Artikel

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

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

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

Abbildung 3: Verzeichnisnamen in Gelb.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

4191 Hits
Wertung: 89 Punkte (7 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...