Karácsonyfa a parancssorban

Hamarosan itt a újév, már nem is szeretnénk komoly munkákról gondolkodni.

Mindenki próbál valamit feldíszíteni az ünnepre: az otthonát, a irodáját, a munkahelyét... Díszítsünk mi is valamit! Például a parancssori felületet. Valójában a parancssor is egy munkaterület.

Néhány disztribúcióban már "feldíszített":

Karácsonyfa a parancssorban

Másokban szürke és jelentéktelen:

Karácsonyfa a parancssorban

De mi például így is megoldhatjuk:

Karácsonyfa a parancssorban

Természetesen amit ízlésről és színről van szó, mindenkinek más a preferenciája. Ha úgy érzi, hogy ilyen jellegű díszítés túlzó vagy nem illik, tudja, hogy ez a vélemény teljes mértékben érvényes. Viszont ha Ön is szeretne egy kis ünnepi hangulatot varázsolni, olvasson tovább egy rövid ünnepi cikket a Cloud4Y-tól.

Először is magyarázom, hogyan "díszítik" a terminál kimenetét. Ezt escape szekvenciák segítségével teszik. Pontosabban, ANSI/VT100 terminál vezérlési kódsorozatokat használnak. Ami automatikusan azt jelenti, hogy a terminálemulátorának támogatnia kell ezt a szabványt, különben nem fog bekövetkezni az ünnepi csoda. És igen, feltételezhető, hogy az $SHELL bash.

Ezért hívják ezeket a parancsokat escape szekvenciáknak, mivel mindegyik elején az "escape" ASCII karakter található. Rengeteg vezérlési szekvencia létezik, amelyek például lehetővé teszik a terminál beállításainak megjelenítését, a kurzor mozgását és megjelenítését, a betűtípus megváltoztatását, valamint szövegek törlését és elrejtését. Mi az összes lehetőség közül egyet választunk – a szöveg és a háttér színének megváltoztatását.

Futtassa a kód szekvenciát *ESC*[{attr1};...;{attrn}m
A karakterként az Escape nyolcas kódját használják, tehát 33. Ami az attribútumokat illeti, itt van egy rövid lista a lehetséges értékekről:

0 Minden attribútum visszaállítása
1 Bright (fokozott fényerő)
2 Dim (tompítás)
4 Underscore (alsó vonás)
5 Blink (villogás)
7 Reverse (megfordítás)
8 Hidden (szöveg elrejtése)

Foreground Colours (tint színek, amellyel a szöveget megjelenítjük):
30 Black (fekete)
31 Red (piros)
32 Green (zöld)
33 Yellow (sárga)
34 Blue (kék)
35 Magenta (bíbor)
36 Cyan (cián)
37 White (fehér)

Background Colours (papír szín, vagy háttér szín):
40 Black (fekete)
41 Red (piros)
42 Green (zöld)
43 Yellow (sárga)
44 Blue (kék)
45 Magenta (bíbor)
46 Cyan (cián)
47 White (fehér)

Kérjük, vegye figyelembe, ha most parancsot ad a terminálban: echo 33[0;31mvalamilyen szöveg 33[0m’

... akkor várhatóan monokróm abcdefg-t kap:

Karácsonyfa a parancssorban

Miért? Azért, mert a rozgás lehetőségeket kellett használni az echo parancsnál. Csak egy kulcsszót kell hozzáadni: echo -e ‘ 33[0;31mvalami szöveg 33[0m’

Most a kimenet megfelelően fog kinézni:

Karácsonyfa a parancssorban

Megértettük a terminál kimenetének színezését. Most nézzük meg, hogyan lehet színezni a parancssor feliratát.

Ezt a PS1 változó megváltoztatásával tesszük. A változó a parancssori feliratért felel. A megjelenése is változtatható, ideértve az escape-sorozatokat. De van egy kis különbség: a sorozatot a “ karakterrel kell kezdeni,[”, és a végén “ karakterrel befejezni,]mert különben a terminálra fog kerülni.

Minden lehetséges parancssori sorozat részletesen ki van fejtve a bash kézikönyvében, így javaslom az olvasóknak, hogy válasszák ki, mi tetszik nekik a legjobban a parancssor feliratában. Példaként bemutatom a PS1 változóm értékét:

[ 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 furcsa varázsigét:

[ 33[34;1m] — élénk kék (második attribútum) betűszín aktiválása
t – megjeleníti az aktuális időt HH:MM:SS formátumban
[ 33[0m] – a betűszín beállításainak visszaállítása
, — csak egy vessző (meglepő, igaz?)
[ 33[32m] — a zöld betűszín aktiválása
u@l@h – megjeleníti a felhasználó nevét, a terminál eszköz számát és a gazda rövid nevét, külön a “@” jellel
[ 33[0m] — ismét visszaállítja a betűszín beállításait
: — csak egy kettőspont (hirtelen!)
[ 33[33m] — a sárga betűszín aktiválása
W – megjeleníti az aktuális könyvtár nevét
[ 33[0m] — újra visszaállítja a betűszín beállításait
, — még egy vessző (ki gondolta volna!)
[ 33[31m] — a piros betűszín aktiválása
! — megjeleníti a terminálban a parancs számát
[ 33[0m] — ne felejtsd el visszaállítani a betűszín beállításait
$ — a root esetén “#”-t, míg minden más esetben “$”-t jelenít meg
n – új sor. Miért? Hogy a parancs a parancssor bal szélén kezdődjön, és ne a parancssor végén.

Hol lehet a változót újra definiálni? A leglogikusabb ezt a ~/.bashrc fájlban megtenni.

A parancssor megjelenítése csak a fantáziádon múlik. Alapvetően semmi nem akadályoz meg abban, hogy a fent említett eszközökkel a parancssor feliratát karácsonyfává formázd. Igaz, hogy egy ilyen felirat nagyon terjedelmes lesz, és a munka semmivel sem lesz kényelmesebb. A fát egyszerűen megjeleníthetjük a parancssor felett a bejelentkezéskor (úgyis módosítanunk kell a ~/.bashrc-t). Csak bátran! Köszönöm a figyelmet.

Karácsonyfa a parancssorban

Milyen hasznos dolgokat olvashat még a blogban Cloud4Y

→ A top beállítása GNU/Linux rendszeren
→ A penetrációs tesztelők a kiberbiztonság élvonalában
→ Startupok, akik képesek meglepetést okozni
→ Szükségesek a párnák az adatközpontokban?
→ A ház, amit a robot épített

Iratkozzon fel az Telegram-csatorna, hogy ne maradj le a legújabb cikkről! Hetente legfeljebb kétszer írunk, és csak lényeges dolgokról. Emlékeztetjük, hogy a Cloud4Y vállalati felhőszolgáltató elindította a „Felhő FZ-152 normál áron” akciót. Az igénylést leadhatod december 31-ig.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster