Cum să schimbați culorile directoarelor și fișierelor în comanda ls

Publicat: 2022-01-29

Dacă ați rulat comanda ls în Bash, veți observa că directoarele și fișierele pe care le vedeți sunt colorate în funcție de tipul lor. Vă puteți personaliza propria schemă de culori pentru a alege diferite culori de text, culori de fundal și formatare, cum ar fi aldine și subliniere.

Cum funcționează

Schema de culori este stocată în variabila LS_COLORS. Pentru a vizualiza schema de culori curentă, îi puteți spune lui Bash să imprime conținutul variabilei:

 eco $LS_COLORS

Veți vedea o listă lungă de tipuri de fișiere și coduri numerice. Vă vom explica singur cum să creați o listă ca aceasta.

Înainte de a juca cu asta, vă recomandăm să salvați conținutul curent al variabilei LS_COLORS într-o altă variabilă. Acest lucru vă va permite să restabiliți rapid setările implicite fără să vă deconectați din shell și să vă conectați din nou sau să închideți și să redeschideți fereastra terminalului. Pentru a salva conținutul curent al variabilei LS_COLORS într-o nouă variabilă numită ORIGINAL, rulați:

 ORIGINAL=$LS_COLORS 

În orice moment, puteți rula următoarea comandă pentru a anula modificările și a restabili culorile implicite:

 LS_COLORS=$ORIGINAL
Publicitate

Modificările dvs. sunt întotdeauna temporare până când editați un fișier pentru a le transforma în noile dvs. implicite. Puteți oricând să vă deconectați și să vă conectați din nou sau să închideți și să redeschideți o fereastră de terminal pentru a restabili culorile la setarea lor implicită. Cu toate acestea, acest lucru face ușor să faceți acest lucru cu o singură comandă rapidă.

Cum să setați culori 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ă. Să presupunem că vrem să schimbăm culoarea directoarelor de la albastru aldin implicit la roșu aldine. Putem rula următoarea comandă pentru a face acest lucru:

 LS_COLORS="di=1;31"

Bitul di=1;31 îi spune lui ls că directoarele ( di ) sunt ( = ) aldine ( 1; ) roșii ( 31 ).

Cu toate acestea, aceasta este doar o variabilă LS_COLORS foarte simplă care definește directoarele ca o singură culoare și lasă orice alt tip de fișier ca culoare implicită. Să presupunem că vrem să facem și fișierele cu extensia de fișier .desktop o culoare cyan subliniată. Putem rula următoarea comandă pentru a face acest lucru:

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

Aceasta îi ls că directoarele ( di ) sunt ( = ) bold ( 1; ) roșu ( 31 ) și ( : ) orice fișier care se termină în .desktop ( *.desktop ) este ( = ) subliniat ( 4; ) cyan ( 36 ).

Acesta este procesul de asamblare a listei de tipuri și culori de fișiere. Specificați câte doriți în forma filetype=color, separând fiecare cu un caracter două puncte (:).

LEGATE: Cum să personalizați (și să colorați) promptul dvs. Bash

Pentru a vă asambla propria listă, va trebui doar să cunoașteți lista de coduri de culoare și coduri de tip de fișier. Aceasta utilizează aceleași coduri numerice de culoare pe care le utilizați atunci când schimbați culoarea în promptul Bash.

Iată lista codurilor de culoare pentru textul din 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, ați folosi di=33 pentru a face directoarele galbene.

Iată lista de atribute de culoare a textului:

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

Când specificați un atribut sau mai multe coduri de culoare, separați lista de coduri cu un caracter punct și virgulă (;). Nu trebuie să specificați 0 pentru textul normal, deoarece textul normal este folosit atunci când nu specificați un atribut aici.

De exemplu, deoarece textul îngroșat este codul de culoare 1 și textul galben este codul de culoare 33, ați folosi di=1;33 pentru a face directoarele galbene îngroșate. De asemenea, puteți specifica mai multe atribute. De exemplu, puteți folosi di=1;4;33 pentru a face directoarele aldine, subliniate cu galben.

Iată lista codurilor de culoare de fundal:

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

De exemplu, deoarece un fundal albastru este codul de culoare 44, aț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 de prim-plan și câte atribute doriți. De exemplu, di=1;4;33;44 vă va oferi un text galben subliniat, aldine, pe un fundal albastru.

Iată lista codurilor de tip de fișier:

  • Director: di
  • Dosar: fi
  • Legătură simbolică: ln
  • Țeavă numită (FIFO): pi
  • Priză: deci
  • Dispozitiv de blocare: bd
  • Dispozitiv de caractere: cd
  • Legătură simbolică orfană (indică un fișier care nu mai există): sau
  • Fișier lipsă (un fișier lipsă la care indică 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âte extensii de fișiere diferite doriți.
Publicitate

Specificați câte tipuri diferite de coduri de tip de fișier cu oricâte culori diferite doriți, separate prin caracterul :. Repetați acest proces pentru a asambla variabila LS_COLORS.

De exemplu, să presupunem că doriți să utilizați text violet aldine pentru directoare, text subliniat roșu pentru fișierele executabile și text aldine verde 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 noile culori implicite

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ă a fi nevoie să vă amintiți acest lucru.

Puteți seta variabila personalizată LS_COLORS - și orice altă variabilă Bash pe care o doriți - adăugând-o la fișierul .bashrc al contului dvs. de utilizator. Acest fișier se află la ~/.bashrc. Deci, dacă numele dvs. de utilizator este bob, îl veți găsi la /home/bob/.bashrc. Există și alte moduri de a seta 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 personalizată LS_COLORS la o nouă linie la sfârșitul fișierului, astfel:

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

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 începeți o nouă sesiune Bash, Bash va citi fișierul .bashrc și va seta automat variabila LS_COLORS. Pentru a vă schimba culorile în viitor, reveniți la fișierul .bashrc și editați linia LS_COLORS.

De asemenea, puteți șterge linia LS_COLORS= pe care ați adăugat-o în fișierul dvs. .bashrc pentru a utiliza din nou culorile implicite. Dacă nu setați valoarea LS_COLORS, Bash va folosi culorile implicite.