Božićno drvce na naredbenom retku

Nova godina dolazi, ne želim više razmišljati o ozbiljnom poslu.

Svatko se trudi ukrasiti nešto za blagdan: dom, ured, radno mjesto... Ukrasimo i mi nešto! Na primjer, upit naredbenog retka. U određenoj mjeri, naredbeni redak je i radno mjesto.

U nekim distribucijama već je "ukrašen":

Božićno drvce na naredbenom retku

U drugima je siv i neupadljiv:

Božićno drvce na naredbenom retku

A možemo učiniti, na primjer, ovako:

Božićno drvce na naredbenom retku

Naravno, svi markeri imaju različite ukuse i boje. Ako vam se takva boja čini neukusnom i neprikladnom, znajte da ova točka gledišta ima svako pravo na život. A ako i vi želite dodati malo novogodišnjeg duha, pročitajte kratki novogodišnji članak iz Cloud4Y.

Prvo ću objasniti kako je izlaz terminala "obojen". To se radi korištenjem izlaznih sekvenci. Točnije, nizovi kontrolnih kodova ANSI/VT100 terminala. Što automatski znači da vaš emulator terminala mora podržavati ovaj standard, inače se novogodišnje čudo neće dogoditi. I da, pretpostavlja se da je $SHELL vaš udarac.

Ove se naredbe nazivaju escape sekvence jer se na početku svake od njih nalazi ASCII znak "escape". Postoji mnogo kontrolnih nizova, a oni omogućuju, primjerice, prikaz postavki terminala, upravljanje prikazom i pomicanjem pokazivača, promjenu fonta, brisanje i skrivanje teksta. Odabrat ćemo jednu od svih mogućnosti - mijenjanje boje teksta i pozadine.

Izvršite niz kodova *ESC*[{attr1};...;{attrn}m
Kao simbol Pobjeći koristi se njegov oktalni oblik, tj 33. Što se tiče atributa, ovdje je kratki popis mogućih vrijednosti:

0 Resetiraj sve atribute
1 Svijetlo (povećana svjetlina)
2 Dim
4 Podvlaka
5 Treptati
7 Obrnuto
8 Skriveno (sakrij tekst)

Boje prednjeg plana (boja olovke, tekst se prikazuje u ovoj boji):
30 Crno
31 Crvena
32 zelena
33 Žuta boja
34 Plava
35 magenta (magenta)
36 cijan (plava)
37 Bijela

Boje pozadine (boja papira ili boja pozadine):
40 Crno
41 Crvena
42 zelena
43 Žuta boja
44 Plava
45 magenta (magenta)
46 cijan (plava)
47 Bijela

Imajte na umu da ako sada naredite na terminalu: echo 33[0;31mнекоторый текст 33[0m’

...onda ćete predvidljivo dobiti jednobojni gobbledygook na izlazu:

Božićno drvce na naredbenom retku

Zašto? Budući da je bilo potrebno koristiti napredne mogućnosti naredbe echo. Dovoljno je dodati jedan ključ: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

Izlaz će sada izgledati ispravno:

Božićno drvce na naredbenom retku

Sredili smo boju izlaza na terminal. Pogledajmo sada kako obojati naredbeni redak.

To se postiže promjenom varijable PS1. Varijabla je odgovorna za prompt naredbenog retka. Njegov izgled također se može mijenjati, uključujući korištenje escape sekvenci. Ali postoji mala razlika: trebate započeti slijed sa simbolom "[“, a završava simbolom „]”, inače će biti izlaz na terminal.

Sve moguće sekvence naredbi detaljno su opisane u bash priručniku, pa pozivam čitatelje da sami odaberu što im se više sviđa vidjeti u promptu naredbenog retka. Kao primjer, dat ću svoju vrijednost za varijablu PS1:

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

Ja ću dešifrirati ovu strašnu čaroliju:

[ 33[34;1m] — uključi svijetlo plavu (drugi atribut) boju fonta
t – prikaz trenutnog vremena u formatu HH: MM: SS
[ 33[0m] – resetirajte postavke boje fonta
, - samo zarez (neočekivano, zar ne?)
[ 33[32m] — uključite zelenu boju fonta
u@l@h – prikazati korisničko ime, broj terminalnog uređaja i kratko ime glavnog računala, odvojene simbolom “@”.
[ 33[0m] — ponovo postavite postavke boje fonta
: - samo dvotočka (odjednom!)
[ 33[33m] — uključite žutu boju fonta
W – prikaz naziva trenutnog imenika
[ 33[0m] — ponovo postavite postavke boje fonta
, - još jedan zarez (tko bi rekao!)
[ 33[31m] — uključite crvenu boju fonta
! — prikaz broja naredbe u terminalu
[ 33[0m] - ne zaboravite resetirati postavke boje fonta
$ — ispišite “#” za root i “$” za sve ostale
n - linijski prijevod. Za što? Tako da naredba počinje na lijevom rubu prozora, a ne na kraju odzivnika naredbenog retka.

Gdje redefinirati varijablu? Najlogičnije mjesto za to je ~/.bashrc.

Izgled pozivnice ograničen je samo vašom maštom. U principu, ništa vas ne sprječava da napravite redak naredbenog retka u obliku božićnog drvca pomoću gore opisanih alata. Istina, takva će pozivnica biti vrlo glomazna, a posao definitivno neće postati praktičniji. Božićno drvce se jednostavno može prikazati iznad odzivnika naredbenog retka prilikom prijave (još trebamo urediti ~/.bashrc). Samo naprijed! I hvala na pažnji.

Božićno drvce na naredbenom retku

Što još možete pročitati na blogu? Cloud4Y

Postavljanje vrha u GNU/Linuxu
Pentesteri na čelu kibernetičke sigurnosti
Startupi koji mogu iznenaditi
Jesu li jastuci potrebni u podatkovnom centru?
Kuća koju je napravio robot

Pretplatite se na naš Telegram-kanal kako ne biste propustili sljedeći članak! Pišemo ne više od dva puta tjedno i samo poslovno. Također vas podsjećamo da je korporativni cloud provider Cloud4Y pokrenuo akciju “FZ-152 Cloud po redovnoj cijeni”. Možete se prijaviti do 31. prosinca.

Izvor: www.habr.com

Dodajte komentar