Se apropie Anul Nou, nu mai vrei să te gândești la muncă serioasă.
Toată lumea încearcă să decoreze ceva pentru sărbătoare: casa, biroul, locul de muncă… Hai să decorăm și noi ceva! De exemplu, invitația din linia de comandă. Într-un fel, linia de comandă este și ea un loc de muncă.
În unele distribuții, ea este deja «decorează»:

În altele – este gri și fără strălucire:

Dar putem să facem, de exemplu, astfel:

Desigur, la gust și culoare totul este diferit. Dacă acest stil de decorare ți se pare nepotrivit și strident, să știi că punctul tău de vedere are tot dreptul de a exista. Și dacă și tu vrei să adaugi un pic de atmosferă de sărbătoare, citește în continuare un scurt articol de Crăciun de la Cloud4Y.
Mai întâi, îți voi explica cum se «decorează» ieșirea terminalului. Se face asta cu ajutorul secvențelor escape. Și, mai exact, cu ajutorul secvențelor de coduri de control ale terminalului ANSI/VT100. Ceea ce înseamnă automat că emulatorul tău de terminal trebuie să sprijine acest standard, altfel miracolul de sărbătoare nu se va întâmpla. Și da, se presupune că $SHELL-ul tău este bash.
Aceste comenzi sunt numite secvențe escape din acest motiv, căci la începutul fiecărei dintre ele se află simbolul ASCII «escape». Există multe secvențe de control, iar acestea permit, de exemplu, să afișeze setările terminalului, să controleze afișarea și mișcarea cursorului, să schimbe fontul, să șteargă și să ascundă text. Noi vom alege din varietatea de opțiuni una – schimbarea culorii textului și a fundalului.
Executăm secvența de cod *ESC*[{attr1};...;{attrn}m
Ca simbol Escape se folosește forma sa octală, adică 33. Cât despre atribute, iată o scurtă listă cu valorile posibile:
0 Resetează toate atributele
1 Bright (luminozitate crescută)
2 Dim (întunecare)
4 Underscore (subliniere)
5 Blink (clipește)
7 Reverse (inversare)
8 Hidden (ascunde textul)
Foreground Colours (culoarea penelui, aceasta este culoarea cu care se afișează textul):
30 Black (negru)
31 Red (roșu)
32 Green (verde)
33 Yellow (galben)
34 Blue (albastru)
35 Magenta (purpuriu)
36 Cyan (cian)
37 White (alb)
Background Colours (culoarea hârtiei, sau culoarea fundalului):
40 Black (negru)
41 Red (roșu)
42 Green (verde)
43 Yellow (galben)
44 Blue (albastru)
45 Magenta (purpuriu)
46 Cyan (cian)
47 White (alb)
Atenție, dacă acum dai comanda în terminal: echo 33[0;31mtext
… atunci te aștepți să obții la ieșire un text monocolor:

De ce? Pentru că era necesar să activăm funcțiile avansate ale comenzii echo. Este suficient să adăugăm o opțiune: echo -e ‘ 33[0;31mtextul dorit 33[0m’
Acum, ieșirea va arăta corect:
![]()
Am discutat despre colorarea ieșirii în terminal. Acum haideți să vedem cum să colorăm promptul comenzii.
Acest lucru se face prin modificarea variabilei PS1. Variabila este responsabilă pentru promptul comenzii. Aspectul ei poate fi, de asemenea, modificat, inclusiv prin secvențe de escape. Dar există o mică diferență: secvența trebuie începută cu simbolul “[”, și încheiată cu simbolul “]”, altfel va fi afișată în terminal.
Toate secvențele posibile de comenzi sunt prezentate detaliat în manualul bash, așa că sugerez cititorilor să aleagă singuri ce le place să observe în promptul comenzii. Ca exemplu, voi prezenta valoarea mea a variabilei PS1:
[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n
O să descifrez acest blestem fioros:
[ 33[34;1m] — activăm culoarea albastră stridentă (al doilea atribut) pentru text
t – afișăm timpul curent în format HH:MM:SS
[ 33[0m] – resetăm setările culorii textului
, — doar o virgulă (surprinzător, nu-i așa?)
[ 33[32m] — activăm culoarea verde pentru text
u@l@h – afișăm numele utilizatorului, numărul terminalului și numele scurt al gazdei, separate de simbolul “@”
[ 33[0m] — din nou resetăm setările culorii textului
: — doar un două puncte (din nou surprinzător!)
[ 33[33m] — activăm culoarea galbenă pentru text
W – afișăm numele directorului curent
[ 33[0m] — din nou resetăm setările culorii textului
, — încă o virgulă (cine s-ar fi gândit!)
[ 33[31m] — activăm culoarea roșie pentru text
! — afișăm numărul comenzii în terminal
[ 33[0m] — nu uităm să resetăm setările culorii textului
$ — afișăm “#” pentru root și “$” pentru toți ceilalți
n – mutare pe linia următoare. De ce? Pentru ca comanda să înceapă din colțul din stânga al ferestrei, și nu din poziția finală a promptului.
Unde se poate redefini variabila? Cel mai logic este să se facă în ~/.bashrc.
Aspectul invitației este limitat doar de imaginația dumneavoastră. Practic, nimic nu vă împiedică să creați un prompt de sistem care să arate ca un brad de Crăciun folosind instrumentele descrise mai sus. Totuși, o astfel de invitație va fi foarte voluminoasă și nu va face munca mai ușoară. Puteți pur și simplu să afișați bradul deasupra promptului de sistem la conectarea în sistem (oricum trebuie să edităm ~\/ .bashrc). Vă încurajăm! Și mulțumim pentru atenție.

Ce altceva util se poate citi în blog
→
→
→
→
→
Abonați-vă la canalul nostru -canal, pentru a nu rata un nou articol! Scriem nu mai des de două ori pe săptămână și doar despre subiecte relevante. De asemenea, vă reamintim că furnizorul de cloud corporativ Cloud4Y a lansat o acțiune „Cloud FZ-152 la preț de obicei”. Puteți depune o cerere .
Sursa: habr.com
