Hjemmeside » hvordan » Slik endrer du farger på kataloger og filer i ls-kommandoen

    Slik endrer du farger på kataloger og filer i ls-kommandoen

    Hvis du har kjørt ls kommandoen i Bash, vil du legge merke til at katalogene og filene du ser er farget i henhold til deres type. Du kan tilpasse ditt eget fargevalg for å velge forskjellige tekstfarger, bakgrunnsfarger og formatering som fet og understreket.

    Slik fungerer dette

    Fargeskjemaet er lagret i LS_COLORS-variabelen. For å vise din nåværende fargevalg, kan du fortelle Bash å skrive ut innholdet i variabelen:

    ekko $ LS_COLORS

    Du ser en lang liste over filtyper og nummerkoder. Vi forklarer hvordan du oppretter en liste som dette selv.

    Før du leker med dette, anbefaler vi at du lagrer det nåværende innholdet i LS_COLORS-variabelen til en annen variabel. Dette vil tillate deg å raskt gjenopprette standardinnstillingene uten å logge ut av skallet og logge inn igjen, eller lukke og åpne terminalvinduet igjen. For å lagre det nåværende innholdet i LS_COLORS-variabelen til en ny variabel som heter ORIGINAL, kjør:

    ORIGINAL = $ LS_COLORS

    Når som helst kan du kjøre følgende kommando for å angre endringene dine og gjenopprette standardfargene:

    LS_COLORS = $ ORIGINAL

    Dine endringer er alltid midlertidige til du redigerer en fil for å gjøre dem til de nye standardinnstillingene. Du kan alltid logge ut og logge på eller lukke og åpne et terminalvindu for å gjenopprette fargene til standardinnstillingen. Dette gjør det imidlertid enkelt å gjøre det med en enkelt, rask kommando.

    Slik setter du inn egendefinerte farger

    LS_COLORS-variabelen inneholder en liste over filtyper sammen med tilhørende fargekoder. Standardlisten er lang fordi den angir forskjellige farger for en rekke forskjellige filtyper.

    La oss starte et grunnleggende eksempel for å demonstrere hvordan dette virker. La oss si at vi vil endre fargen på kataloger fra standard-fed blå til fet rød. Vi kan kjøre følgende kommando for å gjøre det:

    LS_COLORS = "di = 1; 31"

    De di = 1; 31 litt forteller ls de katalogene (di) er (=) modig (1;) rød (31).

    Dette er imidlertid bare en veldig enkel LS_COLORS-variabel som definerer kataloger som en farge, og etterlater alle andre typer filer som standardfarge. La oss si at vi vil lage filer med .desktop filutvidelsen en understreket cyan farge også. Vi kan kjøre følgende kommando for å gjøre det:

    LS_COLORS = "di = 1: 31:. * Stasjonære = 4; 36"

    Dette forteller ls de katalogene (di) er (=) modig (1;) rød (31) og (:) hvilken som helst fil som slutter i .desktop (* Desktop-) er (=) understreket (4;) cyan (36).

    Dette er prosessen for å sette sammen listen over filtyper og farger. Angi så mange som du vil i skjemaet filetype = farge, skille hver med et kolon (:) tegn.

    For å sette sammen din egen liste, trenger du bare å vite listen over fargekoder og filtype koder. Dette bruker de samme numeriske fargekodene du bruker når du endrer fargen i Bash-spørringen.

    Her er listen over fargekoder for forgrunns tekst:

    • Svart: 30
    • Blå: 34
    • Cyan: 36
    • Grønn: 32
    • Lilla: 35
    • Rød: 31
    • Hvit: 37
    • Gul: 33

    For eksempel, siden gul tekst er fargekode 33, vil du bruke di = 33 for å gjøre kataloger gult.

    Her er listen over tekstfargeattributter:

    • Normal tekst: 0
    • Fet eller lett tekst: 1 (det avhenger av terminalemulatoren.)
    • Dim tekst: 2
    • Understreket tekst: 4
    • Blinkende tekst: 5 (Dette fungerer ikke i de fleste terminalemulatorer.)
    • Omvendt tekst: 7 (Dette inverterer forgrunnen og bakgrunnsfargene, så du får se svart tekst på en hvit bakgrunn hvis den gjeldende teksten er hvit tekst på en svart bakgrunn.)
    • Skjult tekst: 8

    Når du angir et attributt eller mer enn en fargekode, skilles kodenes liste med et semikolon (;) tegn. Du trenger ikke å spesifisere 0 for normal tekst, da vanlig tekst brukes når du ikke angir et attributt her.

    For eksempel, siden fet skrift er fargekode 1 og gul tekst er fargekode 33, vil du bruke di = 1; 33 for å gjøre kataloger fet gul. Du kan også angi mer enn ett attributt. For eksempel kan du bruke di = 1; 4; 33 for å gjøre kataloger fet, understreket gul.

    Her er listen over bakgrunnsfargekoder:

    • Svart bakgrunn: 40
    • Blå bakgrunn: 44
    • Cyan bakgrunn: 46
    • Grønn bakgrunn: 42
    • Lilla bakgrunn: 45
    • Rød bakgrunn: 41
    • Hvit bakgrunn: 47
    • Gul bakgrunn: 43

    For eksempel, siden en blå bakgrunn er fargekode 44, vil du bruke di = 44 å bruke en blå bakgrunn for kataloger. Du kan også kombinere en bakgrunnsfargekode, en forgrunnsfargekode og så mange attributter som du vil. For eksempel, di = 1; 4; 33; 44 ville gi deg fet, understreket gul tekst på en blå bakgrunn.

    Her er listen over filtypekoder:

    • Katalog: di
    • Fil: fi
    • Symbolisk lenke: ln
    • Navngitt rør (FIFO): pi
    • Stikkontakt: så
    • Blokker enhet: bd
    • Tegn enhet: cd
    • Orphan Symbolic Link (peker på en fil som ikke lenger eksisterer): eller
    • Manglende fil (en manglende fil som en forældreløs symbolsk lenke peker på): mi
    • Kjørbar fil (har "x" tillatelse): ex
    • * .extension: Enhver fil som slutter med en utvidelse du angir. For eksempel bruk * .txt for filer som slutter i .txt, * .mp3 for filer som slutter i .mp3, * .desktop for filer som slutter i .desktop, eller noe annet du liker. Du kan angi så mange forskjellige filutvidelser som du vil.

    Angi så mange forskjellige typer filtypekoder med så mange forskjellige farger som du vil, skilt av: tegnet. Gjenta denne prosessen for å sette sammen LS_COLORS-variabelen.

    For eksempel, la oss si at du vil bruke fet lilla tekst for kataloger, understreket rød tekst for kjørbare filer og fet grønn tekst på en rød bakgrunn for .mp3-filer. Å sette sammen filtypekoder og fargekoder fra listene ovenfor, vil du få:

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

    Slik setter du inn nye standardfarger

    Du har nå en tilpasset LS_COLORS-variabel som fungerer i den nåværende Bash-økten. Men du vil sannsynligvis gjøre den permanent, så den brukes automatisk når du starter en ny Bash-økt uten at du må huske dette.

    Du kan angi din tilpassede LS_COLORS-variabel- og hvilken som helst annen Bash-variabel du liker - ved å legge den til i brukerkontoens .bashrc-fil. Denne filen er plassert på ~ / .bashrc. Så, hvis brukernavnet ditt er bob, finner du det på /home/bob/.bashrc. Det finnes også andre måter å sette miljøvariabler på, men dette er enkelt.

    Først åpner du denne filen i ønsket tekstredigeringsprogram. Vi bruker nano her som et eksempel, men du kan bruke vi, emacs eller noe annet du liker.

    nano ~ / .bashrc

    Legg til din tilpassede LS_COLORS-variabel til en ny linje på slutten av filen, slik som:

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

    Lagre filen og avslutt. I nano, trykk Ctrl + O, og trykk deretter Enter for å lagre, og trykk deretter Ctrl + X for å avslutte.

    Når du starter en ny Bash-økt, leser Bash .bashrc-filen og angir automatisk LS_COLORS-variabelen. For å endre fargene dine i fremtiden, gå tilbake til din .bashrc-fil og rediger linjen LS_COLORS.

    Du kan også bare slette LS_COLORS = linje du la til i din .bashrc-fil for å bruke standardfarger på nytt. Hvis du ikke angir verdien LS_COLORS, vil Bash bruke standardfarger.