Pagina principala » HOWTO » Cum se schimbă culorile directoarelor și fișierelor în comanda ls

    Cum se schimbă culorile directoarelor și fișierelor în comanda ls

    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.

    Cum functioneaza aceasta

    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 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 implicite 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 modificați un fișier pentru a le crea noile valori prestabilite. Puteți să vă deconectați întotdeauna, să vă conectați sau să închideți și să redeschideți o fereastră de terminal pentru a restaura culorile la setarea lor implicită. Cu toate acestea, acest lucru face mai ușor acest lucru printr-o singură comandă rapidă.

    Cum să setați culorile personalizate

    Variabila LS_COLORS conține o listă de tipuri de fișiere împreună cu codurile de culoare asociate. Lista implicită este lungă deoarece specifică culori diferite 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 (=) îndrăzneț (1;) roșu (31).

    Totuși, 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 sub formă de culoare cyan, 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 (=) îndrăzneț (1;) roșu (31) și (:) orice fișier care se termină în .desktop (* .desktop) este (=) a subliniat (4;) cian (36).

    Acesta este procesul de asamblare a listei de tipuri de fișiere și culori. Specificați cât de multe 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 în proiecția Bash.

    Iată lista de coduri de culoare pentru textul în prim plan:

    • Negru: 30
    • Albastru: 34
    • Cyan: 36
    • Verde: 32
    • Violet: 35
    • Roșu: 31
    • Alb: 37
    • Galben: 33

    De exemplu, deoarece textul galben este codul de culoare 33, îl veți folosi di = 33 pentru a face directoarele galbene.

    Iată lista atributelor culorilor de text:

    • Text normal: 0
    • Text bold sau ușor: 1 (Depinde de emulatorul terminalului.)
    • Dim Text: 2
    • Text subliniat: 4
    • Text mișcare: 5 (Acest lucru nu funcționează în majoritatea emulatorilor de terminale.)
    • Text inversat: 7 (Acest lucru inversează culorile primului și fundalului, astfel încât veți vedea textul negru pe fundal alb dacă textul actual este text alb pe fundal negru.)
    • Text ascuns: 8

    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, din moment ce textul cu caractere aldine este codul de culori 1 și textul galben este codul de culoare 33, îl veți folosi 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 culorilor de fundal:

    • Fundal negru: 40
    • Fundal albastru: 44
    • Fundal de cian: 46
    • Fundal verde: 42
    • Fundal violet: 45
    • Fundal roșu: 41
    • Fundal alb: 47
    • Fundal galben: 43

    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. Puteți, de asemenea, să combinați un cod de culoare de fundal, un cod de culoare 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:

    • Directory: di
    • Fișier: fi
    • Legătură simbolică: ln
    • Pipe numită (FIFO): pi
    • Socket: deci
    • Blocați dispozitivul: bd
    • Dispozitiv de caractere: cd
    • Link orfan simbolic (indică un fișier care nu mai există): sau
    • Fișierul lipsă (un fișier lipsă la care se referă o legătură simbolică orfană): mi
    • Fișier executabil (are permisiunea "x"): ex
    • * .extension: Orice fișier care se termină cu o extensie pe care o specificați. De exemplu, utilizați * .txt pentru fișierele care se termină în .txt, * .mp3 pentru fișierele care se termină în .mp3, * .desktop pentru fișierele care se termină în .desktop sau orice altceva doriți. Puteți specifica cât mai multe extensii de fișiere diferite, după cum doriți.

    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șiere 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"

    Cum să setați culorile implicite noi

    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 stabili variabile de mediu, dar acesta este unul simplu.

    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 = 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.