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":
I andre er det grått og lite iøynefallende:
Og vi kan for eksempel gjøre slik:
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:
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:
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.
Hva annet kan du lese på bloggen?
→
→
→
→
→
Abonner på vår
Kilde: www.habr.com