Karácsonyfa a parancssorban

Közeleg az újév, nem akarok többé komoly munkára gondolni.

Mindenki igyekszik feldíszíteni valamit az ünnepre: otthon, iroda, munkahely... Díszítsünk mi is! Például egy parancssori prompt. Bizonyos mértékig a parancssor egyben munkahely is.

Egyes disztribúciókban már „díszített”:

Karácsonyfa a parancssorban

Másoknál szürke és nem feltűnő:

Karácsonyfa a parancssorban

És megtehetjük például így:

Karácsonyfa a parancssorban

Természetesen minden markernek más az íze és színe. Ha az ilyen színezés ragacsosnak és nem megfelelőnek tűnik számodra, akkor tudd, hogy ennek a nézőpontnak minden joga megvan az élethez. És ha szeretnél egy kis újévi hangulatot is hozzáadni, olvasd el a Cloud4Y rövid újévi cikkét.

Először elmagyarázom, hogy a terminál kimenete hogyan „színezett”. Ez escape szekvenciákkal történik. Pontosabban az ANSI/VT100 terminál vezérlőkód sorozatai. Ez automatikusan azt jelenti, hogy a terminál emulátornak támogatnia kell ezt a szabványt, különben nem történik meg az újévi csoda. És igen, feltételezzük, hogy a $SHELL a bash.

Ezeket a parancsokat escape szekvenciáknak nevezzük, mert mindegyik elején van egy „escape” ASCII karakter. Számos vezérlési szekvencia létezik, amelyek lehetővé teszik például a terminálbeállítások megjelenítését, a kurzor megjelenítésének és mozgásának vezérlését, a betűtípus megváltoztatását, a szöveg törlését és elrejtését. A sokféle lehetőség közül választunk egyet - a szöveg és a háttér színének megváltoztatásával.

Hajtsa végre a kódsorozatot *ESC*[{attr1};...;{attrn}m
Mint szimbólum menekülés oktális alakját használják, azaz 33. Ami az attribútumokat illeti, itt van a lehetséges értékek rövid listája:

0 Állítsa vissza az összes attribútumot
1 Fényes (növelt fényerő)
2 Homályos
4 Aláhúzás
5 Pislogás
7 Fordított
8 Rejtett (szöveg elrejtése)

Előtér színei (toll színe, a szöveg ebben a színben jelenik meg):
30 Fekete
31 Piros
32 Zöld
33 Sárga
34 Kék
35 Magenta (bíbor)
36 Cián (kék)
37 fehér

Háttérszínek (papírszín vagy háttérszín):
40 Fekete
41 Piros
42 Zöld
43 Sárga
44 Kék
45 Magenta (bíbor)
46 Cián (kék)
47 fehér

Vegye figyelembe, hogy ha most parancsot ad a terminálban: echo 33[0;31mнекоторый текст 33[0m’

...akkor előre láthatóan monokróm gobbledygook lesz a kimeneten:

Karácsonyfa a parancssorban

Miért? Mert ki kellett használni az echo parancs fejlett képességeit. Elég egy kulcsot hozzáadni: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

A kimenet most helyesen fog kinézni:

Karácsonyfa a parancssorban

Meghatároztuk a terminál kimenetének színezését. Most nézzük meg, hogyan lehet színezni a parancssort.

Ez a PS1 változó módosításával történik. A változó felelős a parancssori promptért. Megjelenése is módosítható, beleértve az escape szekvenciák használatát. De van egy kis különbség: a sorozatot a " szimbólummal kell kezdenie[", és a " szimbólummal fejeződik be]”, ellenkező esetben a kimenet a terminálra kerül.

Az összes lehetséges parancssor részletesen le van írva a bash kézikönyvben, ezért arra kérem az olvasókat, hogy válasszanak maguknak, mit szeretnének látni a parancssori promptban. Példaként megadom az értékemet a PS1 változóhoz:

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

Megfejtem ezt a szörnyű varázslatot:

[ 33[34;1 m] — kapcsolja be az élénkkék (második attribútum) betűszínt
t – a pontos idő megjelenítése ÓÓ: MM: SS formátumban
[ 33[0 m] – a betűszínbeállítások visszaállítása
, - csak egy vessző (nem várt, igaz?)
[ 33[32 m] — zöld betűszín bekapcsolása
u@l@h – megjeleníti a felhasználónevet, a termináleszköz számát és a rövid gazdagép nevét, „@” jellel elválasztva
[ 33[0 m] — állítsa vissza újra a betűszínbeállításokat
: - csak egy kettőspont (hirtelen!)
[ 33[33 m] — a sárga betűszín bekapcsolása
W – megjeleníti az aktuális könyvtár nevét
[ 33[0 m] — állítsa vissza újra a betűszínbeállításokat
, - még egy vessző (ki gondolta volna!)
[ 33[31 m] — kapcsolja be a piros betűszínt
! — megjeleníti a parancs számát a terminálon
[ 33[0 m] - ne felejtse el visszaállítani a betűszín beállításait
$ — Nyomtasson „#”-t a gyökérnek, és „$”-t mindenki másnak
n - soros fordítás. Miért? Így a parancs az ablak bal szélén indul, nem pedig a parancssor végén.

Hol kell újradefiniálni a változót? Ennek leglogikusabb helye a ~/.bashrc.

A meghívó megjelenésének csak a képzelet szab határt. Elvileg semmi sem akadályozza meg, hogy a fent leírt eszközökkel karácsonyfa formájában parancssort készítsen. Igaz, egy ilyen meghívás nagyon nehézkes lesz, és a munka biztosan nem lesz kényelmesebb. A karácsonyfa egyszerűen megjeleníthető a parancssori prompt felett bejelentkezéskor (még szerkesztenünk kell a ~/.bashrc-t). Hajrá! És köszönöm a figyelmet.

Karácsonyfa a parancssorban

Mit olvashatsz még a blogon? Cloud4Y

Beállítás GNU/Linux alatt
Pentesters a kiberbiztonság élvonalában
Kezdő vállalkozások, amelyek meglepetést okozhatnak
Szükség van párnákra egy adatközpontban?
A ház, amit egy robot épített

Iratkozzon fel a Telegram-csatorna, hogy ne maradj le a következő cikkről! Hetente legfeljebb kétszer írunk, és csak üzleti ügyben. Emlékeztetünk arra is, hogy a vállalati felhőszolgáltató, a Cloud4Y elindította az „FZ-152 Cloud rendes áron” akciót. Jelentkezni lehet december 31-ig.

Forrás: will.com

Hozzászólás