Hemsida » hur » Så här ändrar du färgerna i kataloger och filer i ls-kommandot

    Så här ändrar du färgerna i kataloger och filer i ls-kommandot

    Om du har kört ls kommandot i Bash, märker du att kataloger och filer du ser är färgade enligt deras typ. Du kan anpassa ditt eget färgschema för att välja olika textfärger, bakgrundsfärger och formatering som fet och understruken.

    Hur det fungerar

    Färgschemat lagras i LS_COLORS-variabeln. För att visa ditt nuvarande färgschema kan du berätta för Bash att skriva ut innehållet i variabeln:

    echo $ LS_COLORS

    Du får se en lång lista över filtyper och nummerkoder. Vi förklarar hur du skapar en lista som denna själv.

    Innan vi spelar med det här, rekommenderar vi att du sparar det aktuella innehållet i LS_COLORS-variabeln till en annan variabel. På så sätt kan du snabbt återställa standardinställningarna utan att logga ut från skalet och logga in igen eller stänga och öppna terminalfönstret igen. Om du vill spara det aktuella innehållet i LS_COLORS-variabeln till en ny variabel som heter ORIGINAL, kör:

    ORIGINAL = $ LS_COLORS

    När som helst kan du köra följande kommando för att ångra dina ändringar och återställa standardfärgerna:

    LS_COLORS = $ ORIGINAL

    Dina ändringar är alltid tillfälliga tills du redigerar en fil för att göra dem till nya standardinställningar. Du kan alltid logga ut och skriva in eller stänga och öppna ett terminalfönster för att återställa färgerna till standardinställningen. Detta gör det enkelt att göra det med ett enda snabbkommando.

    Så här ställer du in anpassade färger

    LS_COLORS-variabeln innehåller en lista över filtyper tillsammans med tillhörande färgkoder. Standardlistan är lång eftersom den anger olika färger för ett antal olika filtyper.

    Låt oss börja ett grundläggande exempel för att visa hur det fungerar. Låt oss säga att vi vill ändra färg på kataloger från standard fetblått till fet rött. Vi kan köra följande kommando för att göra det:

    LS_COLORS = "di = 1; 31"

    De di = 1; 31 lite berättar ls de katalogerna (di) är (=) fet (1;) röd (31).

    Detta är dock bara en mycket enkel LS_COLORS-variabel som definierar kataloger som en färg och lämnar alla andra typer av filer som standardfärgen. Låt oss säga att vi vill göra filer med .desktop filtillägg en understruken cyan färg också. Vi kan köra följande kommando för att göra det:

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

    Detta berättar ls de katalogerna (di) är (=) fet (1;) röd (31) och (:) vilken fil som slutar i .desktop (* .desktop) är (=) understryks (4;) cyan (36).

    Det här är processen för att montera din lista över filtyper och färger. Ange så många som du vill ha i formuläret filetype = färg, separera var och en med ett kolon (:) tecken.

    För att montera din egen lista behöver du bara lista över färgkoder och filtypkoder. Detta använder samma numeriska färgkoder som du använder när du ändrar färgen i din Bash-prompten.

    Här är listan över färgkoder för förgrunds text:

    • Svart: 30
    • Blå: 34
    • Cyan: 36
    • Grön: 32
    • Lila: 35
    • Röd: 31
    • Vit: 37
    • Gul: 33

    Till exempel, eftersom gul text är färgkod 33, skulle du använda di = 33 för att göra kataloger gula.

    Här är listan över textfärgattribut:

    • Normal text: 0
    • Fet eller ljus text: 1 (det beror på terminalemulatorn.)
    • Dim Text: 2
    • Understruken text: 4
    • Blinkande text: 5 (Detta fungerar inte i de flesta terminalemulatorer.)
    • Omvänd text: 7 (Detta inverterar förgrunds- och bakgrundsfärgerna, så du får se svart text på en vit bakgrund om den nuvarande texten är vit text på en svart bakgrund.)
    • Dold text: 8

    När du anger ett attribut eller mer än en färgkod, separera listan med koder med en semikolon (;) tecken. Du behöver inte ange 0 för normal text, eftersom vanlig text används när du inte anger ett attribut här.

    Till exempel, eftersom fet text är färgkod 1 och gul text är färgkod 33, skulle du använda di = 1; 33 för att göra kataloger djärva gula. Du kan även ange mer än ett attribut. Till exempel kan du använda di = 1; 4; 33 för att göra kataloger djärva, understrukna gula.

    Här är listan över bakgrundsfärgskoder:

    • Svart bakgrund: 40
    • Blå bakgrund: 44
    • Cyan bakgrund: 46
    • Grön bakgrund: 42
    • Lila bakgrund: 45
    • Röd bakgrund: 41
    • Vit bakgrund: 47
    • Gul bakgrund: 43

    Till exempel, eftersom en blå bakgrund är färgkod 44, skulle du använda di = 44 att använda en blå bakgrund för kataloger. Du kan också kombinera en bakgrundsfärgskod, en förgrundsfärgskod och så många attribut som du vill. Till exempel, di = 1; 4; 33; 44 skulle ge dig djärva, understrukna gul text på en blå bakgrund.

    Här är listan över filtypkoder:

    • Katalog: di
    • Fil: fi
    • Symbolisk länk: ln
    • Namngivna Rör (FIFO): pi
    • Socket: så
    • Blockera enhet: bd
    • Tecken Enhet: cd
    • Orphan Symbolic Link (pekar på en fil som inte längre existerar): eller
    • Saknad fil (en saknad fil som en orphan symbolisk länk pekar på): mi
    • Executable File (har x-behörigheten): ex
    • * .extension: En fil som slutar med en anknytning du anger. Till exempel, använd * .txt för filer som slutar i .txt, * .mp3 för filer som slutar i .mp3, * .desktop för filer som slutar i .desktop eller något annat du vill. Du kan ange så många olika filtillägg som du vill.

    Ange så många olika typer av filtypkoder med så många olika färger som du vill, åtskilda av: tecknet. Upprepa denna process för att montera din LS_COLORS-variabel.

    Låt oss till exempel säga att du vill använda fetblå text för kataloger, understruken röd text för körbara filer och fet grön text på en röd bakgrund för .mp3-filer. Om du kombinerar filtypkoder och färgkoder från listorna ovan får du:

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

    Så här ställer du in nya standardfärger

    Du har nu en anpassad LS_COLORS-variabel som fungerar i den aktuella Bash-sessionen. Men du vill noga göra det permanent så det används automatiskt när du startar en ny Bash-session utan att du behöver komma ihåg det här.

    Du kan ställa in din anpassade LS_COLORS-variabel - och alla andra Bash-variabler som du gillar - genom att lägga till den i ditt användarkonto .bashrc-fil. Den här filen finns på ~ / .bashrc. Så, om ditt användarnamn är Bob, hittar du det på /home/bob/.bashrc. Det finns också andra sätt att ställa in miljövariabler också, men det här är enkelt.

    Öppna först den här filen i din föredragna textredigerare. Vi använder nano här som ett exempel, men du kan använda vi, emacs eller något annat du gillar.

    nano ~ / .bashrc

    Lägg till din anpassade LS_COLORS-variabel till en ny rad i slutet av filen, så här:

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

    Spara filen och avsluta. I nano, tryck Ctrl + O och tryck sedan på Enter för att spara, tryck sedan Ctrl + X för att avsluta.

    När du startar en ny Bash-session kommer Bash att läsa .bashrc-filen och automatiskt ställa in din LS_COLORS-variabel. För att ändra dina färger i framtiden, gå tillbaka till din .bashrc-fil och redigera LS_COLORS-raden.

    Du kan också bara ta bort LS_COLORS = linje du lagt till i din .bashrc-fil för att använda standardfärgerna igen. Om du inte ställer in LS_COLORS-värdet kommer Bash att använda standardfärgerna.