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":

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

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

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:

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:
![]()
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.

Milyen hasznos dolgokat olvashat még a blogban
→
→
→
→
→
Iratkozzon fel az -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 .
Forrás: habr.com
