Ziemassvētku eglīte komandrindā

Tuvojas Jaunais gads, es vairs nevēlos domāt par nopietnu darbu.

Ikviens cenÅ”as kaut ko izrotāt svētkos: mājas, birojs, darba vieta... Rotāsim arÄ« kaut ko! Piemēram, komandrindas uzvedne. Zināmā mērā komandrinda ir arÄ« darba vieta.

Dažos izplatÄ«jumos tas jau ir ā€œdekorētsā€:

Ziemassvētku eglīte komandrindā

Citos gadÄ«jumos tas ir pelēks un neuzkrÄ«toÅ”s:

Ziemassvētku eglīte komandrindā

Un mēs varam rÄ«koties, piemēram, Ŕādi:

Ziemassvētku eglīte komandrindā

Protams, visiem marÄ·ieriem ir dažādas gaumes un krāsas. Ja Ŕāda krāsoÅ”ana jums Ŕķiet lipÄ«ga un nepiemērota, tad ziniet, ka Å”im viedoklim ir visas tiesÄ«bas uz dzÄ«vÄ«bu. Un, ja arÄ« vēlaties pievienot mazliet Jaungada garu, lasiet Ä«su Jaungada rakstu no Cloud4Y.

Pirmkārt, es paskaidroÅ”u, kā termināļa izvade ir ā€œkrāsotaā€. Tas tiek darÄ«ts, izmantojot evakuācijas secÄ«bas. PrecÄ«zāk, ANSI/VT100 termināļa vadÄ«bas kodu secÄ«bas. Tas automātiski nozÄ«mē, ka jÅ«su termināļa emulatoram ir jāatbalsta Å”is standarts, pretējā gadÄ«jumā Jaungada brÄ«nums nenotiks. Un jā, tiek pieņemts, ka $SHELL ir jÅ«su bash.

Å Ä«s komandas sauc par evakuācijas sekvencēm, jo ā€‹ā€‹katras no tām sākumā ir ASCII rakstzÄ«me "escape". Ir daudz vadÄ«bas secÄ«bu, un tās ļauj, piemēram, parādÄ«t termināļa iestatÄ«jumus, kontrolēt kursora displeju un kustÄ«bu, mainÄ«t fontu, dzēst un paslēpt tekstu. Mēs izvēlēsimies vienu no daudzajām iespējām - mainot teksta un fona krāsu.

