Drīz būs jaunais gads, tādēļ par nopietnu darbu vairs negribas domāt.
Visi cenšas kaut ko izgreznot svētkam: māju, biroju, darbavietu… Izgreznosim arī mēs kaut ko! Piemēram, komandrindu. Kādā mērā komandrinda ir arī darba vieta.
Dažos izplatījumos tā jau ir "izgreznota":

Citos – tā ir pelēka un nepamanāma:

Bet mēs varam to izdarīt, piemēram, šādi:

Protams, gaume un krāsas visiem ir dažādas. Ja līdzīga krāsošana jums šķiet nepiemērota un neizskatīga, tad jūs zināt, ka šī viedokļa ir pilnībā tiesīgi pastāvēt. Ja arī jums ir vēlme pievienot nedaudz svētku noskaņas, izlasiet tālāk nelielu svētku rakstu no Cloud4Y.
Vispirms paskaidrošu, kā "izgreznojas" termināļa izvada rezultāts. To var izdarīt, izmantojot escape secības. Precīzāk sakot – ANSI/VТ100 termināļa kontroles kodu secības. Tas automātiski nozīmē, ka jūsu termināļa emulatoram ir jāatbalsta šis standarts, citādi svētku brīnums nenotiks. Un jā, tiek pieņemts, ka $SHELL jums ir bash.
Šie komandas tiek sauktas par escape secībām, jo katras no tām sākas ar ASCII simbolu "escape". Kontroles secību ir daudz, un tās ļauj, piemēram, izvadīt termināļa iestatījumus, kontrolēt attēlošanu un kursoru pārvietošanu, mainīt fontu, dzēst un slēpt tekstu. Mēs no visas šo iespēju dažādības izvēlēsimies vienu – teksta un fona krāsas maiņu.
Izpildām kodu secību *ESC*[{attr1};...;{attrn}m
Kā simbols Escape tiek izmantota tā astoņkāršā forma, proti, 33. Attiecībā uz atribūtiem, šeit ir īss iespēju saraksts:
0 Atcelt visus atribūtus
1 Bright (palielināta spilgtība)
2 Dim (tumšāka)
4 Underscore (apakšējā pasvītrojuma)
5 Blink (mirgojums)
7 Reverse (inversija)
8 Hidden (slēpt tekstu)
Foreground Colours (rakstīšanas krāsas, ar šo krāsu tiek izvadīts teksts):
30 Black (melns)
31 Red (sarkans)
32 Green (zaļš)
33 Yellow (dzeltens)
34 Blue (zils)
35 Magenta (purpursarkans)
36 Cyan (gaiši zils)
37 White (balts)
Background Colours (papīra krāsa, vai fona krāsa):
40 Black (melns)
41 Red (sarkans)
42 Green (zaļš)
43 Yellow (dzeltens)
44 Blue (zils)
45 Magenta (purpursarkans)
46 Cyan (gaiši zils)
47 White (balts)
Pievērsiet uzmanību, ja tagad jūs izpildīsiet terminālī komandu: echo 33[0;31mdaži teksts 33[0m’
… tad paredzami saņemsiet izvadē monochromatisku neizpratni:

Kāpēc? Tāpēc, ka bija nepieciešams izmantot paplašinātās echo komandas iespējas. Pietiek pievienot vienu opciju: echo -e ‘ 33[0;31mmans tekst 33[0m’
Tagad izvade izskatīsies pareizi:
![]()
Par termina izvada krāsošanu runājām. Tagad aplūkosim, kā krāsot komandu aicinājumu.
To var izdarīt, mainot PS1 mainīgo. Mainīgais ir atbildīgs par komandu aicinājumu. Tā izskatu var arī mainīt, tostarp, izmantojot escape secības. Bet ir neliela atšķirība: secība jāsāk ar simbolu “[”, un jāpabeidz ar simbolu “]”, citādi tā tiks izvadīta terminālā.
Visas iespējamās komandu secības ir detalizēti aprakstītas bash rokasgrāmatā, tāpēc ieteicu lasītājiem pašiem izvēlēties, ko viņi visvairāk vēlas redzēt komandu aicinājumā. Kā piemēru minēšu savu PS1 mainīgā vērtību:
[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n
Izskaidrošu šo briesmīgo burvestību:
[ 33[34;1m] — ieslēdzam spilgti zilu (otra atribūta) teksta krāsu
t – izvadām pašreizējo laiku formātā HH: MM: SS
[ 33[0m] – atiestata teksta krāsas iestatījumus
, — vienkārši komats (negaidīti, vai ne?)
[ 33[32m] — ieslēdzam zaļu teksta krāsu
u@l@h – izvadām lietotāja vārdu, termināla ierīces numuru un īso datora nosaukumu, atdalot ar simbolu “@”
[ 33[0m] — atkal atiestatām teksta krāsas iestatījumus
: — vienkārši kolons (pēkšņi!)
[ 33[33m] — ieslēdzam dzeltenu teksta krāsu
W – izvadām pašreizējā katalogā nosaukumu
[ 33[0m] — atkal atiestatām teksta krāsas iestatījumus
, — vēl viens komats (kas to būtu domājis!)
[ 33[31m] — ieslēdzam sarkanu teksta krāsu
! — izvadām komandas numuru terminālī
[ 33[0m] — neaizmirstam atiestatīt teksta krāsas iestatījumus
$ — izvadām “#” root un “$” visiem pārējiem
n – jauna rinda. Kāpēc? Lai komanda sāktu no loga kreisā malas, nevis pozīcijas pie aicinājuma beigām.
Kur pārrakstīt mainīgo? Loģiskāk to izdarīt ~ / .bashrc.
Aicinājuma izskats ir ierobežots tikai ar jūsu iztēli. Principā jūs nekas netraucē izmantot iepriekš aprakstītās ierīces, lai izveidotu komandu aicinājumu Ziemassvētku eglītes formā. Patiesībā šāds aicinājums būs ļoti apgrūtinošs, un darbs noteikti nekļūs vieglāks. Eglīti var vienkārši izvadīt virs komandu aicinājuma, pieslēdzoties sistēmai (jā tāpat ir jāredaktē ~ / .bashrc). Rīkojieties drosmīgi! Un paldies par uzmanību.

Ko vēl noderīgu var izlasīt emuārā
→
→
→
→
→
Piesakieties mūsu -kanāls, lai nepalaistu garām nākamo rakstu! Rakstām ne biežāk kā divas reizes nedēļā un tikai par būtiskām lietām. Atgādinām, ka korporatīvais mākoņu pakalpojumu sniedzējs Cloud4Y ir uzsācis akciju «Mākoņpakalpojums FZ-152 par parasto cenu». Pieteikties var .
Avots: habr.com
