Kristnaska arbo sur la komandlinio

La Novjaro venas, mi ne volas plu pensi pri serioza laboro.

Ĉiuj klopodas ornami ion por la ferio: hejmo, oficejo, laborejo... Ni ornamu ankaŭ ion! Ekzemple, komandlinia prompto. Iagrade, la komandlinio ankaŭ estas laborejo.

En kelkaj distribuoj ĝi jam estas "ornamita":

Kristnaska arbo sur la komandlinio

En aliaj, ĝi estas griza kaj diskreta:

Kristnaska arbo sur la komandlinio

Kaj ni povas fari, ekzemple, jene:

Kristnaska arbo sur la komandlinio

Kompreneble, ĉiuj markiloj havas malsamajn gustojn kaj kolorojn. Se tia kolorigo ŝajnas al vi malmola kaj netaŭga, tiam sciu, ke ĉi tiu vidpunkto havas ĉiun rajton al vivo. Kaj se vi ankaŭ volas aldoni iom da novjara spirito, legu plu por mallonga novjara artikolo de Cloud4Y.

Unue, mi klarigos kiel la fina eligo estas "kolorigita". Ĉi tio estas farita per ellasaj sekvencoj. Aŭ pli precize, la kontrolkodsekvencoj de la ANSI/VT100-terminalo. Kio aŭtomate signifas, ke via terminala emulilo devas subteni ĉi tiun normon, alie la novjara miraklo ne okazos. Kaj jes, $SHELL estas supozita esti via bato.

Ĉi tiuj ordonoj estas nomataj ellasaj sekvencoj ĉar komence de ĉiu el ili estas ASCII-signo "escape". Estas multaj kontrolsekvencoj, kaj ili permesas, ekzemple, montri terminalajn agordojn, kontroli la ekranon kaj movon de la kursoro, ŝanĝi la tiparon, forigi kaj kaŝi tekston. Ni elektos unu el ĉiuj diversaj eblecoj - ŝanĝante la koloron de la teksto kaj fono.

Efektivigu la kodsekvencon *ESC*[{attr1};...;{attrn}m
Kiel simbolo eskapo ĝia okta formo estas uzata, tio estas 33. Koncerne atributojn, jen mallonga listo de eblaj valoroj:

0 Restarigi ĉiujn atributojn
1 Brilo (pliigita brilo)
2 Dim
4 Substreko
5 Palpebrumi
7 Reverse
8 Kaŝita (kaŝi tekston)

Antaŭplanaj Koloroj (plumkoloro, teksto estas montrata en ĉi tiu koloro):
30 Nigra
31 Ruĝa
32 Verda
33 Flava
34 Blua
35 Magento (magento)
36 Cejana (blua)
37 Blanka

Fonkoloroj (papera koloro aŭ fonkoloro):
40 Nigra
41 Ruĝa
42 Verda
43 Flava
44 Blua
45 Magento (magento)
46 Cejana (blua)
47 Blanka

Notu, ke se vi nun komandas en la terminalo: echo 33[0;31mнекоторый текст 33[0m’

...tiam vi antaŭvideble ricevos monokromatan gobbledygook ĉe la eligo:

Kristnaska arbo sur la komandlinio

Kial? Ĉar necesis uzi la altnivelajn kapablojn de la eĥa komando. Sufiĉas aldoni unu ŝlosilon: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

La eligo nun aspektos ĝusta:

Kristnaska arbo sur la komandlinio

Ni ordigis la kolorigon de la eligo al la terminalo. Nun ni vidu kiel kolorigi la komandan promptilon.

Ĉi tio estas farita ŝanĝante la PS1-variablon. La variablo respondecas pri la komandlinia prompto. Ĝia aspekto ankaŭ povas esti ŝanĝita, inkluzive de uzado de fuĝsekvencoj. Sed estas eta diferenco: vi devas komenci la sekvencon per la simbolo "[”, kaj finiĝu per la simbolo “]”, alie ĝi estos eligita al la terminalo.

Ĉiuj eblaj komandsekvencoj estas detale priskribitaj en la bash-manlibro, do mi invitas legantojn elekti mem tion, kion ili preferas vidi ĉe la komandlinia promptilo. Ekzemple, mi donos mian valoron por la PS1-variablo:

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

Mi deĉifris ĉi tiun teruran sorĉon:

[ 33[34;1m] — ŝaltu helbluan (duan atributon) tiparkoloron
t – montri la aktualan horon en la formato HH: MM: SS
[ 33[0m] - restarigi tiparajn kolorajn agordojn
, - nur komo (neatendita, ĉu ne?)
[ 33[32m] — ŝaltu verdan tiparokoloron
u@l@h - montru la uzantnomon, terminalan aparaton kaj mallongan gastigan nomon, apartigitajn per la simbolo "@".
[ 33[0m] - restarigi la agordojn de la koloraj tiparoj denove
: - nur dupunkto (subite!)
[ 33[33m] — ŝaltu flavan tiparkoloron
W – montri la nomon de la nuna dosierujo
[ 33[0m] — denove reagordi la agordojn de la tiparo
, - alia komo (kiu estus pensinta!)
[ 33[31m] — ŝaltu la ruĝan tiparkoloron
! — montru la komandnumeron en la terminalo
[ 33[0m] - ne forgesu restarigi la agordojn de la tipkoloro
$ — presi “#” por radiko kaj “$” por ĉiuj aliaj
n - liniotraduko. Por kio? Por ke la komando komenciĝu ĉe la maldekstra rando de la fenestro, prefere ol ĉe la fino de la komandlinia prompto.

Kie redifini variablon? La plej logika loko por fari tion estas ~/.bashrc.

La aspekto de la invito estas limigita nur de via imago. Principe nenio malhelpas vin fari komandlinian promptilon en formo de kristnaska arbo uzante la ilojn priskribitajn supre. Vere, tia invito estos tre maloportuna, kaj laboro certe ne fariĝos pli oportuna. La kristnaska arbo simple povas esti montrata super la komandlinia prompto dum ensaluto (ni ankoraŭ devas redakti ~/.bashrc). Kuraĝiĝu! Kaj dankon pro via atento.

Kristnaska arbo sur la komandlinio

Kion alian vi povas legi en la blogo? Cloud4Y

Agordo de supro en GNU/Linukso
Pentestantoj ĉe la avangardo de cibersekureco
Startups kiuj povas surprizi
Ĉu kusenoj bezonas en datumcentro?
La domo, kiun konstruis roboto

Abonu nian Telegramo-kanalo por ke vi ne maltrafu la sekvan artikolon! Ni skribas ne pli ol dufoje semajne kaj nur pri komerco. Ni ankaŭ memorigas vin, ke la kompania nuba provizanto Cloud4Y lanĉis la reklamadon "FZ-152 Cloud ĉe la regula prezo". Vi povas kandidatiĝi ĝis la 31-a de decembro.

fonto: www.habr.com

Aldoni komenton