Izpildiet kodu secību *ESC*[{attr1};...;{attrn}m
Kā simbols aizbēgt tiek izmantota tā oktālā forma, tas ir 33. AttiecÄ«bā uz atribÅ«tiem Å”eit ir Ä«ss iespējamo vērtÄ«bu saraksts:

0 Atiestatīt visus atribūtus
1 Spilgts (palielināts spilgtums)
2 AptumŔot
4 Pasvītrojums
5 MirkŔķiniet
7 Reverss
8 Slēpts (slēpt tekstu)

PriekŔplāna krāsas (pildspalvas krāsa, teksts tiek parādīts Ŕajā krāsā):
30 Melns
31 sarkans
32 ZaļŔ
33 Dzeltens
34 Zils
35 Magenta (fuksīna)
36 Ciāna (zila)
37 Balts

Fona krāsas (papīra krāsa vai fona krāsa):
40 Melns
41 sarkans
42 ZaļŔ
43 Dzeltens
44 Zils
45 Magenta (fuksīna)
46 Ciāna (zila)
47 Balts

Ņemiet vērā, ka, ja tagad jÅ«s komandējat terminālÄ«: echo 33[0;31mŠ½ŠµŠŗŠ¾Ń‚Š¾Ń€Ń‹Š¹ тŠµŠŗст 33[0mā€™

...tad jūs, paredzams, izvadā iegūsit vienkrāsainu gobbledygook:

Ziemassvētku eglīte komandrindā

Kāpēc? Tā kā bija jāizmanto komandas echo uzlabotās iespējas. Pietiek pievienot vienu atslēgu: echo -e ā€˜ 33[0;31mŠ½ŠµŠŗŠ¾Ń‚Š¾Ń€Ń‹Š¹ тŠµŠŗст 33[0mā€™

Izvade tagad izskatīsies pareizi:

Ziemassvētku eglīte komandrindā

Mēs esam nokārtojuÅ”i termināļa izvades krāsojumu. Tagad redzēsim, kā krāsot komandu uzvedni.

Tas tiek darÄ«ts, mainot PS1 mainÄ«go. MainÄ«gais ir atbildÄ«gs par komandrindas uzvedni. Tās izskatu var arÄ« mainÄ«t, tostarp izmantojot evakuācijas secÄ«bas. Bet ir neliela atŔķirÄ«ba: jums jāsāk secÄ«ba ar simbolu "[un beidzas ar simbolu "]ā€, pretējā gadÄ«jumā tas tiks izvadÄ«ts terminālÄ«.

Visas iespējamās komandu secÄ«bas ir sÄ«ki aprakstÄ«tas bash rokasgrāmatā, tāpēc aicinu lasÄ«tājus paÅ”iem izvēlēties, ko viņi labprātāk redzētu komandrindas uzvednē. Kā piemēru es sniegÅ”u savu vērtÄ«bu PS1 mainÄ«gajam:

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

Es atŔifrēŔu Ŕo briesmīgo burvestību:

[ 33 [34;1 m] ā€” ieslēgt spilgti zilu (otrais atribÅ«ts) fonta krāsu
t ā€“ parādÄ«t paÅ”reizējo laiku formātā HH: MM: SS
[ 33[0 m] - atiestatīt fonta krāsu iestatījumus
, - tikai komats (negaidīti, vai ne?)
[ 33[32 m] ā€” ieslēdziet zaļo fonta krāsu
u@l@h ā€“ parādÄ«t lietotājvārdu, termināļa ierÄ«ces numuru un Ä«so resursdatora nosaukumu, atdalot to ar simbolu ā€œ@ā€.
[ 33[0 m] ā€” vēlreiz atiestatiet fonta krāsu iestatÄ«jumus
: - tikai kols (pēkŔņi!)
[ 33[33 m] ā€” ieslēdziet dzelteno fonta krāsu
W ā€“ parādÄ«t paÅ”reizējā direktorija nosaukumu
[ 33[0 m] ā€” vēlreiz atiestatiet fonta krāsu iestatÄ«jumus
, - vēl viens komats (kurÅ” to bÅ«tu domājis!)
[ 33[31 m] ā€” ieslēdziet sarkano fonta krāsu
! ā€” terminālÄ« parādÄ«t komandas numuru
[ 33[0 m] - neaizmirstiet atiestatīt fonta krāsu iestatījumus
$ ā€” drukājiet ā€œ#ā€ saknei un ā€œ$ā€ visiem pārējiem
n - rindu tulkoŔana. Par ko? Lai komanda sākas loga kreisajā malā, nevis komandrindas uzvednes beigās.

Kur no jauna definēt mainīgo? Loģiskākā vieta, kur to izdarīt, ir ~/.bashrc.

IelÅ«guma izskatu ierobežo tikai jÅ«su iztēle. Principā nekas neliedz jums izveidot komandrindas uzvedni Ziemassvētku eglÄ«tes formā, izmantojot iepriekÅ” aprakstÄ«tos rÄ«kus. Tiesa, Ŕāds uzaicinājums bÅ«s ļoti apgrÅ«tinoÅ”s, un darbs noteikti nekļūs ērtāks. Ziemassvētku eglÄ«ti var vienkārÅ”i parādÄ«t virs komandrindas uzvednes piesakoties (mums joprojām ir jārediģē ~/.bashrc). Dari tā! Un paldies par uzmanÄ«bu.

Ziemassvētku eglīte komandrindā

Ko vēl var lasīt emuārā? Cloud4Y

ā†’ AugŔējā iestatÄ«Å”ana GNU/Linux
ā†’ Pentestētāji kiberdroŔības priekÅ”galā
ā†’ Jaunuzņēmumi, kas var pārsteigt
ā†’ Vai datu centrā ir nepiecieÅ”ami spilveni?
ā†’ Māja, ko uzbÅ«vēja robots

Abonējiet mÅ«su Telegram-kanāls, lai nepalaistu garām nākamo rakstu! Mēs rakstām ne biežāk kā divas reizes nedēļā un tikai darba kārtÄ«bā. Tāpat atgādinām, ka korporatÄ«vais mākoņpakalpojumu sniedzējs Cloud4Y ir sācis akciju ā€œFZ-152 Cloud par parasto cenuā€. Var pieteikties lÄ«dz 31. decembrim.

Avots: www.habr.com

Pievieno komentāru