So ändern Sie die Farben von Verzeichnissen und Dateien im ls-Befehl



Wenn Sie das |_+_| . ausgeführt haben Befehl in Bash werden Sie feststellen, dass die angezeigten Verzeichnisse und Dateien entsprechend ihrem Typ eingefärbt sind. Sie können Ihr eigenes Farbschema anpassen, um verschiedene Textfarben, Hintergrundfarben und Formatierungen wie Fettdruck und Unterstreichung auszuwählen.

Wie das funktioniert

Das Farbschema wird in der Variablen LS_COLORS gespeichert. Um Ihr aktuelles Farbschema anzuzeigen, können Sie die Bash anweisen, den Inhalt der Variablen zu drucken:





ls

Sie sehen eine lange Liste von Dateitypen und Nummerncodes. Wir erklären Ihnen, wie Sie eine solche Liste selbst erstellen.



Bevor Sie damit herumspielen, empfehlen wir, den aktuellen Inhalt der Variablen LS_COLORS in einer anderen Variablen zu speichern. Auf diese Weise können Sie die Standardeinstellungen schnell wiederherstellen, ohne sich von der Shell abzumelden und wieder anzumelden oder das Terminalfenster zu schließen und erneut zu öffnen. Um den aktuellen Inhalt der Variablen LS_COLORS in einer neuen Variablen namens ORIGINAL zu speichern, führen Sie Folgendes aus:

di=1;31

Sie können jederzeit den folgenden Befehl ausführen, um Ihre Änderungen rückgängig zu machen und die Standardfarben wiederherzustellen:



ls Anzeige

Ihre Änderungen sind immer temporär, bis Sie eine Datei bearbeiten, um sie zu Ihren neuen Standardeinstellungen zu machen. Sie können sich jederzeit ab- und wieder anmelden oder ein Terminalfenster schließen und erneut öffnen, um die Farben auf die Standardeinstellungen zurückzusetzen. Dies macht es jedoch einfach, dies mit einem einzigen, schnellen Befehl zu tun.

So legen Sie benutzerdefinierte Farben fest

Die Variable LS_COLORS enthält eine Liste von Dateitypen zusammen mit den zugehörigen Farbcodes. Die Standardliste ist lang, da sie für verschiedene Dateitypen unterschiedliche Farben angibt.

Beginnen wir mit einem einfachen Beispiel, um zu demonstrieren, wie dies funktioniert. Nehmen wir an, wir möchten die Farbe der Verzeichnisse von der Standardfarbe fettes Blau in fettes Rot ändern. Dazu können wir den folgenden Befehl ausführen:

di

Die |_+_| Bit sagt |_+_| dass Verzeichnisse (|_+_|) (|_+_|) fett (|_+_|) rot (|_+_|) sind.

Dies ist jedoch nur eine sehr einfache LS_COLORS-Variable, die Verzeichnisse als eine Farbe definiert und jeden anderen Dateityp als Standardfarbe belässt. Nehmen wir an, wir möchten Dateien mit der Dateierweiterung .desktop ebenfalls in eine unterstrichene Cyanfarbe umwandeln. Dazu können wir den folgenden Befehl ausführen:

=Anzeige

Dies sagt |_+_| dass Verzeichnisse (|_+_|) (|_+_|) fett (|_+_|) rot (|_+_|) und (|_+_|) Dateien mit der Endung .desktop (|_ +_|) ist (|_+_|) unterstrichen (|_+_|) cyan (|_+_|).

Dies ist der Prozess zum Zusammenstellen Ihrer Liste mit Dateitypen und Farben. Geben Sie beliebig viele in der Form filetype=color an und trennen Sie sie jeweils durch einen Doppelpunkt (:).

VERBUNDEN: So passen Sie Ihre Bash-Eingabeaufforderung an (und kolorieren)

Um Ihre eigene Liste zusammenzustellen, müssen Sie nur die Liste der Farbcodes und Dateitypcodes kennen. Dies verwendet die gleichen numerischen Farbcodes, die Sie verwenden, wenn Ändern der Farbe in Ihrer Bash-Eingabeaufforderung .

Hier ist die Liste der Farbcodes für Vordergrundtext:

  • Schwarz: 30
  • Blau: 34
  • Cyan: 36
  • Grün: 32
  • Lila: 35
  • Netzwerk: 31
  • Weiß: 37
  • Gelb: 33

Da gelber Text beispielsweise der Farbcode 33 ist, würden Sie |_+_| . verwenden um Verzeichnisse gelb zu machen.

Hier ist die Liste der Textfarbattribute:

  • Normaler Text: 0
  • Fetter oder heller Text: 1 (Das hängt vom Terminalemulator ab.)
  • Schwacher Text: 2
  • Unterstrichener Text: 4
  • Blinkender Text: 5 (Dies funktioniert bei den meisten Terminalemulatoren nicht.)
  • Umgekehrter Text: 7 (Dadurch werden die Vorder- und Hintergrundfarben invertiert, sodass Sie schwarzen Text auf weißem Hintergrund sehen, wenn der aktuelle Text weißer Text auf schwarzem Hintergrund ist.)
  • Versteckter Text: 8

Wenn Sie ein Attribut oder mehr als einen Farbcode angeben, trennen Sie die Codeliste durch ein Semikolon (;). Sie müssen für normalen Text keine 0 angeben, da normaler Text verwendet wird, wenn Sie hier kein Attribut angeben.

