Dacă ați rulat ls
în Bash, veți observa că directoarele și fișierele pe care le vedeți sunt colorate în funcție de tipul lor. Puteți personaliza propria schemă de culori pentru a alege diferite culori ale textului, culori de fundal și formatare, precum bold și subliniat.
Schema de culori este stocată în variabila LS_COLORS. Pentru a vizualiza schema de culori curentă, puteți spune Bash-ul să imprime conținutul variabilei:
echo $ LS_COLORS
Veți vedea o listă lungă de tipuri de fișiere și coduri de număr. Vom explica cum să vă creați o listă ca aceasta.
Înainte de a vă juca cu acest lucru, vă recomandăm să salvați conținutul curent al variabilei LS_COLORS la o altă variabilă. Acest lucru vă va permite să restaurați rapid setările prestabilite fără să vă deconectați de pe coajă și să vă conectați sau să închideți și redeschideți fereastra terminalului. Pentru a salva conținutul curent al variabilei LS_COLORS la o nouă variabilă numită ORIGINAL, executați:
ORIGINAL = $ LS_COLORS
În orice moment, puteți rula următoarea comandă pentru a anula modificările și pentru a restabili culorile implicite:
LS_COLORS = $ ORIGINAL
Modificările dvs. sunt întotdeauna temporare, până când editați un fișier pentru a le face noile valori implicite. Puteți să vă deconectați întotdeauna, să vă conectați sau să îl închideți și să redeschideți o fereastră de terminal pentru a restaura culorile la setarea implicită. Cu toate acestea, acest lucru face mai ușor acest lucru printr-o singură comandă rapidă.
Variabila LS_COLORS conține o listă de tipuri de fișiere împreună cu codurile de culoare asociate. Lista implicită este lungă deoarece specifică diferite culori pentru un număr de tipuri diferite de fișiere.
Să începem un exemplu de bază pentru a demonstra cum funcționează acest lucru. Să presupunem că dorim să schimbăm culoarea directoarelor de la culoarea albastră implicită la roșu aldine. Putem executa următoarea comandă pentru a face acest lucru:
LS_COLORS = "di = 1; 31"
di = 1; 31
biți spune ls
directoare (di
) sunteți (=
) bold (1;
) roșu (31
).
Cu toate acestea, aceasta este doar o variabilă foarte simplă LS_COLORS care definește directoarele ca o singură culoare și lasă orice alt tip de fișier ca culoare implicită. Să presupunem că dorim să facem fișiere cu extensia de dosar .desktop o culoare cyan subliniată, de asemenea. Putem executa următoarea comandă pentru a face acest lucru:
LS_COLORS = "di = 1: 31:. * Desktop = 4; 36"
Acest lucru spune ls
directoare (di
) sunteți (=
) bold (1;
) roșu (31
) și (:
) orice fișier care se termină în .desktop (* .desktop
) este (=
) subliniat (4;
) cian (36
).
Acesta este procesul de asamblare a listei de tipuri de fișiere și culori. Specificați cât doriți în formularul filetype = color, separând fiecare cu un caracter de colon (:).
Pentru a vă asambla lista, trebuie doar să cunoașteți lista de coduri de culoare și coduri de tip de fișier. Aceasta utilizează aceleași coduri de culoare numerice pe care le folosiți atunci când modificați culoarea din proiecția Bash.
Iată lista de coduri de culoare pentru textul în prim plan:
De exemplu, deoarece textul galben este codul de culoare 33, îl veți folosi di = 33
pentru a face directorii galbeni.
Iată lista atributelor culorilor de text:
Când specificați un atribut sau mai mult de un cod de culoare, separați lista de coduri cu un punct și punct (;). Nu este necesar să specificați 0 pentru textul normal, deoarece textul normal este utilizat atunci când nu specificați un atribut aici.
De exemplu, deoarece textul cu caractere aldine este codul de culori 1 și textul galben este codul de culoare 33, pe care îl utilizați di = 1; 33
pentru a face directoare galbene îndrăznețe. De asemenea, puteți specifica mai multe atribute. De exemplu, ați putea folosi di = 1; 4; 33
pentru a face directoare bold, subliniat galben.
Iată lista codurilor de culori de fundal:
De exemplu, deoarece un fundal albastru este codul de culoare 44, îl veți folosi di = 44
pentru a utiliza un fundal albastru pentru directoare. De asemenea, puteți combina un cod de culoare de fundal, un cod de culoare în prim plan și cât mai multe atribute pe care le doriți. De exemplu, di = 1; 4; 33; 44
vă va oferi un text galben subliniat, subliniat pe un fundal albastru.
Iată lista codurilor de tip de fișier:
Specificați cât mai multe tipuri de coduri de tip de fișier cu cât mai multe culori doriți, separate de caracterul:. Repetați acest proces pentru a vă asambla variabila LS_COLORS.
De exemplu, să presupunem că doriți să utilizați un text pur îndrăgit pentru directoare, text roșu subliniat pentru fișierele executabile și text verde aldine pe fundal roșu pentru fișierele .mp3. Punând împreună codurile de tip de fișier și codurile de culoare din listele de mai sus, veți obține:
LS_COLORS = "di = 1; 35: ex = 4; 31:. * Mp3 = 1; 32; 41"
Acum aveți o variabilă LS_COLORS personalizată care funcționează în sesiunea curentă Bash. Cu toate acestea, probabil că doriți să o faceți permanent, astfel încât să fie utilizată automat ori de câte ori începeți o nouă sesiune Bash fără să fiți nevoit să vă amintiți acest lucru.
Puteți seta varianta personalizată LS_COLORS - și orice altă variabilă Bash doriți - adăugând-o în fișierul .bashrc al contului dvs. de utilizator. Acest fișier este localizat la ~ / .bashrc. Deci, dacă numele de utilizator este bob, îl veți găsi la /home/bob/.bashrc. Există și alte modalități de a seta și variabilele de mediu, dar aceasta este una simplă.
Mai întâi, deschideți acest fișier în editorul de text preferat. Vom folosi nano aici ca exemplu, dar puteți folosi vi, emacs sau orice altceva doriți.
nano ~ / .bashrc
Adăugați variabila LS_COLORS personalizată la o linie nouă la sfârșitul fișierului, după cum urmează:
LS_COLORS = "di = 1; 35: ex = 4; 31:. * Mp3 = 1; 32; 41"
Salvați fișierul și ieșiți. În nano, apăsați Ctrl + O și apoi apăsați Enter pentru a salva, apoi apăsați Ctrl + X pentru a ieși.
Ori de câte ori porniți o nouă sesiune Bash, Bash va citi fișierul .bashrc și va seta automat variabila LS_COLORS. Pentru a schimba culorile în viitor, reveniți la fișierul .bashrc și editați linia LS_COLORS.
De asemenea, puteți șterge doar LS_COLORS =
linie pe care ați adăugat-o în fișierul .bashrc pentru a utiliza din nou culorile implicite. Dacă nu setați valoarea LS_COLORS, Bash va folosi culorile implicite.