Cum să personalizați culorile și conținutul Bash în promptul terminalului Linux


Astăzi, Bash este shell-ul implicit în majoritatea (dacă nu în toate) distribuțiile Linux moderne. Cu toate acestea, este posibil să fi observat că culoarea textului din terminal și conținutul promptului pot fi diferite de la o distribuție la alta.

Lectură sugerată: 5 shell-uri open source cel mai frecvent utilizate pentru Linux

În cazul în care v-ați întrebat cum să personalizați acest lucru pentru o mai bună accesibilitate sau un simplu capriciu, continuați să citiți - în acest articol vă vom explica cum să faceți exact asta.

Variabila de mediu PS1 Bash

Linia de comandă și aspectul terminalului sunt guvernate de o variabilă de mediu numită PS1. Conform paginii de manual Bash, PS1 reprezintă șirul de prompter principal care este afișat atunci când shell-ul este pregătit să citească o comandă.

Conținutul permis în PS1 constă din mai multe caractere speciale cu scăpare inversă a căror semnificație este listată în secțiunea PROMPTING a paginii de manual.

Pentru a exemplifica, să afișăm conținutul actual al PS1 în sistemul nostru (acest lucru poate fi oarecum diferit în cazul dvs.):

echo $PS1

[\u@\h \W]$

Vom explica acum cum să personalizăm PS1 în funcție de nevoile noastre.

Personalizarea formatului PS1

Conform secțiunii PROMPTING din pagina de manual, acesta este semnificația fiecărui caracter special:

  1. \u: numele de utilizator al utilizatorului curent.
  2. \h: numele de gazdă până la primul punct (.) din Numele de domeniu complet calificat.
  3. \W: numele de bază al directorului de lucru curent, cu $HOME prescurtat cu un tilde (~).
  4. \$: Dacă utilizatorul curent este root, afișați #, în caz contrar $.

De exemplu, putem dori să luăm în considerare adăugarea \! Dacă dorim să afișăm numărul istoric al comenzii curente sau \H dacă dorim să afișăm FQDN-ul în loc de numele scurt al serverului.

În exemplul următor, le vom importa pe ambele în mediul nostru curent executând această comandă:

PS1="[\u@\H \W \!]$"

Când apăsați pe Enter, veți vedea că conținutul promptului se schimbă așa cum se arată mai jos. Comparați promptul înainte și după executarea comenzii de mai sus:

Acum să facem un pas mai departe și să schimbăm culoarea utilizatorului și a numelui de gazdă în promptul de comandă – atât textul, cât și fundalul înconjurător.

De fapt, putem personaliza 3 aspecte ale promptului:

Text Format Foreground (text) color Background color
0: normal text 30: Black 40: Black
1: bold 31: Red 41: Red
4: Underlined text 32: Green 42: Green
33: Yellow 43: Yellow
34: Blue 44: Blue
35: Purple 45: Purple
36: Cyan 46: Cyan
37: White 47: White

Vom folosi caracterul special \e la început și un m la sfârșit pentru a indica că ceea ce urmează este o secvență de culori.

În această secvență, cele trei valori (fondul, formatul și primul plan) sunt separate prin virgule (dacă nu este dată nicio valoare, se presupune că implicit) .

Lectură sugerată: Aflați scripturile Bash Shell în Linux

De asemenea, deoarece intervalele de valori sunt diferite, nu contează care dintre ele (fondul, formatul sau primul plan) îl specificați mai întâi.

De exemplu, următorul PS1 va face ca solicitarea să apară în text subliniat galben cu fundal roșu:

PS1="\e[41;4;33m[\u@\h \W]$ "

Oricât de bine arată, această personalizare va dura doar pentru sesiunea curentă a utilizatorului. Dacă închideți terminalul sau părăsiți sesiune, modificările se vor pierde.

Pentru a face aceste modificări permanente, va trebui să adăugați următoarea linie în ~/.bashrc sau ~/.bash_profile, în funcție de distribuția dvs.:

PS1="\e[41;4;33m[\u@\h \W]$ "

Simțiți-vă liber să vă jucați cu culorile pentru a găsi ce vi se potrivește cel mai bine.

rezumat

În acest articol, am explicat cum să personalizați culoarea și conținutul promptului dvs. Bash. Dacă aveți întrebări sau sugestii despre această postare, nu ezitați să folosiți formularul de comentarii de mai jos pentru a ne contacta. Asteptam sa auzim de tine!