Da fetter Text beispielsweise der Farbcode 1 und gelber Text der Farbcode 33 entspricht, würden Sie |_+_| . verwenden um Verzeichnisse fett gelb zu machen. Sie können auch mehr als ein Attribut angeben. Du könntest zum Beispiel |_+_| . verwenden um Verzeichnisse fett und gelb unterstrichen zu machen.

Hier ist die Liste der Hintergrundfarbcodes:

  • Schwarzer Hintergrund: 40
  • Blauer Hintergrund: 44
  • Cyan-Hintergrund: 46
  • Grüner Hintergrund: 42
  • Lila Hintergrund: 45
  • Roter Hintergrund: 41
  • Weißer Hintergrund: 47
  • Gelber Hintergrund: 43

Da ein blauer Hintergrund beispielsweise der Farbcode 44 entspricht, würden Sie |_+_| . verwenden einen blauen Hintergrund für Verzeichnisse verwenden. Sie können auch einen Hintergrundfarbcode, einen Vordergrundfarbcode und beliebig viele Attribute kombinieren. Zum Beispiel |_+_| würde Ihnen fetten, unterstrichenen gelben Text auf blauem Hintergrund geben.

Hier ist die Liste der Dateitypcodes:

  • Verzeichnis: di
  • Datei: fi
  • Symbolischer Link: ln
  • Named Pipe (FIFO): mehr
  • Buchse: so
  • Gerät blockieren: bd
  • Zeichengerät: CD
  • Verwaister symbolischer Link (zeigt auf eine Datei, die nicht mehr existiert): oder
  • Fehlende Datei (eine fehlende Datei, auf die ein verwaister symbolischer Link verweist): mi
  • Ausführbare Datei (hat die x-Berechtigung): ex
  • *.extension: Jede Datei, die mit einer von Ihnen angegebenen Erweiterung endet. Verwenden Sie beispielsweise *.txt für Dateien mit der Endung .txt, *.mp3 für Dateien mit der Endung .mp3, *.desktop für Dateien mit der Endung .desktop oder alles andere, was Sie möchten. Sie können beliebig viele verschiedene Dateierweiterungen angeben.
Anzeige

Geben Sie beliebig viele verschiedene Arten von Dateitypcodes mit beliebig vielen verschiedenen Farben an, getrennt durch das Zeichen :. Wiederholen Sie diesen Vorgang, um Ihre LS_COLORS-Variable zusammenzustellen.

Angenommen, Sie möchten fetten lila Text für Verzeichnisse, unterstrichenen roten Text für ausführbare Dateien und fetten grünen Text auf rotem Hintergrund für .mp3-Dateien verwenden. Wenn Sie die Dateitypcodes und Farbcodes aus den obigen Listen zusammenstellen, erhalten Sie:

1;

So legen Sie Ihre neuen Standardfarben fest

Sie haben jetzt eine benutzerdefinierte LS_COLORS-Variable, die in der aktuellen Bash-Sitzung funktioniert. Sie möchten es jedoch wahrscheinlich dauerhaft machen, damit es automatisch verwendet wird, wenn Sie eine neue Bash-Sitzung starten, ohne dass Sie sich daran erinnern müssen.

Sie können Ihre benutzerdefinierte LS_COLORS-Variable – und jede andere gewünschte Bash-Variable – festlegen, indem Sie sie der .bashrc-Datei Ihres Benutzerkontos hinzufügen. Diese Datei befindet sich unter ~/.bashrc. Wenn Ihr Benutzername also bob ist, finden Sie ihn unter /home/bob/.bashrc. Es gibt auch andere Möglichkeiten, Umgebungsvariablen zu setzen, aber dies ist einfach.

Öffnen Sie diese Datei zunächst in Ihrem bevorzugten Texteditor. Wir verwenden hier nano als Beispiel, aber Sie können vi, emacs oder alles andere verwenden, was Sie möchten.

31

Fügen Sie Ihre benutzerdefinierte LS_COLORS-Variable in eine neue Zeile am Ende der Datei ein, wie folgt:

ls Anzeige

Speichern Sie die Datei und beenden Sie sie. Drücken Sie in Nano Strg+O und dann die Eingabetaste, um zu speichern, und drücken Sie dann Strg+X, um den Vorgang zu beenden.

Immer wenn Sie eine neue Bash-Sitzung starten, liest Bash die .bashrc-Datei und setzt automatisch Ihre LS_COLORS-Variable. Um Ihre Farben in Zukunft zu ändern, gehen Sie zurück zu Ihrer .bashrc-Datei und bearbeiten Sie die Zeile LS_COLORS.

Du kannst auch einfach das |_+_| . löschen Zeile, die Sie Ihrer .bashrc-Datei hinzugefügt haben, um wieder die Standardfarben zu verwenden. Wenn Sie den Wert LS_COLORS nicht festlegen, verwendet Bash die Standardfarben.

WEITER LESEN Profilfoto von Chris Hoffman Chris Hoffmann
Chris Hoffman ist Chefredakteur von How-To Geek. Er schreibt über ein Jahrzehnt über Technologie und war zwei Jahre lang Kolumnist bei PCWorld. Chris hat für die New York Times geschrieben, wurde als Technologieexperte von Fernsehsendern wie Miamis NBC 6 interviewt und ließ sich von Nachrichtenagenturen wie der BBC über seine Arbeit berichten. Seit 2011 hat Chris über 2.000 Artikel geschrieben, die fast eine Milliarde Mal gelesen wurden – und das nur hier bei How-To Geek.
Vollständige Biografie lesen

Interessante Artikel