Juletre på kommandolinjen

Det nye året kommer, jeg vil ikke tenke på seriøst arbeid lenger.

Alle prøver å pynte noe til ferien: hjem, kontor, arbeidsplass... La oss også pynte noe! For eksempel en kommandolinje. Til en viss grad er kommandolinjen også en arbeidsplass.

I noen distribusjoner er det allerede "pyntet":

Juletre på kommandolinjen

I andre er det grått og lite iøynefallende:

Juletre på kommandolinjen

Og vi kan for eksempel gjøre slik:

Juletre på kommandolinjen

Selvfølgelig har alle markører forskjellig smak og farger. Hvis slik fargelegging virker klissete og upassende for deg, så vet du at dette synspunktet har all rett til liv. Og hvis du også vil legge til litt nyttårsånd, les videre for en kort nyttårsartikkel fra Cloud4Y.

Først skal jeg forklare hvordan terminalutgangen er "farget". Dette gjøres ved hjelp av escape-sekvenser. Eller mer presist, kontrollkodesekvensene til ANSI/VT100-terminalen. Noe som automatisk betyr at terminalemulatoren din må støtte denne standarden, ellers vil ikke nyttårsmirakelet skje. Og ja, $SHELL antas å være din bash.

Disse kommandoene kalles escape-sekvenser fordi i begynnelsen av hver av dem er det et ASCII-tegn "escape". Det er mange kontrollsekvenser, og de lar for eksempel vise terminalinnstillinger, kontrollere visning og bevegelse av markøren, endre font, slette og skjule tekst. Vi vil velge en fra alle de forskjellige mulighetene - endre fargen på teksten og bakgrunnen.

Utfør kodesekvensen *ESC*[{attr1};...;{attrn}m
Som et symbol Flukt dens oktale form brukes, dvs 33. Når det gjelder attributter, her er en kort liste over mulige verdier:

0 Tilbakestill alle attributter
1 Lyst (økt lysstyrke)
2 Dim
4 Understrek
5 Blinke
7 Omvendt
8 Skjult (skjul tekst)

Forgrunnsfarger (pennefarge, tekst vises i denne fargen):
30 Svart
31 rød
32 Grønn
33 Gul
34 Blå
35 Magenta (magenta)
36 Cyan (blå)
37 Hvit

Bakgrunnsfarger (papirfarge eller bakgrunnsfarge):
40 Svart
41 rød
42 Grønn
43 Gul
44 Blå
45 Magenta (magenta)
46 Cyan (blå)
47 Hvit

Merk at hvis du nå kommanderer i terminalen: echo 33[0;31mнекоторый текст 33[0m’

...da vil du forutsigbart få monokrom gobbledygook ved utgangen:

Juletre på kommandolinjen

Hvorfor? Fordi det var nødvendig å bruke de avanserte egenskapene til ekkokommandoen. Det er nok å legge til én nøkkel: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

Utgangen vil nå se riktig ut:

Juletre på kommandolinjen

Vi har sortert ut fargen på utgangen til terminalen. La oss nå se hvordan du fargelegger ledeteksten.

Dette gjøres ved å endre PS1-variabelen. Variabelen er ansvarlig for ledeteksten. Utseendet kan også endres, inkludert å bruke rømningssekvenser. Men det er en liten forskjell: du må starte sekvensen med symbolet "[", og avslutt med symbolet "]”, ellers vil den sendes ut til terminalen.

Alle mulige kommandosekvenser er beskrevet i detalj i bash-manualen, så jeg inviterer leserne til å velge selv hva de foretrekker å se på kommandolinjen. Som et eksempel vil jeg gi min verdi for PS1-variabelen:

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

Jeg skal tyde denne forferdelige trollformelen:

[33[34;1m] — slå på lys blå (andre attributt) skriftfarge
t – vis gjeldende tid i formatet TT: MM: SS
[33[0m] – tilbakestill skriftfargeinnstillingene
, - bare et komma (uventet, ikke sant?)
[33[32m] — slå på grønn skriftfarge
u@l@h – vis brukernavn, terminalenhetsnummer og kort vertsnavn, atskilt med "@"-symbolet
[33[0m] — tilbakestill skriftfargeinnstillingene igjen
: - bare et kolon (plutselig!)
[33[33m] – slå på gul skriftfarge
W – vise navnet på gjeldende katalog
[33[0m] — tilbakestill skriftfargeinnstillingene igjen
, - et annet komma (hvem hadde trodd!)
[33[31m] – slå på den røde skriftfargen
! — vis kommandonummeret i terminalen
[33[0m] - Ikke glem å tilbakestille skriftfargeinnstillingene
$ - skriv ut "#" for root og "$" for alle andre
n - linjeoversettelse. For hva? Slik at kommandoen starter på venstre kant av vinduet, i stedet for på slutten av ledeteksten.

Hvor redefinerer man en variabel? Det mest logiske stedet å gjøre dette på er ~/.bashrc.

Utseendet til invitasjonen er bare begrenset av fantasien din. I prinsippet er det ingenting som hindrer deg i å lage en kommandolinjemelding i form av et juletre ved å bruke verktøyene beskrevet ovenfor. Riktignok vil en slik invitasjon være veldig tungvint, og arbeidet vil definitivt ikke bli mer praktisk. Juletreet kan ganske enkelt vises over kommandolinjen når du logger på (vi må fortsatt redigere ~/.bashrc). Gå for det! Og takk for oppmerksomheten.

Juletre på kommandolinjen

Hva annet kan du lese på bloggen? Cloud4Y

Konfigurerer toppen i GNU/Linux
Pentesters i forkant av cybersikkerhet
Startups som kan overraske
Er det behov for puter i et datasenter?
Huset som en robot bygde

Abonner på vår Telegram-kanal slik at du ikke går glipp av neste artikkel! Vi skriver ikke mer enn to ganger i uken og kun på forretningsreise. Vi minner deg også om at bedriftsskyleverandøren Cloud4Y har lansert kampanjen "FZ-152 Cloud til ordinær pris". Du kan søke til 31. desember.

Kilde: www.habr.com

Legg til en kommentar