Startpagina » hoe » Hoe de kleuren van mappen en bestanden in de ls-opdracht te wijzigen

    Hoe de kleuren van mappen en bestanden in de ls-opdracht te wijzigen

    Als u de. Hebt uitgevoerd ls commando in Bash, zul je merken dat de mappen en bestanden die je ziet in kleur zijn volgens hun type. U kunt uw eigen kleurenschema aanpassen om verschillende tekstkleuren, achtergrondkleuren en opmaak te kiezen, zoals vet en onderstrepen.

    Hoe dit werkt

    Het kleurenschema wordt opgeslagen in de variabele LS_COLORS. Om uw huidige kleurenschema te bekijken, kunt u 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 je zelf zo'n lijst kunt maken.

    Voordat we hiermee omgaan, raden we aan de huidige inhoud van de variabele LS_COLORS op te slaan in een andere variabele. Hiermee kunt u snel de standaardinstellingen herstellen zonder uit de shell te hoeven loggen en opnieuw in te loggen, of het terminalvenster te sluiten en opnieuw te openen. Als u de huidige inhoud van de variabele LS_COLORS wilt opslaan in een nieuwe variabele met de naam ORIGINAL, voert u het volgende uit:

    ORIGINAL = $ LS_COLORS

    U kunt op elk gewenst 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 ze als uw nieuwe standaardwaarden te maken. U kunt altijd uitloggen en opnieuw inloggen of een terminalvenster sluiten en weer openen om de kleuren naar hun standaardinstelling te herstellen. Dit maakt het echter gemakkelijk om dit te doen met een enkele, snelle opdracht.

    Hoe aangepaste kleuren in te stellen

    De variabele LS_COLORS bevat een lijst met bestandstypen, samen met bijbehorende kleurcodes. De standaardlijst is lang omdat er voor een aantal verschillende bestandstypen verschillende kleuren worden opgegeven.

    Laten we een eenvoudig voorbeeld beginnen om te laten zien hoe dit werkt. Laten we zeggen dat we de kleur van mappen willen veranderen van standaard vet blauw naar vet rood. We kunnen het volgende commando uitvoeren om dit te doen:

    LS_COLORS = "di = 1; 31"

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

    Dit is echter slechts een heel eenvoudige LS_COLORS-variabele die mappen als één kleur definieert en elk ander bestandstype als de standaardkleur laat. Laten we zeggen dat we bestanden met de .desktop-bestandsextensie 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 bestandstypes en kleuren. Specificeer zoveel als je wilt in het formulier filetype = kleur, scheid elk met een dubbele punt (:) karakter.

    Om uw eigen lijst samen te stellen, moet u alleen de lijst met kleurcodes en bestandstypecodes kennen. Dit gebruikt dezelfde numerieke kleurcodes die u gebruikt bij het veranderen 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 deze gebruiken di = 33 om mappen geel te maken.

    Dit is de lijst met tekstkleurkenmerken:

    • Normale tekst: 0
    • Gewaagde of lichte tekst: 1 (afhankelijk van de terminalemulator.)
    • Gedimde tekst: 2
    • Onderstreepte tekst: 4
    • Knipperende tekst: 5 (Dit werkt niet in de meeste eindemulators.)
    • Omgekeerde tekst: 7 (hiermee worden de voorgrond- 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

    Wanneer u een kenmerk of meer dan één kleurcode opgeeft, scheidt u de lijst met codes met een puntkomma (;) - teken. U hoeft geen 0 op te geven voor normale tekst, omdat normale tekst wordt gebruikt als u hier geen attribuut opgeeft.

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

    Hier is de lijst met achtergrondkleurencodes:

    • 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 je die gebruiken di = 44 om een ​​blauwe achtergrond te gebruiken voor mappen. U kunt ook een achtergrondkleurcode, een voorgrondkleurcode en zoveel attributen combineren als u maar wilt. Bijvoorbeeld, di = 1; 4; 33; 44 zou je vette, onderstreepte gele tekst op een blauwe achtergrond geven.

    Hier is de lijst met codes voor bestandstypen:

    • Directory: di
    • Bestand: fi
    • Symbolische link: ln
    • Named Pipe (FIFO): pi
    • Socket: zo
    • Apparaat blokkeren: bd
    • Character Device: cd
    • Orphan Symbolic Link (verwijst naar een bestand dat niet meer bestaat): or
    • Ontbrekend bestand (een ontbrekend bestand waarnaar een symbolische link naar een wezen verwijst): mi
    • Uitvoerbaar bestand (heeft de "x" permissie): ex
    • * .extensie: 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 iets anders dat u bevalt. U kunt zoveel verschillende bestandsextensies opgeven als u wilt.

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

    Laten we bijvoorbeeld zeggen dat u vette paarse tekst wilt gebruiken voor mappen, onderstreepte rode tekst voor uitvoerbare bestanden en vetgedrukte groene tekst op een rode achtergrond voor .mp3-bestanden. Door de codes van het bestandstype en de kleurcodes uit de bovenstaande lijsten samen te stellen, krijgt u:

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

    Hoe u uw nieuwe standaardkleuren kunt instellen

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

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

    Open eerst dit bestand in de teksteditor van uw voorkeur. We gebruiken hier nano als voorbeeld, maar je kunt vi, emacs of iets anders gebruiken dat je leuk vindt.

    nano ~ / .bashrc

    Voeg je aangepaste LS_COLORS-variabele toe aan een nieuwe regel aan het einde van het bestand, zoals:

    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 vervolgens op Enter om op te slaan en druk vervolgens op Ctrl + X om af te sluiten.

    Wanneer 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 je terug naar je .bashrc-bestand en bewerk je de LS_COLORS-regel.

    Je kunt ook gewoon de verwijderen LS_COLORS = regel die u aan uw .bashrc-bestand hebt toegevoegd om de standaardkleuren opnieuw te gebruiken. Als u de waarde LS_COLORS niet instelt, gebruikt Bash de standaardkleuren.