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ā:
Citos gadÄ«jumos tas ir pelÄks un neuzkrÄ«toÅ”s:
Un mÄs varam rÄ«koties, piemÄram, Å”Ädi:
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:
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:
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.
Ko vÄl var lasÄ«t emuÄrÄ?
ā
ā
ā
ā
ā
AbonÄjiet mÅ«su
Avots: www.habr.com