Pomul de Crăciun pe linia de comandă

Vine Anul Nou, nu vreau să mă mai gândesc la munca serioasă.

Toată lumea încearcă să decoreze ceva pentru vacanță: casă, birou, locul de muncă... Hai să decoram și noi ceva! De exemplu, o linie de comandă promptă. Într-o oarecare măsură, linia de comandă este și un loc de muncă.

În unele distribuții este deja „decorat”:

Pomul de Crăciun pe linia de comandă

În altele, este gri și discret:

Pomul de Crăciun pe linia de comandă

Și putem face, de exemplu, așa:

Pomul de Crăciun pe linia de comandă

Desigur, toate markerele au gusturi și culori diferite. Dacă o astfel de colorare ți se pare neplăcută și nepotrivită, atunci știi că acest punct de vedere are tot dreptul la viață. Și dacă doriți să adăugați și un pic de spirit de Anul Nou, citiți mai departe pentru un scurt articol de Anul Nou de la Cloud4Y.

În primul rând, voi explica modul în care ieșirea terminalului este „colorată”. Acest lucru se face folosind secvențe de evacuare. Sau mai precis, secvențele de cod de control ale terminalului ANSI/VT100. Ceea ce înseamnă automat că emulatorul tău de terminal trebuie să accepte acest standard, altfel miracolul de Anul Nou nu se va întâmpla. Și da, se presupune că $SHELL este lovitura ta.

Aceste comenzi sunt numite secvențe de evacuare deoarece la începutul fiecăreia dintre ele există un caracter ASCII „escape”. Există multe secvențe de control și permit, de exemplu, afișarea setărilor terminalului, controlul afișajului și mișcarea cursorului, schimbarea fontului, ștergerea și ascunderea textului. Vom alege una din toată varietatea de posibilități - schimbarea culorii textului și a fundalului.

Executați secvența de cod *ESC*[{attr1};...;{attrn}m
Ca simbol Evadare se foloseşte forma sa octală, adică 33. În ceea ce privește atributele, iată o listă scurtă de valori posibile:

0 Resetați toate atributele
1 Luminos (luminozitate crescută)
2 Dim
4 Sublinia
5 Clipi
7 Verso
8 Ascuns (ascunde textul)

Culori de prim plan (culoarea stiloului, textul este afișat în această culoare):
30 Negru
31 roșu
32 Verde
33 Galben
34 Albastru
35 Magenta (magenta)
36 Cyan (albastru)
37 Alb (белый)

Culori de fundal (culoarea hârtiei sau culoarea fundalului):
40 Negru
41 roșu
42 Verde
43 Galben
44 Albastru
45 Magenta (magenta)
46 Cyan (albastru)
47 Alb (белый)

Rețineți că, dacă comandați acum în terminal: echo 33[0;31mнекоторый текст 33[0m’

...atunci vei primi, previzibil, gobbledygook monocrom la ieșire:

Pomul de Crăciun pe linia de comandă

De ce? Pentru că a fost necesar să se folosească capabilitățile avansate ale comenzii echo. Este suficient să adăugați o cheie: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

Rezultatul va arăta acum corect:

Pomul de Crăciun pe linia de comandă

Am aranjat colorarea ieșirii către terminal. Acum să vedem cum să colorăm promptul de comandă.

Acest lucru se face prin schimbarea variabilei PS1. Variabila este responsabilă pentru promptul liniei de comandă. Aspectul său poate fi, de asemenea, modificat, inclusiv folosind secvențe de evadare. Dar există o mică diferență: trebuie să începeți secvența cu simbolul „[”, și se termină cu simbolul “]”, altfel va fi scos la terminal.

Toate secvențele de comandă posibile sunt descrise în detaliu în manualul bash, așa că invit cititorii să aleagă singuri ceea ce preferă să vadă la promptul liniei de comandă. Ca exemplu, voi da valoarea mea pentru variabila PS1:

[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n

Voi descifra această vrajă teribilă:

[ 33[34;1m] — activați culoarea fontului albastru strălucitor (al doilea atribut).
t – afișați ora curentă în formatul HH: MM: SS
[ 33[0m] – resetați setările pentru culoarea fontului
, - doar o virgulă (neașteptat, nu?)
[ 33[32m] — activați culoarea fontului verde
u@l@h – afișați numele utilizatorului, numărul dispozitivului terminal și numele scurt gazdă, separate prin simbolul „@”.
[ 33[0m] — resetați din nou setările pentru culoarea fontului
: - doar un colon (deodată!)
[ 33[33m] — activați culoarea fontului galben
W – afișați numele directorului curent
[ 33[0m] — resetați din nou setările pentru culoarea fontului
, - o alta virgula (cine ar fi crezut!)
[ 33[31m] — activați culoarea roșie a fontului
! — afișați numărul comenzii în terminal
[ 33[0m] - nu uitați să resetați setările pentru culoarea fontului
$ — imprimați „#” pentru rădăcină și „$” pentru toți ceilalți
n - traducere de linie. Pentru ce? Astfel încât comanda să înceapă la marginea stângă a ferestrei, mai degrabă decât la sfârșitul liniei de comandă.

Unde să redefiniți o variabilă? Cel mai logic loc pentru a face acest lucru este ~/.bashrc.

Aspectul invitației este limitat doar de imaginația ta. În principiu, nimic nu vă împiedică să faceți un prompt de linie de comandă sub forma unui brad de Crăciun folosind instrumentele descrise mai sus. Adevărat, o astfel de invitație va fi foarte greoaie, iar munca cu siguranță nu va deveni mai convenabilă. Pomul de Crăciun poate fi pur și simplu afișat deasupra promptului liniei de comandă atunci când ne conectăm (totuși trebuie să edităm ~/.bashrc). Du-te! Și mulțumesc pentru atenție.

Pomul de Crăciun pe linia de comandă

Ce mai poți citi pe blog? Cloud4Y

Configurarea topului în GNU/Linux
Pentesterii în fruntea securității cibernetice
Startup-uri care pot surprinde
Sunt necesare perne într-un centru de date?
Casa pe care a construit-o un robot

Abonați-vă la Telegramă-canal pentru a nu rata următorul articol! Scriem nu mai mult de două ori pe săptămână și numai pentru afaceri. De asemenea, vă reamintim că furnizorul de cloud corporativ Cloud4Y a lansat promoția „FZ-152 Cloud la preț obișnuit”. Puteți aplica până pe 31 decembrie.

Sursa: www.habr.com

Adauga un comentariu