Cele mai multe distribuții Linux configurează promptul Bash pentru a arăta ceva asemănător username @ nume de gazdă: director $
. Dar puteți configura promptul Bash să conțină ceea ce vă place și chiar să alegeți culorile care vă plac.
Exemplele de pași aici au fost efectuate pe Ubuntu 16.04 LTS. Procesul ar trebui să fie același pe alte distribuții Linux, deși setarea implicită Bash și setările din fișierul .bashrc pot fi puțin diferite.
Configurația promptului dvs. Bash este stocată în fișierul .bashrc al contului dvs. de utilizator, care este la ~ / .Bashrc
. Deci, dacă numele dvs. de utilizator este bob, fișierul este la /home/bob/.bashrc
.
Puteți deschide fișierul pentru a vedea variabila Bash curentă. Vom folosi nano ca editor de text exemplu, deși ai putea folosi și vi, emacs sau orice alt editor de text cu care te simți confortabil. Deschideți un Terminal și executați:
nano ~ / .bashrc
Derulați în jos până la PS1 =
secțiune. Prima variabilă pare destul de complicată deoarece include informații despre culoare - vom explica mai târziu. A doua variabilă, fără informații de culoare, are următorul conținut:
$ Debian_chroot: + ($ debian_chroot) \ u @ \ h: \ w \ $
Acest lucru este încă puțin complicat datorită $ Debian_chroot: + ($ debian_chroot)
biți. Acestea spun doar lui Bash să vă anunțe dacă utilizați un mediu chroot Debian și, în mod normal, nu va fi afișat. Dacă ignorați aceste elemente, iată structura implicită a variabilei de prompt Bash:
\ U @ \ h: \ w \ $
\ u
indică numele dvs. de utilizator, @
indică semnul @, \ h
indică numele gazdei (numele computerului), :
indică: caracterul, \ w
indică directorul de lucru și \$
indică un $ dacă sunteți un cont de utilizator normal sau # dacă sunteți rădăcină. Deci, dându-le pe toate împreună, veți obține Nume utilizator @ hostname: $ working_directory
.
Pentru a schimba promptul dvs. Bash, trebuie doar să adăugați, să eliminați sau să rearanjați caracterele speciale din variabila PS1. Dar există mai multe variabile pe care le puteți utiliza decât cele implicite.
Lăsați editorul de text pentru acum - în nano, apăsați pe Ctrl + X pentru a ieși. Vă vom arăta cum să experimentați cu variabile înainte de a scrie într-adevăr unul nou în fișierul .bashrc.
Configurația promptului dvs. Bash este stocată în variabila PS1. Pentru a salva conținutul variabilei PS1 într-o variabilă nouă, executați următoarea comandă:
DEFAULT = $ PS1
Acum puteți seta variabila PS1 la valori diferite pentru a experimenta. De exemplu, prima linie de aici vă va stabili promptul la o solicitare de bază "user $", în timp ce al doilea va seta promptul dvs. la un prompt "user: working_directory $".
PS1 = "\ u \ $" PS1 = "\ u: \ w \ $"
Dacă vreți să reveniți la promptul dvs. implicit, executați următoarea comandă.
PS1 = $ DEFAULT
Bash va fi restaurat la promptul său implicit datorită faptului că ați salvat mai devreme aceste setări implicite. Rețineți că toate modificările pe care le faceți aici sunt doar temporare pentru sesiunea Bash curentă, astfel încât să puteți oricând să vă deconectați, să vă conectați sau să închideți și să redeschideți fereastra terminalului pentru a reveni la promptul implicit. Dar linia de mai sus face posibilă revenirea cu ușurință la promptul dvs. Bash implicit, fără a fi nevoie să vă deconectați sau să închideți o fereastră.
Puteți adăuga orice caractere sau text la variabila. Deci, pentru a prefixa promptul implicit cu "Hello World", puteți folosi:
PS1 = "Bună ziua lumii \ u @ \ h: \ w \ $"
Acum că ai înțelesurile de bază, trebuie doar să știi care sunt toate personajele speciale. Probabil că nu vă va interesa multe dintre ele, dar aici este lista completă așa cum apare în manualul Bash:
\A
\ d
\ D format
\ e
\ h
\ H
\ j
\ l
\ n
\ r
\ s
\ t
\ T
\@
\A
\ u
\ v
\ V
\ w
\ W
\!
\#
\$
\ nnn
\\
\[
\]
Deci, dacă doriți să adăugați data și ora la promptul dvs. Bash și să puneți directorul de lucru pe comandă pe oa doua linie, puteți utiliza următoarea construcție:
PS1 = "[\ d \ t] \ u @ \ h \ n \ w \ $"
Parantezele pătrate de aici nu sunt deloc necesare, dar ajuta la ruperea vizuală a lucrurilor și la facilitarea citirii liniei. Așa cum am acoperit mai devreme, puteți adăuga orice text sau caractere normale la variabila dorită, deci nu ezitați să utilizați ceea ce funcționează pentru dvs.
Există un truc mai puternic despre care ar trebui să știți: Puteți adăuga ieșirea oricărei comenzi la prompt. Ori de câte ori apare promptul, Bash va executa comanda și va completa informațiile actuale. Pentru aceasta, includeți orice comandă pe care doriți să o executați între două '
de caractere. Nu este un apostrof - acesta este accentul grav, care apare deasupra tastei Tab de pe tastatură.
De exemplu, să presupunem că doriți să vedeți versiunea kernelului Linux în prompt. Ați putea folosi o linie precum:
PS1 = "\ u @ \ h pe" uname -s -r "\ w \ $"
Ca un alt exemplu, să presupunem că doriți să vizualizați durata de funcționare a sistemului și media de încărcare, așa cum este afișat de către timpul de funcționare
comanda. Ați putea folosi următoarea construcție, care pune timpul de uptime pe propria linie înainte de restul promptului.
PS1 = "(" timpul de funcționare ") \ n \ u @ \ h: \ w $"
Simțiți-vă liber să experimentați diferite caractere și comenzi speciale pentru a vă asambla promptul de comandă ideal.
Odată ce ți-ai dat seama de promptul tău preferat, poți adăuga culori la el. Acest lucru este de fapt foarte simplu, dar face ca variabila să arate uluitoare și complicată dacă nu înțelegeți la ce vă uitați.
De exemplu, variabila implicită de culoare dorită de la începutul anului a fost:
$ Debian_chroot: + ($ debian_chroot) \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $
Sau, eliminarea din nou a biților debian_chroot:
\ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $
Aceasta este de fapt doar \ U @ \ h: \ w $
variabilă de la început, dar cu informații de culoare. Într-adevăr, o putem descompune în câteva secțiuni:
\ [\ 033 [01; 32m \]\ U @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \]\ w \ [\ 033 [00m \]\$
Prima secțiune este \ U @ \ h
bit, precedat de informații de culoare care o transformă în verde. Al doilea este :
caracter, precedat de informații de culoare care elimină orice culoare. Al treilea este \ w
bit, precedat de informații de culoare care o transformă în albastru. Al patrulea este \$
bit, precedat de informații de culoare care elimină orice culoare.
Odată ce ați înțeles cum să construiți propriile etichete de culoare, puteți adăuga oricare dintre culorile care vă plac la secțiunile dorite din Bash.
Iată ce trebuie să știți: Trebuie să includeți întreaga informație despre codul de culoare între\[
și \] caracter
s. În interiorul etichetei, trebuie să începeți cu oricare dintre ele \033[
sau \ E [
pentru a indica Bash că aceasta este informația de culoare. Ambii \033[
și \ E [
face același lucru. \ E [
este mai scurtă, astfel încât ar putea fi mai convenabil de utilizat, dar vom folosi \033[
aici, deoarece se potrivește cu ceea ce este folosit în mod implicit. La sfârșitul etichetei, trebuie să terminați m \
pentru a indica sfârșitul unei etichete de culoare.
Încadrați-vă în jos, iată ce va arăta fiecare etichetă de culoare. Singura diferență este cea pe care o adăugați în locul culorii pentru a defini culoarea reală:
\[\033[CULOAREm \]
Bash vă permite să modificați culoarea textului din prim-plan, să adăugați atribute ca "bold" sau "underline" la text și să setați o culoare de fundal.
Iată valorile pentru textul în prim plan:
De exemplu, deoarece textul violet este codul de culoare 32, îl veți folosi \[\033[32m \]
pentru text violet.
De asemenea, puteți specifica un atribut pentru text. Acest atribut trebuie adăugat înainte de numărul de culoare, separat printr-o punct și virgulă (;). Textul cu aceste atribute va arăta diferit în emulatorii de terminale diferiți.
Iată valorile pentru atributele de text:
De fapt, nu trebuie să includeți atributul text normal. Asta e implicit, oricum.
De exemplu, deoarece textul roșu este codul 31 și textul cu caractere aldine este codul 1, pe care îl utilizați \[\033[1;31m \]
pentru text roșu îndrăzneț.
De asemenea, puteți specifica o culoare de fundal, dar nu puteți adăuga un atribut unei culori de fundal.
Iată valorile pentru culorile de fundal:
De exemplu, deoarece un fundal albastru este codul 44, \[\033[44m \]
ar specifica un fundal albastru.
Puteți specifica atât etichetele pentru fundal, cât și pentru culorile de fundal. De exemplu, 42 reprezintă un fundal verde și 31 reprezintă text roșu. Deci, pentru a face promptul implicit să devină text roșu pe fundal verde, ați folosi:
PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \ $ "
Specificăm doar o singură culoare de fundal și apoi o singură culoare de text prim-plan, care începe de la începutul promptului și se aplică întregului text din prompt.Cu toate acestea, aveți posibilitatea să specificați cât mai multe etichete de culori, după cum doriți, în variabila, pentru a colora diferite secțiuni ale prompterului, oricum doriți.
Culorile textului de fundal și ale primului text continuă să treacă de la prompter, cu excepția cazului în care specificați codul de culoare 00, clarificați informațiile despre culoare. De asemenea, puteți utiliza această etichetă în cadrul variabilei pentru a reseta formatarea înapoi la cea implicită undeva în mesajul dvs. de prompt. De exemplu, următoarea linie va încheia toate colorările înainte de \$
caracter.
PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \ [\ 033 [00m \] \ $ "
Odată ce ați terminat experimentarea cu culori, ar trebui să aveți un prompt Bash pe care îl doriți în sesiunea curentă. Dar probabil că doriți să faceți acest prompt nou permanent, astfel încât acesta să fie utilizat automat în toate sesiunile dvs. Bash.
Pentru a face acest lucru, trebuie doar să modificați conținutul variabilei PS1 din fișierul .bashrc, la care ne-am uitat mai devreme.
Deschideți fișierul .bashrc în editorul de text preferat, după cum urmează:
nano ~ / .bashrc
Derulați în jos și localizați secțiunea PS1 =. Doar înlocuiți variabila implicită cu variabila personalizată. Probabil că veți dori să părăsiți $ Debian_chroot: + ($ debian_chroot)
doar biți - nu vor apărea decât dacă sunteți într-un mediu chroot, oricum.
Introduceți variabila PS1 colorată sub dacă ["$ color_prompt" = da]; atunci
linia. Introduceți variabila fără culori sub altfel
linia.
Salvați fișierul și închideți editorul de text. De exemplu, pentru a salva fișierul în nano, apăsați Ctrl + O, apăsați Enter și apoi apăsați Ctrl + X pentru a ieși.
Data viitoare când porniți o nouă shell Bash - de exemplu, conectându-vă la terminal sau deschizând o fereastră nouă a terminalului, veți vedea promptul dvs. personalizat.