Nový rok sa blíži, už nechcem myslieť na serióznu prácu.
Každý sa snaží niečo vyzdobiť na sviatok: domov, kanceláriu, pracovisko... Poďme si aj my niečo ozdobiť! Napríklad príkazový riadok. Pracovným miestom je do istej miery aj príkazový riadok.
V niektorých distribúciách je už „ozdobený“:

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

A môžeme to urobiť napríklad takto:

Samozrejme, všetky fixky majú rôzne chute a farby. Ak sa vám takéto sfarbenie zdá nevkusné a nevhodné, tak vedzte, že tento uhol pohľadu má plné právo na život. A ak chcete pridať trochu novoročného ducha, prečítajte si krátky novoročný článok od Cloud4Y.
Najprv vysvetlím, ako je výstup terminálu „farebný“. Robí sa to pomocou escape sekvencií. Alebo presnejšie, sekvencie riadiacich kódov terminálu ANSI/VT100. Čo automaticky znamená, že váš emulátor terminálu musí podporovať tento štandard, inak sa novoročný zázrak nestane. A áno, predpokladá sa, že $SHELL je váš bash.
Tieto príkazy sa nazývajú escape sekvencie, pretože na začiatku každého z nich je ASCII znak „escape“. Ovládacích sekvencií je veľa a umožňujú napríklad zobraziť nastavenia terminálu, ovládať zobrazenie a pohyb kurzora, meniť písmo, mazať a skrývať text. Zo všetkých možností si vyberieme jednu - zmenu farby textu a pozadia.
Vykonajte sekvenciu kódu *ESC*[{attr1};...;{attrn}m
Ako symbol uniknúť používa sa jeho osmičková forma, tzn 33. Čo sa týka atribútov, tu je krátky zoznam možných hodnôt:
0 Obnoviť všetky atribúty
1 Jasný (zvýšený jas)
2 Dim
4 Podčiarknite
5 Blikať
7 Obrátený
8 Skryté (skryť text)
Farby popredia (farba pera, text je zobrazený v tejto farbe):
30 čierna
31 Červená
32 zelená
33 žltá
34 Modrá
35 purpurová (purpurová)
36 azúrová (modrá)
37 biely
Farby pozadia (farba papiera alebo farba pozadia):
40 čierna
41 Červená
42 zelená
43 žltá
44 Modrá
45 purpurová (purpurová)
46 azúrová (modrá)
47 biely
Všimnite si, že ak teraz zadáte príkaz v termináli: echo 33[0;31mнекоторый текст 33[0m’
...potom na výstupe predvídateľne dostanete monochromatický gýč:

prečo? Pretože bolo potrebné využiť pokročilé možnosti príkazu echo. Stačí pridať jeden kľúč: echo -e ‘ 33[0;31mнекоторый текст 33[0m’
Výstup bude teraz vyzerať správne:
![]()
Vyriešili sme zafarbenie výstupu do terminálu. Teraz sa pozrime, ako zafarbiť príkazový riadok.
To sa dosiahne zmenou premennej PS1. Premenná je zodpovedná za riadok príkazového riadku. Jeho vzhľad je tiež možné zmeniť, vrátane použitia únikových sekvencií. Je tu však malý rozdiel: sekvenciu musíte začať so symbolom „[“ a končí symbolom „]“, inak sa odošle na terminál.
Všetky možné sekvencie príkazov sú podrobne popísané v príručke bash, takže čitateľov vyzývam, aby si sami vybrali, čo chcú vidieť na príkazovom riadku. Ako príklad uvediem svoju hodnotu pre premennú PS1:
[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n
Rozlúštim toto hrozné kúzlo:
[ 33[34;1 m] — zapnutie jasne modrej (druhý atribút) farby písma
t – zobrazenie aktuálneho času vo formáte HH: MM: SS
[ 33[0 m] – obnoviť nastavenia farby písma
, - len čiarka (nečakané, však?)
[ 33[32 m] — zapnúť zelenú farbu písma
u@l@h – zobrazí meno používateľa, číslo koncového zariadenia a krátky názov hostiteľa oddelené symbolom „@“.
[ 33[0 m] — znova vynulujte nastavenia farby písma
: - len dvojbodka (náhle!)
[ 33[33 m] — zapnúť žltú farbu písma
W – zobrazenie názvu aktuálneho adresára
[ 33[0 m] — znova vynulujte nastavenia farby písma
, - ďalšia čiarka (kto by si to bol pomyslel!)
[ 33[31 m] — zapnite červenú farbu písma
! — zobrazenie čísla príkazu v termináli
[ 33[0 m] - nezabudnite obnoviť nastavenia farby písma
$ — vytlačte „#“ pre root a „$“ pre všetkých ostatných
n - preklad riadkov. Prečo? Aby príkaz začínal na ľavom okraji okna, a nie na konci príkazového riadka.
Kde predefinovať premennú? Najlogickejšie miesto na to je ~/.bashrc.
Vzhľad pozvánky je obmedzený len vašou fantáziou. V zásade vám nič nebráni urobiť príkazový riadok vo forme vianočného stromčeka pomocou nástrojov opísaných vyššie. Je pravda, že takéto pozvanie bude veľmi ťažkopádne a práca určite nebude pohodlnejšia. Vianočný stromček je možné jednoducho zobraziť nad príkazovým riadkom pri prihlásení (musíme ešte upraviť ~/.bashrc). Ísť na to! A ďakujem za pozornosť.

Čo si ešte môžete prečítať na blogu?
→
→
→
→
→
Prihláste sa na odber -kanál, aby vám neušiel ďalší článok! Píšeme si maximálne dvakrát do týždňa a len služobne. Pripomíname tiež, že poskytovateľ firemného cloudu Cloud4Y spustil akciu “FZ-152 Cloud za bežnú cenu”. Môžete sa prihlásiť .
Zdroj: hab.com
