Julgran på kommandoraden

Det nya året kommer, jag vill inte tänka på seriöst arbete längre.

Alla försöker dekorera något för semestern: hem, kontor, arbetsplats... Låt oss dekorera något också! Till exempel en kommandoradsprompt. Till viss del är kommandoraden också en arbetsplats.

I vissa distributioner är det redan "dekorerat":

Julgran på kommandoraden

В других – она серая и неприметная:

Julgran på kommandoraden

Och vi kan till exempel göra så här:

Julgran på kommandoraden

Конечно, на вкус и цвет все фломастеры разные. Если подобная раскраска кажется вам аляповатой и неуместной, то знайте, что данная точка зрения имеет полное право на жизнь. А если вам тоже хочется добавить немного новогоднего настроения, читайте далее небольшую новогоднюю статью от Cloud4Y.

Först ska jag förklara hur terminalutgången är "färgad". Detta görs med hjälp av escape-sekvenser. Eller mer exakt, kontrollkodsekvenserna för ANSI/VT100-terminalen. Vilket automatiskt betyder att din terminalemulator måste stödja denna standard, annars kommer inte nyårsmiraklet att hända. Och ja, $SHELL antas vara din bash.

Dessa kommandon kallas escape-sekvenser eftersom det i början av var och en av dem finns ett ASCII-tecken "escape". Det finns många kontrollsekvenser, och de tillåter till exempel att visa terminalinställningar, styra visning och rörelse av markören, ändra teckensnitt, radera och dölja text. Vi kommer att välja en från alla olika möjligheter - ändra färgen på texten och bakgrunden.

Utför kodsekvensen *ESC*[{attr1};...;{attrn}m
Som en symbol Fly dess oktala form används, dvs 33. När det gäller attribut, här är en kort lista över möjliga värden:

0 Återställ alla attribut
1 Ljus (ökad ljusstyrka)
2 Dämpa
4 Understrykning
5 Blink (мигание)
7 Omvänd
8 Dold (dölj text)

Förgrundsfärger (pennafärg, text visas i denna färg):
30 Svart
31 Röd
32 Grön
33 Yellow (желтый)
34 Blå
35 Magenta (пурпурный)
36 Cyan (blå)
37 Vit (белый)

Bakgrundsfärger (pappersfärg eller bakgrundsfärg):
40 Svart
41 Röd
42 Grön
43 Yellow (желтый)
44 Blå
45 Magenta (пурпурный)
46 Cyan (blå)
47 Vit (белый)

Observera att om du nu kommandot i terminalen: echo 33[0;31mнекоторый текст 33[0m’

...då kommer du förutsägbart att få monokrom gobbledygook vid utgången:

Julgran på kommandoraden

Почему? Потому, что надо было задействовать расширенные возможности команды echo. Достаточно добавить один ключик: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

Utgången kommer nu att se korrekt ut:

Julgran på kommandoraden

Vi har sorterat ut färgningen på utgången till terminalen. Låt oss nu se hur man färglägger kommandotolken.

Это делается через изменение переменной PS1. Переменная отвечает за приглашение командной строки. Её внешний вид также можно изменять, в том числе при помощи escape-последовательностей. Но есть небольшое отличие: начинать последовательность нужно символом “[", och avsluta med symbolen "]”, annars kommer den att matas ut till terminalen.

Alla möjliga kommandosekvenser beskrivs i detalj i bash-manualen, så jag uppmanar läsarna att själva välja vad de föredrar att se vid kommandoraden. Som ett exempel kommer jag att ge mitt värde för PS1-variabeln:

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

Jag ska dechiffrera denna fruktansvärda besvärjelse:

[33[34;1m] — aktivera ljusblå (andra attribut) teckensnittsfärg
t – visa aktuell tid i formatet TT: MM: SS
[33[0m] – återställ teckensnittsfärginställningar
, - bara ett kommatecken (oväntat, eller hur?)
[33[32m] — aktivera grön teckenfärg
u@l@h – visa användarnamn, terminalenhetsnummer och korta värdnamn, separerade med "@"-symbolen
[33[0m] — återställ teckensnittets färginställningar igen
: - bara ett kolon (plötsligt!)
[33[33m] — aktivera gul typsnittsfärg
W – visa namnet på den aktuella katalogen
[33[0m] — återställ teckensnittets färginställningar igen
, - ytterligare ett kommatecken (vem hade trott!)
[33[31m] — aktivera den röda teckenfärgen
! — visa kommandonumret i terminalen
[33[0m] - glöm inte att återställa teckensnittets färginställningar
$ — skriv ut "#" för root och "$" för alla andra
n – перевод строки. Зачем? Чтобы команда начиналась с левого края окна, а не с позиции конца приглашения командной строки.

Var kan man omdefiniera en variabel? Den mest logiska platsen att göra detta på är ~/.bashrc.

Utseendet på inbjudan begränsas endast av din fantasi. I princip hindrar ingenting dig från att göra en kommandoradsuppmaning i form av en julgran med hjälp av verktygen som beskrivs ovan. Det är sant att en sådan inbjudan kommer att vara mycket besvärlig, och arbetet kommer definitivt inte att bli bekvämare. Julgranen kan helt enkelt visas ovanför kommandoraden när du loggar in (vi behöver fortfarande redigera ~/.bashrc). Ge järnet! Och tack för din uppmärksamhet.

Julgran på kommandoraden

Vad mer kan du läsa på bloggen? Cloud4Y

Konfigurerar toppen i GNU/Linux
Pentesters i framkanten av cybersäkerhet
Startups som kan överraska
Behövs kuddar i ett datacenter?
Huset som en robot byggde

Prenumerera på vår Telegram-kanal så att du inte missar nästa artikel! Vi skriver inte mer än två gånger i veckan och endast i affärer. Vi påminner dig också om att företagets molnleverantör Cloud4Y har lanserat kampanjen "FZ-152 Cloud till ordinarie pris". Du kan ansöka till 31 december.

Källa: will.com

Lägg en kommentar