Sådan ændres farverne i mapper og filer i ls-kommandoen
Hvis du har kørt ls
kommando i Bash, vil du bemærke, at de mapper og filer du ser er farvet efter deres type. Du kan tilpasse dit eget farveskema til at vælge forskellige tekstfarver, baggrundsfarver og formatering som fed og understreget.
Sådan virker dette
Farveskemaet er gemt i LS_COLORS-variablen. Hvis du vil se dit nuværende farveskema, kan du fortælle Bash at udskrive indholdet af variablen:
ekko $ LS_COLORS
Du får vist en lang liste over filtyper og nummerkoder. Vi forklarer, hvordan du selv opretter en liste som denne.
Før vi leger rundt med dette, anbefaler vi at gemme det aktuelle indhold af LS_COLORS-variablen til en anden variabel. Dette giver dig mulighed for hurtigt at gendanne standardindstillingerne uden at logge ud af skallen og tilmelde dig igen eller lukke og genåbne terminalvinduet. For at gemme det aktuelle indhold af LS_COLORS-variablen til en ny variabel, der hedder ORIGINAL, skal du køre:
ORIGINAL = $ LS_COLORS
På ethvert tidspunkt kan du køre følgende kommando for at fortryde dine ændringer og gendanne standardfarverne:
LS_COLORS = $ ORIGINAL
Dine ændringer er altid midlertidige, indtil du redigerer en fil for at gøre dem til dine nye standardindstillinger. Du kan altid logge ud og logge ind eller lukke og genåbne et terminalvindue for at gendanne farverne til deres standardindstilling. Men det gør det nemt at gøre det med en enkelt, hurtig kommando.
Sådan indstilles brugerdefinerede farver
LS_COLORS-variablen indeholder en liste over filtyper sammen med tilhørende farvekoder. Standardlisten er lang, fordi den angiver forskellige farver for en række forskellige filtyper.
Lad os starte et grundlæggende eksempel for at demonstrere, hvordan det virker. Lad os sige, at vi vil ændre farven på mapper fra standard fed blå til fed rød. Vi kan køre følgende kommando for at gøre det:
LS_COLORS = "di = 1; 31"
Det di = 1; 31
bit fortæller ls
disse mapper (di
) er (=
) fed (1;
) rød (31
).
Dette er imidlertid kun en meget enkel LS_COLORS-variabel, der definerer mapper som en farve og efterlader hver anden type fil som standardfarven. Lad os sige, at vi også vil lave filer med .desktop filudvidelsen en understreget cyan farve. Vi kan køre følgende kommando for at gøre det:
LS_COLORS = "di = 1: 31:. * Desktop = 4; 36"
Dette fortæller ls
disse mapper (di
) er (=
) fed (1;
) rød (31
) og (:
) enhver fil, der slutter i .desktop (* .desktop
) er (=
) understreget (4;
) cyan (36
).
Dette er processen til at samle din liste over filtyper og farver. Angiv så mange som du kan lide i formularen filetype = farve, adskille hver med et kolon (:) tegn.
For at samle din egen liste skal du bare kende listen over farvekoder og filtypekoder. Dette bruger de samme numeriske farvekoder, du bruger, når du ændrer farven i din Bash-prompt.
Her er listen over farvekoder for forgrunds tekst:
- Sort: 30
- Blå: 34
- Cyan: 36
- Grøn: 32
- Lilla: 35
- Rød: 31
- Hvid: 37
- Gul: 33
For eksempel, da gul tekst er farvekode 33, vil du bruge di = 33
at gøre mapper gule.
Her er listen over tekstfarveattributter:
- Normal tekst: 0
- Fed eller lys tekst: 1 (det afhænger af terminalemulatoren.)
- Dim tekst: 2
- Understreget tekst: 4
- Blinkende tekst: 5 (Dette virker ikke i de fleste terminalemulatorer.)
- Omvendt tekst: 7 (Dette omdanner forgrunds- og baggrundsfarverne, så du får vist sort tekst på en hvid baggrund, hvis den nuværende tekst er hvid tekst på en sort baggrund.)
- Skjult tekst: 8
Når du angiver en attribut eller mere end en farvekode, skal du adskille listen over koder med et semikolon (;) tegn. Du behøver ikke at angive 0 for normal tekst, da normal tekst bruges, når du ikke angiver en attribut her.
For eksempel, da fed skrift er farvekode 1 og gul tekst er farvekode 33, vil du bruge di = 1; 33
at gøre mapper fed gule. Du kan også angive mere end én attribut. For eksempel kan du bruge di = 1; 4; 33
for at gøre mapper fed, understreget gul.
Her er listen over baggrundsfarvekoder:
- Sort baggrund: 40
- Blå baggrund: 44
- Cyan baggrund: 46
- Grøn baggrund: 42
- Lilla baggrund: 45
- Rød baggrund: 41
- Hvid baggrund: 47
- Gul baggrund: 43
For eksempel, da en blå baggrund er farvekode 44, vil du bruge di = 44
at bruge en blå baggrund for mapper. Du kan også kombinere en baggrundsfarvekode, en forgrundsfarvekode og så mange attributter som du vil. For eksempel, di = 1; 4; 33; 44
ville give dig fed, understreget gul tekst på en blå baggrund.
Her er listen over filtypekoder:
- Katalog: di
- Fil: fi
- Symbolisk link: ln
- Navngivne rør (FIFO): pi
- Socket: så
- Bloker enhed: bd
- Tegn enhed: cd
- Orphan Symbolic Link (peger på en fil, der ikke længere eksisterer): eller
- Manglende fil (en manglende fil, som et forældreløst symbolsk link peger på): mi
- Executable File (har "x" tilladelsen): ex
- *. extension: Enhver fil, der slutter med en udvidelse, du angiver. For eksempel, brug * .txt for filer, der slutter i .txt, * .mp3 for filer, der slutter i .mp3, * .desktop for filer, der slutter i .desktop eller noget andet du kan lide. Du kan angive så mange forskellige filudvidelser som du vil.
Angiv så mange forskellige typer af filtypekoder med så mange forskellige farver som du vil, adskilt af: tegn. Gentag denne proces for at samle din LS_COLORS-variabel.
Lad os f.eks. Sige, at du vil bruge fed lilla tekst til mapper, understreget rød tekst til eksekverbare filer og fed grøn tekst på en rød baggrund for .mp3-filer. Hvis du kombinerer filtypekoder og farvekoder fra ovenstående lister, vil du få:
LS_COLORS = "di = 1; 35: ex = 4; 31:. * Mp3 = 1; 32; 41"
Sådan indstiller du dine nye standardfarver
Du har nu en brugerdefineret LS_COLORS-variabel, der fungerer i den aktuelle Bash-session. Men du vil sikkert gøre det permanent, så det bruges automatisk, når du starter en ny Bash session uden at du behøver at huske dette.
Du kan indstille din brugerdefinerede LS_COLORS-variabel - og enhver anden Bash-variabel, du kan lide - ved at tilføje den til din brugerkonto .bashrc-fil. Denne fil er placeret på ~ / .bashrc. Så hvis dit brugernavn er Bob, finder du det på /home/bob/.bashrc. Der er også andre måder at indstille miljøvariabler på, men det er en simpel.
Først skal du åbne denne fil i dit foretrukne tekstredigeringsprogram. Vi bruger nano her som et eksempel, men du kan bruge vi, emacs eller noget andet du kan lide.
nano ~ / .bashrc
Tilføj din tilpassede LS_COLORS-variabel til en ny linje i slutningen af filen, som sådan:
LS_COLORS = "di = 1; 35: ex = 4; 31:. * Mp3 = 1; 32; 41"
Gem filen og afslut. I nano skal du trykke på Ctrl + O og derefter trykke på Enter for at gemme, og tryk derefter på Ctrl + X for at afslutte.
Når du starter en ny Bash-session, vil Bash læse .bashrc-filen og automatisk indstille din LS_COLORS-variabel. For at ændre dine farver i fremtiden, skal du gå tilbage til din .bashrc-fil og redigere linjen LS_COLORS.
Du kan også bare slette LS_COLORS =
linje du tilføjede til din .bashrc-fil for at bruge standardfarverne igen. Hvis du ikke indstiller værdien LS_COLORS, bruger Bash standardfarverne.