Stromeček v příkazovém řádku

Nový rok se blíží, už se nám nechce myslet na vážnou práci.

Všichni se snaží něco na svátky ozdobit: dům, kancelář, pracovní místo… Pojďme i my něco ozdobit! Například pozvánku v příkazovém řádku. V určitých ohledech je příkazový řádek také pracovní místo.

V některých distribucích je už "ozdobená":

Stromeček v příkazovém řádku

V jiných je šedá a nenápadná:

Stromeček v příkazovém řádku

A my to můžeme udělat například takto:

Stromeček v příkazovém řádku

Samozřejmě, každý má jiný vkus. Pokud vám tato výzdoba připadá nevhodná a okatá, vězte, že tento názor má plné právo na existenci. A pokud i vy chcete přidat trochu vánoční atmosféry, čtěte dále malý vánoční článek od Cloud4Y.

Nejprve vysvětlím, jak se "zdobí" výstup terminálu. Dělá se to pomocí escape sekvencí. A přesněji – pomocí řídicích kódových sekvencí terminálu ANSI/VT100. To automaticky znamená, že váš terminálový emulator by měl tuto normu podporovat, jinak vánoční zázrak nenastane. A ano, předpokládá se, že $SHELL máte bash.

Tyto příkazy se nazývají escape sekvencemi, protože na začátku každého z nich je ASCII znak "escape". Existuje mnoho řídicích sekvencí, které například umožňují vypisovat nastavení terminálu, řídit zobrazení a pohyb kurzoru, měnit písmo, mazat a skrývat text. My si z celého rozmanitého spektra možností vybereme jednu – změnu barvy textu a pozadí.

Provádíme kódovou sekvenci *ESC*[{attr1};...;{attrn}m
Jako znak Escape se používá jeho osmičková forma, tedy 33. Co se týče atributů, tady je stručný seznam možných hodnot:

0 Resetovat všechny atributy
1 Bright (zvýšená jasnost)
2 Dim (ztlumení)
4 Underscore (dolní podtržení)
5 Blink (blikat)
7 Reverse (inverze)
8 Hidden (skrýt text)

Foreground Colours (barva pera, tímto barvou se vypisuje text):
30 Black (černá)
31 Red (červená)
32 Green (zelená)
33 Yellow (žlutá)
34 Blue (modrá)
35 Magenta (purpurová)
36 Cyan (azurová)
37 White (bílá)

Background Colours (barva papíru, nebo barva pozadí):
40 Black (černá)
41 Red (červená)
42 Green (zelená)
43 Yellow (žlutá)
44 Blue (modrá)
45 Magenta (purpurová)
46 Cyan (azurová)
47 White (bílá)

Všimněte si, pokud nyní v terminálu zadáte: echo 33[0;31mnějaký text 33[0m’

… pak logicky dostanete na výstupu monochromatickou nesmysl:

Stromeček v příkazovém řádku

Proč? Protože bylo třeba využít rozšířené možnosti příkazu echo. Stačí přidat jeden klíč: echo -e ' 33[0;31mnějaký text 33[0m'

Nyní bude výstup vypadat správně:

Stromeček v příkazovém řádku

S barevným výstupem na terminálu jsme se naučili. Teď se podívejme, jak obarvit výzvu příkazového řádku.

To se dělá změnou proměnné PS1. Tato proměnná se stará o výzvu příkazového řádku. Její vzhled lze také měnit, včetně pomocí escape sekvencí. Existuje ale malé rozdíl: sekvenci je třeba začít znakem “[”, a ukončit znakem “]”, jinak se vytiskne na terminál.

Všechny možné sekvence příkazů jsou podrobně popsány v manuálu pro bash, takže navrhuji čtenářům, aby si sami vybrali, co rádi vidí v příkazovém řádku. Jako příklad uvedu svou hodnotu proměnné PS1:

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

Rozluštím toto hrůzné zaklínadlo:

[ 33[34;1m] — zapínáme jasně modrou (druhý atribut) barvu písma
t – vypisujeme aktuální čas ve formátu HH:MM:SS
[ 33[0m] – resetujeme nastavení barvy písma
, — jen čárka (překvapivě, že?)
[ 33[32m] — zapínáme zelenou barvu písma
u@l@h – vypisujeme jméno uživatele, číslo terminálového zařízení a krátké jméno hostitele, oddělené znakem “@”
[ 33[0m] — znovu resetujeme nastavení barvy písma
: — prostě dvojtečka (náhle!)
[ 33[33m] — zapínáme žlutou barvu písma
W – vypisujeme název aktuálního adresáře
[ 33[0m] — znovu resetujeme nastavení barvy písma
, — ještě jedna čárka (kdo by to řekl!)
[ 33[31m] — zapínáme červenou barvu písma
! — vypisujeme číslo příkazu v terminálu
[ 33[0m] — nezapomínejme resetovat nastavení barvy písma
$ — vypisujeme “#” pro root a “$” pro ostatní
n – nový řádek. Proč? Aby příkaz začínal z levého okraje okna, a ne z pozice konce výzvy příkazového řádku.

Kde předefinovat proměnnou? Nejlogičtější je to udělat v ~/.bashrc.

Vzhled pozvánky je omezen jen vaší fantazií. V podstatě vám nic nebrání použít výše popsané nástroje k vytvoření pozvánky příkazového řádku ve tvaru vánočního stromku. Pravda, taková pozvánka bude velmi objemná a práce rozhodně nebude pohodlnější. Stromek lze jednoduše zobrazit nad pozvánkou příkazového řádku při přihlášení do systému (stejně musíme upravit ~/.bashrc). Tak směle do toho! A děkujeme za pozornost.

Stromeček v příkazovém řádku

Co dalšího si můžete přečíst v blogu Cloud4Y

→ Nastavujeme top v GNU/Linux
→ Pentesteri na přední linii kybernetické bezpečnosti
→ Startupy, které dokáží překvapit
→ Jsou v datových centrech potřebné podložky?
→ Dům, který postavil robot

Sledujte náš Telegram-kanál, abyste nepropásli další článek! Píšeme maximálně dvakrát týdně a jen k věci. Také připomínáme, že korporátní cloudový poskytovatel Cloud4Y spustil akci „Oblak FZ-152 za cenu běžného“. Přihlášku lze podat do 31. prosince.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster