Julgran i kommandoraden

Det Àr snart nyÄr, och jag vill inte tÀnka pÄ seriöst arbete lÀngre.

Alla försöker dekorera nĂ„got till högtiden: hemmet, kontoret, arbetsplatsen
 LĂ„t oss ocksĂ„ dekorera nĂ„got! Till exempel kommandoraden. PĂ„ nĂ„got sĂ€tt Ă€r kommandoraden ocksĂ„ en arbetsplats.

I vissa distributioner Àr den redan "dekorerad":

Julgran i kommandoraden

I andra Àr den grÄ och oansenlig:

Julgran i kommandoraden

Och vi kan göra sÄ hÀr till exempel:

Julgran i kommandoraden

SjÀlvklart Àr alla smaker olika. Om denna dekoration verkar klumpig eller olÀmplig för dig, sÄ vet att den Äsikten har full rÀtt att existera. Men om du ocksÄ vill lÀgga till lite nyÄrsstÀmning, lÀs vidare en liten nyÄrsstoria frÄn Cloud4Y.

Först förklarar jag hur terminalens utskrift "dekoreras". Detta görs med hjÀlp av escape-sekvenser. Mer exakt, det handlar om ANSI/VT100 kontrollkodsekvenser. Det innebÀr automatiskt att din terminalemulator mÄste stödja denna standard, annars kommer inga nyÄrsmirakel att Àga rum. Och ja, det förutsÀtts att $SHELL Àr bash.

Dessa kommandon kallas escape-sekvenser eftersom varje sekvens inleds med ASCII-tecknet "escape". Det finns mĂ„nga kontrollsekvenser, och de tillĂ„ter till exempel att visa terminalinstĂ€llningarna, styra visningen och förflyttningen av markören, Ă€ndra typsnitt, radera och dölja text. Av alla dessa möjligheter vĂ€ljer vi en – förĂ€ndring av textens och bakgrundens fĂ€rg.

Vi utför kodsekvensen *ESC*[{attr1};...;{attrn}m
Som symbol Escape anvÀnds dess oktala form, det vill sÀga 33. NÀr det gÀller attribut Àr hÀr en kort lista över möjliga vÀrden:

0 ÅterstĂ€ll alla attribut
1 Bright (ökad ljusstyrka)
2 Dim (mörkare)
4 Underscore (underrubrik)
5 Blink (blinkande)
7 Reverse (invertera)
8 Hidden (dölja text)

Foreground Colours (penna fÀrger, denna fÀrg anvÀnds för texten):
30 Black (svart)
31 Red (röd)
32 Green (grön)
33 Yellow (gul)
34 Blue (blÄ)
35 Magenta (magenta)
36 Cyan (cyan)
37 White (vit)

Background Colours (papper, eller bakgrundsfÀrg):
40 Black (svart)
41 Red (röd)
42 Green (grön)
43 Yellow (gul)
44 Blue (blÄ)
45 Magenta (magenta)
46 Cyan (cyan)
47 White (vit)

Observera, om du nu ger kommandot i terminalen: echo 33[0;31mnĂ„gon text 33[0m’


 sĂ„ kommer du förutsĂ€gbart fĂ„ ut en monokrom abrovink:

Julgran i kommandoraden

Varför? För att vi behövde anvĂ€nda de utökade möjligheterna hos kommandot echo. Det rĂ€cker att lĂ€gga till en liten flagga: echo -e ‘ 33[0;31mnĂ„gon text 33[0m’

Nu kommer utdata att se korrekt ut:

Julgran i kommandoraden

Vi har löst fÀrgsÀttningen av utdata i terminalen. LÄt oss nu se hur man fÀrgsÀtter kommandoprompten.

Det görs genom att Ă€ndra variabeln PS1. Denna variabel ansvarar för kommandoprompten. Utseendet kan ocksĂ„ Ă€ndras, inklusive med hjĂ€lp av escape-sekvenser. Men det finns en liten skillnad: man mĂ„ste inleda sekvensen med symbolen “[”, och avsluta med symbolen “]”, annars kommer den att skrivas ut i terminalen.

Alla möjliga kommandosekvenser Àr detaljerat beskrivna i bash-manualen, sÄ jag föreslÄr att lÀsarna sjÀlva vÀljer vad de föredrar att se i kommandoprompten. Som exempel ger jag mitt vÀrde för variabeln PS1:

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

Jag kommer att avkoda denna otÀcka besvÀrjelse:

[ 33[34;1m] — aktiverar klarblĂ„ (andra attribut) textfĂ€rg
t – skriver ut aktuell tid i formatet HH:MM:SS
[ 33[0m] – Ă„terstĂ€ller textfĂ€rginstĂ€llningarna
, — bara ett kommatecken (överraskande, eller hur?)
[ 33[32m] — aktiverar grön textfĂ€rg
u@l@h – skriver ut anvĂ€ndarnamn, terminalnummer och kort namn pĂ„ vĂ€rden, Ă„tskilt med symbolen “@”
[ 33[0m] — Ă„terstĂ€ller textfĂ€rginstĂ€llningarna igen
: — bara ett kolon (ovĂ€ntat!)
[ 33[33m] — aktiverar gul textfĂ€rg
W – skriver ut namnet pĂ„ den aktuella katalogen
[ 33[0m] — Ă„terigen Ă„terstĂ€ller textfĂ€rginstĂ€llningarna
, — ytterligare ett kommatecken (vem kunde ha trott det!)
[ 33[31m] — aktiverar röd textfĂ€rg
! — skriver ut kommandot i terminalen
[ 33[0m] — glöm inte att Ă„terstĂ€lla textfĂ€rginstĂ€llningarna
$ — skriver ut “#” för root och “$” för alla andra
n – radbrytning. Varför? För att kommandot ska börja frĂ„n vĂ€nster kant i fönstret, istĂ€llet för frĂ„n slutet av kommandoprompten.

Var kan man ÄsidosÀtta variabeln? Det Àr mest logiskt att göra det i ~\/ .bashrc.

Utseendet pÄ inbjudan Àr begrÀnsat endast av din fantasi. I princip kan du med hjÀlp av verktygen ovan skapa en kommandotolk inbjudan i form av en julgran. Visserligen blir en sÄdan inbjudan mycket otymplig, och arbetet blir definitivt inte lÀttare. Du kan helt enkelt skriva ut granen ovanför kommandotolken vid inloggning (eftersom vi ÀndÄ behöver redigera ~/.bashrc). Ge dig pÄ det! Och tack för din uppmÀrksamhet.

Julgran i kommandoraden

Vad mer intressant kan man lÀsa i bloggen Cloud4Y

→ Vi konfigurerar top i GNU/Linux
→ Pentestare pĂ„ frontlinjen av cybersĂ€kerhet
→ Startups som kan överraska
→ Behövs det kuddar i datacentret?
→ Huset som roboten byggde

Prenumerera pÄ vÄr Telegram-kanalen för att inte missa nÀsta artikel! Vi skriver högst tvÄ gÄnger i veckan och endast nÀr det Àr relevant. Vi pÄminner ocksÄ om att den företagsmolnleverantören Cloud4Y har lanserat kampanjen "Moln enligt FZ-152 till vanligt pris". Ansökning kan göras till 31 december.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster