Hoe u de kleuren van mappen en bestanden in het ls-commando kunt wijzigen

Als u het ls commando in Bash, zult u zien dat de mappen en bestanden die u ziet, zijn ingekleurd volgens hun type. U kunt uw eigen kleurenschema aanpassen om verschillende tekstkleuren, achtergrondkleuren en opmaak zoals vetgedrukt en onderstreept te kiezen.

Hoe dit werkt

Het kleurenschema wordt opgeslagen in de LS_COLORS-variabele. Om je huidige kleurenschema te zien, kun je de Bash vertellen om de inhoud van de variabele af te drukken:

echo $LS_COLORS

Je ziet een lange lijst met bestandstypen en nummercodes. We leggen uit hoe u zelf een lijst als deze kunt maken.

Voordat we hiermee gaan spelen, raden we aan om de huidige inhoud van de LS_COLORS-variabele op te slaan in een andere variabele. Hierdoor kunt u snel de standaardinstellingen herstellen zonder uit te loggen bij de shell en opnieuw in te loggen, of het terminalvenster te sluiten en opnieuw te openen. Om de huidige inhoud van de LS_COLORS-variabele op te slaan in een nieuwe variabele met de naam ORIGINAL, voer je uit:

ORIGINAL=$LS_COLORS

U kunt op elk moment de volgende opdracht uitvoeren om uw wijzigingen ongedaan te maken en de standaardkleuren te herstellen:

LS_COLORS=$ORIGINAL

Uw wijzigingen zijn altijd tijdelijk totdat u een bestand bewerkt om er uw nieuwe standaardwaarden van te maken. U kunt zich altijd afmelden en weer aanmelden of een terminalvenster sluiten en opnieuw openen om de kleuren naar hun standaardinstelling te herstellen. Dit maakt het echter gemakkelijk om dit te doen met een enkele, snelle opdracht.

Aangepaste kleuren instellen

De variabele LS_COLORS bevat een lijst met bestandstypen en bijbehorende kleurcodes. De standaardlijst is lang omdat deze verschillende kleuren specificeert voor een aantal verschillende bestandstypen.

Laten we beginnen met een eenvoudig voorbeeld om te demonstreren hoe dit werkt. Laten we zeggen dat we de kleur van mappen willen wijzigen van standaard vetblauw naar vet rood. We kunnen het volgende commando uitvoeren om dit te doen:

LS_COLORS="di=1;31"

De di=1;31 beetje vertelt ls die mappen (di) zijn (=) stoutmoedig (1;) rood (31).

Dit is echter slechts een zeer eenvoudige LS_COLORS-variabele die mappen als één kleur definieert en elk ander type bestand als standaardkleur laat. Laten we zeggen dat we bestanden met de bestandsextensie .desktop ook een onderstreepte cyaankleur willen maken. We kunnen het volgende commando uitvoeren om dit te doen:

LS_COLORS="di=1:31:*.desktop=4;36"

Dit vertelt ls die mappen (di) zijn (=) stoutmoedig (1;) rood (31) en (:) elk bestand dat eindigt op .desktop (*.desktop) is (=) onderstreept (4;) cyaan (36).

Dit is het proces voor het samenstellen van uw lijst met bestandstypen en kleuren. Specificeer er zoveel als u wilt in de vorm filetype = color, elk gescheiden door een dubbele punt (:).

VERWANT: Hoe u uw bash-prompt kunt aanpassen (en inkleuren)

Om uw eigen lijst samen te stellen, hoeft u alleen de lijst met kleurcodes en bestandstypecodes te kennen. Dit gebruikt dezelfde numerieke kleurcodes die u gebruikt bij het wijzigen van de kleur in uw Bash-prompt.

Hier is de lijst met kleurcodes voor voorgrondtekst:

  • Zwart: 30
  • Blauw: 34
  • Cyaan: 36
  • Groen: 32
  • Paars: 35
  • Rood: 31
  • Wit: 37
  • Geel: 33

Omdat gele tekst bijvoorbeeld kleurcode 33 is, zou u di=33 om mappen geel te maken.

Hier is de lijst met tekstkleurkenmerken:

  • Normale tekst: 0
  • Vetgedrukte of lichte tekst: 1 (afhankelijk van de terminalemulator.)
  • Dim tekst: 2
  • Onderstreepte tekst: 4
  • Knipperende tekst: 5 (dit werkt niet in de meeste terminalemulators.)
  • Omgekeerde tekst: 7 (hiermee worden de voor- en achtergrondkleuren omgekeerd, zodat u zwarte tekst op een witte achtergrond ziet als de huidige tekst witte tekst op een zwarte achtergrond is.)
  • Verborgen tekst: 8

