În shell-ul bash, promptul de comandă este textul afișat atunci când vi se solicită introducere. În majoritatea sistemelor, se arată astfel:
În prompt, puteți avea informații înainte de a executa comenzi. De exemplu, solicitarea de mai sus vă arată următoarele.
- cine sunteti (un utilizator numit utilizator )
- unde esti (un computer numit myhost )
- ce este directorul dvs. de lucru ( ~, care este o abreviere pentru directorul de acasă)
Poate cel mai important este semnul dolarului (" $ "), care este un caracter special care indică faptul că sunteți conectat ca utilizator non-root. Dacă ați fost conectat în prezent ca root, acest caracter ar fi un semn de literă (" # ").
Șirul care reprezintă solicitarea este stocat în variabila specială de domeniu numită PS1 . Pentru solicitarea de mai sus, valoarea acesteia arată ca mai jos.
"\ [protejat prin e-mail] \ h: \ W \ $"
Există patru caractere speciale în acest șir: \ u, \ h, \ W, \ $ . Acestea sunt secvențe de caractere scoase, care sunt înlocuite cu valori reale de fiecare dată când se afișează promptul.
Caracterele speciale
Secvențele de caractere speciale listate în tabelul de mai jos pot fi utilizate în prompterul shell-ului bash.
Secvență de caractere | Se transformă în |
---|---|
\A | Caracterul "alarmă". Declanșează un bip sau un bliț de ecran |
\ d | Data curentă, afișată în formatul Data săptămânii (de exemplu, miercuri, 13 mai ). |
\ D { format } | Data și ora curente sunt afișate conform formatului interpretat de strftime . Dacă formatul este omis, \ D {} afișează ora actuală de 12 ore AM / PM (de ex. 07:23:01 PM ). |
\ e | Un caracter de evacuare (ASCII 27) |
\ e [ numărul m | Indică începutul unei secvențe de afișare în culori, unde numărul este un număr sau o pereche de numere, care specifică ce culoare și stil să utilizeze. Vedeți mai jos o listă a culorilor și a perechilor de numere. |
\ e [m | Indică sfârșitul unei secvențe de afișare în culori. |
\ h | Numele gazdei aparatului, până la primul "" De exemplu, dacă numele de gazdă al sistemului este myhost.mydomain, \ h afișează MyHost |
\ H | Numele de gazdă complet al mașinii. |
\ j | Numărul de locuri de muncă gestionate de shell. |
\ l | Identificatorul terminalului shellului, de obicei un număr dintr-o singură cifră. |
\ n | O linie nouă |
\ r | Retur transport |
\ s | Numele shell-ului (numele de bază al procesului care a inițiat sesiunea bash curentă). |
\ t | Durata curentă afișată în formatul HH: MM: SS în 24 de ore (de ex., 19:23:01 ). |
\ T | Ora curentă afișată în formatul HH: MM: SS de 12 ore (de ex. 07:23:01 ). |
\ @ | Durata curentă afișată în formatul HH: MM: SS AM / PM (de ex., 07:23:01 PM ). |
\A | Ora actuală în formatul HH: MM de 24 de ore (de ex., 19:23 ). |
\ u | Numele de utilizator al utilizatorului curent. |
\ v | Numărul versiunii Bash (de ex., 4.3 ). |
\ V | Versiunea Bash și numărul de patch-uri (de ex., 4.3.30 ). |
\ w | Directorul curent. Directorul utilizatorului de la domiciliu este abreviat ca un tilde (" ~ "). De exemplu, / usr / bin, ~, sau ~ / documente |
\ W | Numele de bază al directorului curent de lucru (de ex., Bin, ~, sau documente ). |
\! | Numărul istoric al comenzii curente. |
\ # | Numărul de comandă al comenzii curente (numerele de comandă sunt ca numerele de istorie, dar se reseta la zero când începeți o sesiune bash nouă). |
\ nnn | Caracterul ASCII a cărui valoare octală este nnn. |
\\ | O retrospectivă |
\ [ | Marchează începutul oricărei secvențe de caractere care nu se imprimă, cum ar fi codurile de control terminale. |
\] | Marchează sfârșitul unei secvențe non-imprimare. |
\ $ | Tipărește # dacă UID este zero (superuser), sau $ dacă este mai mare decât zero (oricine altcineva). |
Schimbarea promptului pentru sesiunea curentă
Puteți seta variabila de mediu PS1 ca și orice altă variabilă în bash, cu formularul de instrucțiuni NAME = VALUE . Deci, pentru a seta promptul standard, puteți scrie următoarele la linia de comandă.
PS1 = "\ [protejat prin e-mail] \ h: \ W \ $"
... Și promptitudinea ta se va schimba imediat. Observați spațiul final după semnul dolarului în șir pentru un spațiu suplimentar după solicitarea dvs., ceea ce face mai ușor să se diferențieze comenzile pe care le tastați de prompt. Spațiul suplimentar nu este necesar, dar este recomandat.
Observați că în comandă nu există spații între PS1, = și șir.
Modificarea promptului pentru toate sesiunile viitoare
Dacă doriți să schimbați promptul pentru fiecare sesiune nouă, trebuie să editați fișierele de pornire bash. De fiecare dată când porniți o sesiune de terminale, următoarele fișiere, dacă există, sunt citite și executate ca scripturi:
/ etc / profile ~ / .bash_profile ~ / .bash_login
~ / .Profile
Primul fișier, / etc / profile, este un script de pornire pentru orice utilizator din sistem care începe o sesiune bash. Pentru a schimba promptul pentru fiecare utilizator, trebuie să editați acest fișier și aveți nevoie de privilegii de superuser pentru a face acest lucru.
sudo vi / etc / profil
De exemplu, comanda de mai sus vă va solicita parola și, dacă vă aflați pe lista de sudori, deschideți fișierul de pornire universal bash ca superuser, utilizând editorul vi .
Celelalte trei fișiere sunt căutate în ordinea listată mai sus și executate după / etc / profile . Aceste trei fișiere trăiesc în directorul dvs. de acasă, astfel încât acestea sunt executate numai pentru dvs. Aceștia pot defini PS1 în mai multe locuri, deci ar trebui să citiți cu atenție fișierele pentru a vedea cum sunt configurate în sistemul dvs. De exemplu, multe sisteme vor folosi o valoare diferită PS1, în funcție de faptul dacă terminalul acceptă sau nu culoarea.
Orice dintre cele trei fișiere poate exista și poate fi folosit pentru sesiunea dvs. bash, dar dacă există mai multe, acestea vor fi executate în ordinea listată.
Dacă nu doriți să ștergeți sau să modificați linii în fișierele de pornire, puteți adăuga, de asemenea, o nouă instrucțiune PS1 = la sfârșitul unuia dintre fișierele dvs. pentru a aplica o solicitare personalizată.
Adăugarea de culori la solicitarea dvs.
Dacă utilizați un terminal care acceptă culoarea (și probabil că sunteți), puteți adăuga culoarea la solicitarea dvs. Culorile sunt adăugate folosind secvențe de caractere speciale care urmează acest format:
\ e [ numărul m | Începe o secțiune colorată. Valoarea numerică este un număr special sau o pereche de numere care specifică culoarea. |
\ e [m | denotă sfârșitul secțiunii colorate; se resetează la culoarea implicită |
De exemplu, stringul prompt:
PS1 = "\ e [1; 35mAceasta este violet luminos. \ E [0; 35m ... și aceasta este purpuriu închis. \ E [m"
Va produce un prompt care arată astfel:
Iată o listă a culorilor pe care le puteți utiliza și numerele care le specifică:
Numărul (numerele) | Culoare / Stil | Numărul (numerele) | Culoare / Stil |
---|---|---|---|
0; 30 | Negru | 1; 30 | Gri închis |
0; 31 | roșu | 1; 31 | Rosu aprins |
0; 32 | Verde | 1; 32 | Verde deschis |
0; 33 | Maro | 1; 33 | Galben |
0; 34 | Albastru | 1; 34 | Albastru stralucitor |
0; 35 | Violet | 1; 35 | Bright Purple |
0; 36 | Cyan | 1; 36 | Bright Cyan |
0; 37 | gri | 1; 37 | alb |
4; 30 | Negru, subliniat | 40 | fundal: Dark Gray |
4; 31 | Roșu, subliniat | 41 | fundal: roșu |
4; 32 | Verde, subliniat | 42 | fundal: verde |
4; 33 | Brown, subliniat | 43 | fundal: Galben |
4; 34 | Albastru, subliniat | 44 | fundal: albastru |
4; 35 | Purpuriu, subliniat | 45 | fundal: Purple |
4; 36 | Cyan, subliniat | 46 | fundal: Cyan |
4; 37 | Gri, subliniat | 47 | Fundal: Gri |
Iată câteva exemple și cum arată ele:
PS1 = "\ e [0; 31mRed \ e [0; 32mGreen \ e [0; 33mBrown \ e [0; 34mBlue \ e; 0; 35mPurple \ e [0; 36mCyan \
PS1 = "Subliniat: \ e [4; 31mRed \ e [4; 32mGreen \ e [4; 33mBrown \ 4; 34mBlue \ e [4; 35mPurple \ 4; 36mCyan \ m“
PS1 = "\ e [44m \ e [1; 35mBrunet violet pe fundal albastru \ e [m"