New Year is coming soon, and it’s hard to think about serious work.
Everyone is trying to decorate something for the holiday: home, office, workspace... Let’s decorate something too! For example, the command line. In a way, the command line is also a workspace.
In some distributions, it is already "decorated":

In others, it is grey and unremarkable:

But we can do something like this:

Of course, everyone has different tastes. If you find this coloring gaudy and inappropriate, know that this viewpoint absolutely deserves respect. But if you also want to add a bit of festive spirit, check out the following short New Year article from Cloud4Y.
First, let me explain how the terminal output is "painted". It’s done using escape sequences. To be more precise, using ANSI/VT100 control sequences. This automatically means that your terminal emulator must support this standard; otherwise, the New Year’s magic won’t happen. And yes, it is assumed that your $SHELL is bash.
They call these commands escape sequences because each of them begins with the ASCII character "escape". There are many control sequences that allow you, for example, to output terminal settings, control cursor display and movement, change fonts, delete and hide text. From this diversity of possibilities, we will choose one: changing the text and background colors.
Execute the code sequence *ESC*[{attr1};...;{attrn}m
As a symbol Escape its octal form is used, which is 33. As for attributes, here is a brief list of possible values:
0 Reset all attributes
1 Bright (increased brightness)
2 Dim (dim light)
4 Underscore (underline)
5 Blink (blinking)
7 Reverse (inversion)
8 Hidden (hide text)
Foreground Colours (pen color, this color is used for text output):
30 Black (black)
31 Red (red)
32 Green (green)
33 Yellow (yellow)
34 Blue (blue)
35 Magenta (magenta)
36 Cyan (cyan)
37 White (white)
Background Colours (paper color or background color):
40 Black (black)
41 Red (red)
42 Green (green)
43 Yellow (yellow)
44 Blue (blue)
45 Magenta (magenta)
46 Cyan (cyan)
47 White (white)
Note that if you now command in the terminal: echo 33[0;31m some text 33[0m’
… you will predictably get monochrome gibberish as output:

Why? Because you needed to employ the extended capabilities of the echo command. Just add one little flag: echo -e ‘ 33[0;31mnekaterý text 33[0m’
Teraz výstup bude vyzerať správne:
![]()
S farebným výstupom na termináli sme sa vysporiadali. Teraz sa pozrime, ako zafarbiť výzvu príkazového riadku.
To sa robí zmenou premennej PS1. Táto premenná riadi výzvu príkazového riadku. Jej vzhľad je taktiež možné meniť, vrátane použitia escape sekvencií. Môže však existovať malé odlišnosti: sekvenciu treba začať symbolom “[”, a skončiť symbolom “]”, inak sa na terminál vytlačí.
Všetky možné sekvencie príkazov sú podrobne popísané v manuáli k bash, takže navrhujem čitateľom, aby si sami vybrali, čo im viac vyhovuje sledovať vo výzve príkazového riadku. Ako príklad uvediem svoju hodnotu premennej 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úštime toto desivé zaklínadlo:
[ 33[34;1m] — aktivujeme sýto-modrú (druhý atribút) farbu písma
t – vypíšeme aktuálny čas vo formáte HH: MM: SS
[ 33[0m] – resetujeme nastavenia farby písma
, — len čiarka (prekvapujúce, však?)
[ 33[32m] — aktivujeme zelenú farbu písma
u@l@h – vypíšeme meno používateľa, číslo terminálového zariadenia a skrátené meno hostiteľa, oddelené symbolom “@”
[ 33[0m] — znova resetujeme nastavenia farby písma
: — len dvojbodka (náhle!)
[ 33[33m] — aktivujeme žltú farbu písma
W – vypíšeme meno aktuálneho adresára
[ 33[0m] — opäť resetujeme nastavenia farby písma
, — ešte jedna čiarka (kto by to bol povedal!)
[ 33[31m] — aktivujeme červenú farbu písma
! — vypíšeme číslo príkazu v termináli
[ 33[0m] — nezabúdajme resetovať nastavenia farby písma
$ — vypíšeme “#” pre root a “$” pre ostatné
n – nový riadok. Prečo? Aby príkaz začínal odľava, a nie z konca výzvy príkazového riadku.
Kde predefinovať premennú? Najlogickejšie je to urobiť v ~/.bashrc.
Vzhľad výzvy je obmedzený len vašou fantáziou. V zásade vám nič nebráni vytvoriť pomocou vyššie uvedených nástrojov výzvu príkazového riadku vo forme vianočného stromčeku. Pravda, takáto výzva bude veľmi objemná a práca sa určite nezjednoduší. Stromček môžete jednoducho vypísať nad výzvu príkazového riadku po prihlásení do systému (aj tak musíme upraviť ~/.bashrc). Tak sa do toho pustite! A ďakujem za pozornosť.

Kaj še koristnega lahko preberete v blogu
→
→
→
→
→
Prijavite se na naš -kanal, da ne zamudite naslednje članke! Pišemo največ dvakrat na teden in samo o pomembnih temah. Prav tako vas obveščamo, da je korporativni oblačni ponudnik Cloud4Y začel akcijo 'Oblak FZ-152 po ceni običajnega'. Prijavo lahko oddate .
Izvor: habr.com