Bij het specificeren van een attribuut of meer dan één kleurcode, scheidt u de lijst met codes door een puntkomma (;). U hoeft geen 0 op te geven voor normale tekst, aangezien normale tekst wordt gebruikt wanneer u hier geen attribuut opgeeft.

Bijvoorbeeld, aangezien vetgedrukte tekst kleurcode 1 is en gele tekst kleurcode 33 is, zou je gebruiken di=1;33 om mappen vet geel te maken. U kunt ook meer dan één attribuut specificeren. U kunt bijvoorbeeld di=1;4;33 om mappen vetgedrukt, geel onderstreept te maken.

Hier is de lijst met achtergrondkleurcodes:

  • Zwarte achtergrond: 40
  • Blauwe achtergrond: 44
  • Cyaan achtergrond: 46
  • Groene achtergrond: 42
  • Paarse achtergrond: 45
  • Rode achtergrond: 41
  • Witte achtergrond: 47
  • Gele achtergrond: 43

Omdat een blauwe achtergrond bijvoorbeeld kleurcode 44 is, zou u di=44 om een ​​blauwe achtergrond te gebruiken voor mappen. U kunt ook een achtergrondkleurcode, een voorgrondkleurcode en zoveel attributen combineren als u wilt. Bijvoorbeeld, di=1;4;33;44 zou u vetgedrukte, onderstreepte gele tekst op een blauwe achtergrond geven.

Hier is de lijst met bestandstypecodes:

  • Directory: di
  • Bestand: fi
  • Symbolische link: ln
  • Named Pipe (FIFO): pi
  • Socket: zo
  • Apparaat blokkeren: bd
  • Karakterapparaat: cd
  • Orphan Symbolische Link (verwijst naar een bestand dat niet meer bestaat): of
  • Ontbrekend bestand (een ontbrekend bestand waarnaar een symbolische verweesde link verwijst): mi
  • Uitvoerbaar bestand (heeft de “x” -machtiging): ex
  • * .extension: elk bestand dat eindigt op een extensie die u opgeeft. Gebruik bijvoorbeeld * .txt voor bestanden die eindigen op .txt, * .mp3 voor bestanden die eindigen op .mp3, * .desktop voor bestanden die eindigen op .desktop of wat u maar wilt. U kunt zoveel verschillende bestandsextensies specificeren als u wilt.

Specificeer zoveel verschillende typen bestandstypecodes met zoveel verschillende kleuren als u wilt, gescheiden door het teken:. Herhaal dit proces om uw LS_COLORS-variabele samen te stellen.

Stel dat u bijvoorbeeld vetgedrukte paarse tekst wilt gebruiken voor mappen, onderstreepte rode tekst voor uitvoerbare bestanden en vetgedrukte groene tekst op een rode achtergrond voor .mp3-bestanden. Als u de bestandstypecodes en kleurcodes uit de bovenstaande lijsten samenvoegt, krijgt u:

LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"

Hoe u uw nieuwe standaardkleuren instelt

Je hebt nu een aangepaste LS_COLORS-variabele die functioneert in de huidige Bash-sessie. U wilt het echter waarschijnlijk permanent maken, zodat het automatisch wordt gebruikt wanneer u een nieuwe Bash-sessie start zonder dat u dit hoeft te onthouden.

Je kunt je aangepaste LS_COLORS-variabele instellen – en elke andere Bash-variabele die je leuk vindt – door deze toe te voegen aan het .bashrc-bestand van je gebruikersaccount. Dit bestand bevindt zich op ~ / .bashrc. Dus als uw gebruikersnaam bob is, vindt u deze op /home/bob/.bashrc. Er zijn ook andere manieren om omgevingsvariabelen in te stellen, maar dit is een eenvoudige.

Open dit bestand eerst in uw favoriete teksteditor. We gebruiken hier nano als voorbeeld, maar je kunt vi, emacs of wat je maar wilt gebruiken.

nano ~/.bashrc

Voeg uw aangepaste LS_COLORS-variabele toe aan een nieuwe regel aan het einde van het bestand, als volgt:

LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"

Sla het bestand op en sluit af. Druk in nano op Ctrl + O en druk vervolgens op Enter om op te slaan en druk vervolgens op Ctrl + X om af te sluiten.

Elke keer dat je een nieuwe Bash-sessie start, zal Bash het .bashrc-bestand lezen en automatisch je LS_COLORS-variabele instellen. Om je kleuren in de toekomst te veranderen, ga terug naar je .bashrc-bestand en bewerk de LS_COLORS-regel.

U kunt ook gewoon het LS_COLORS= regel die je aan je .bashrc-bestand hebt toegevoegd om de standaardkleuren weer te gebruiken. Als u de waarde LS_COLORS niet instelt, gebruikt Bash de standaardkleuren.

Nieuwste artikelen

Gerelateerde artikelen