Vánoční strom na příkazovém řádku

Nový rok se blíží, nechci už myslet na seriózní práci.

Každý se snaží k svátku něco vyzdobit: domov, kancelář, pracoviště... Pojďme si taky něco ozdobit! Například příkazový řádek. Příkazový řádek je do jisté míry také pracovištěm.

V některých distribucích je již „ozdoben“:

Vánoční strom na příkazovém řádku

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

Vánoční strom na příkazovém řádku

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

Vánoční strom na příkazovém řádku

Všechny fixy mají samozřejmě různé chutě a barvy. Pokud se vám takové zbarvení zdá nevkusné a nevhodné, pak vězte, že tento úhel pohledu má plné právo na život. A pokud chcete také přidat trochu novoroční nálady, přečtěte si krátký novoroční článek od Cloud4Y.

Nejprve vysvětlím, jak je výstup terminálu „barevný“. To se provádí pomocí escape sekvencí. Přesněji řečeno sekvence řídicích kódů terminálu ANSI/VT100. Což automaticky znamená, že váš emulátor terminálu musí tento standard podporovat, jinak se novoroční zázrak nestane. A ano, předpokládá se, že $SHELL je váš bash.

Tyto příkazy se nazývají escape sekvence, protože na začátku každého z nich je ASCII znak „escape“. Ovládacích sekvencí je mnoho a umožňují např. zobrazení nastavení terminálu, ovládání zobrazení a pohybu kurzoru, změnu písma, mazání a skrývání textu. Vybereme jednu ze všech různých možností - změna barvy textu a pozadí.

Proveďte sekvenci kódu *ESC*[{attr1};...;{attrn}m
jako symbol uniknout používá se jeho osmičková forma, tzn 33. Pokud jde o atributy, zde je krátký seznam možných hodnot:

0 Obnovit všechny atributy
1 Jasný (zvýšený jas)
2 Ztlumit
4 Podtržítko
5 Blikat
7 Zvrátit
8 Skrytý (skrýt text)

Barvy popředí (barva pera, text je zobrazen v této barvě):
30 Černá
31 Červené
32 Zelená
33 Žlutá
34 Modrý
35 purpurová (purpurová)
36 azurová (modrá)
37 bílá (белый)

Barvy pozadí (barva papíru nebo barva pozadí):
40 Černá
41 Červené
42 Zelená
43 Žlutá
44 Modrý
45 purpurová (purpurová)
46 azurová (modrá)
47 bílá (белый)

Všimněte si, že pokud nyní zadáte příkaz v terminálu: echo 33[0;31mнекоторый текст 33[0m’

...potom na výstupu předvídatelně dostanete monochromatický gobbledy gook:

Vánoční strom na příkazovém řádku

Proč? Protože bylo nutné využít pokročilé možnosti příkazu echo. Stačí přidat jeden klíč: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

Výstup bude nyní vypadat správně:

Vánoční strom na příkazovém řádku

Vyřešili jsme zbarvení výstupu do terminálu. Nyní se podívejme, jak obarvit příkazový řádek.

To se provádí změnou proměnné PS1. Proměnná je zodpovědná za příkazový řádek. Jeho vzhled lze také změnit, včetně použití escape sekvencí. Ale je tu malý rozdíl: musíte začít sekvenci se symbolem "[“ a končí symbolem „]“, jinak bude odeslán na terminál.

Všechny možné sekvence příkazů jsou podrobně popsány v manuálu bash, takže vyzývám čtenáře, aby si sami vybrali, co chtějí vidět na příkazovém řádku. Jako příklad uvedu svou hodnotu pro proměnnou 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 hrozné kouzlo:

[ 33[34;1m] — zapnout jasně modrou (druhý atribut) barvu písma
t – zobrazení aktuálního času ve formátu HH: MM: SS
[ 33[0 m] – obnovit nastavení barvy písma
, - jen čárka (nečekané, že?)
[ 33[32 m] — zapnout zelenou barvu písma
u@l@h – zobrazí uživatelské jméno, číslo koncového zařízení a krátký název hostitele oddělené symbolem „@“.
[ 33[0 m] — znovu resetujte nastavení barvy písma
: - jen dvojtečka (najednou!)
[ 33[33 m] — zapnout žlutou barvu písma
W – zobrazí název aktuálního adresáře
[ 33[0 m] — znovu resetujte nastavení barvy písma
, - další čárka (kdo by si to pomyslel!)
[ 33[31 m] — zapněte červenou barvu písma
! — zobrazení čísla příkazu v terminálu
[ 33[0 m] - nezapomeňte obnovit nastavení barvy písma
$ — vytisknout „#“ pro root a „$“ pro všechny ostatní
n - překlad řádků. Proč? Aby příkaz začínal na levém okraji okna, nikoli na konci příkazového řádku.

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

Vzhled pozvánky je omezen pouze vaší fantazií. V zásadě vám nic nebrání vytvořit příkazový řádek v podobě vánočního stromku pomocí výše popsaných nástrojů. Je pravda, že takové pozvání bude velmi těžkopádné a práce rozhodně nebude pohodlnější. Vánoční stromeček lze jednoduše zobrazit nad příkazovým řádkem při přihlášení (musíme ještě upravit ~/.bashrc). Jít na to! A děkuji za pozornost.

Vánoční strom na příkazovém řádku

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

Nastavení top v GNU/Linuxu
Pentesters v popředí kybernetické bezpečnosti
Startupy, které umí překvapit
Jsou v datovém centru potřeba polštáře?
Dům, který postavil robot

Přihlaste se k odběru Telegram-kanál, aby vám neunikl další článek! Píšeme maximálně dvakrát týdně a pouze služebně. Připomínáme také, že poskytovatel firemního cloudu Cloud4Y spustil akci „FZ-152 Cloud za běžnou cenu“. Můžete se přihlásit do 31. prosince.

Zdroj: www.habr.com

Přidat komentář