Christmas tree sa command line

Malapit na ang Bagong Taon, ayoko nang mag-isip ng seryosong trabaho.

Sinusubukan ng lahat na palamutihan ang isang bagay para sa holiday: tahanan, opisina, lugar ng trabaho... Magdekorasyon din tayo ng isang bagay! Halimbawa, isang command line prompt. Sa ilang lawak, ang command line ay isa ring lugar ng trabaho.

Sa ilang mga distribusyon, ito ay "pinalamutian" na:

Christmas tree sa command line

Sa iba, ito ay kulay abo at hindi mahalata:

Christmas tree sa command line

At maaari nating gawin, halimbawa, tulad nito:

Christmas tree sa command line

Siyempre, ang lahat ng mga marker ay may iba't ibang panlasa at kulay. Kung ang gayong pangkulay ay tila hindi kaakit-akit at hindi naaangkop sa iyo, pagkatapos ay malaman na ang pananaw na ito ay may bawat karapatan sa buhay. At kung gusto mo ring magdagdag ng kaunting espiritu ng Bagong Taon, magbasa para sa maikling artikulo ng Bagong Taon mula sa Cloud4Y.

Una, ipapaliwanag ko kung paano "kulay" ang output ng terminal. Ginagawa ito gamit ang mga escape sequence. O mas tiyak, ang mga sequence ng control code ng ANSI/VT100 terminal. Na awtomatikong nangangahulugan na ang iyong terminal emulator ay dapat suportahan ang pamantayang ito, kung hindi, ang himala ng Bagong Taon ay hindi mangyayari. At oo, ipinapalagay na si $SHELL ang iyong bash.

Ang mga utos na ito ay tinatawag na mga pagkakasunud-sunod ng pagtakas dahil sa simula ng bawat isa sa kanila ay mayroong isang ASCII na character na "escape". Mayroong maraming mga sequence ng kontrol, at pinapayagan nila, halimbawa, upang ipakita ang mga setting ng terminal, kontrolin ang pagpapakita at paggalaw ng cursor, baguhin ang font, tanggalin at itago ang teksto. Pipili kami ng isa mula sa lahat ng iba't ibang mga posibilidad - pagpapalit ng kulay ng teksto at background.

Isagawa ang pagkakasunud-sunod ng code *ESC*[{attr1};...;{attrn}m
Bilang simbolo Makatakas ginagamit ang octal form nito, ibig sabihin 33. Tulad ng para sa mga katangian, narito ang isang maikling listahan ng mga posibleng halaga:

0 I-reset ang lahat ng katangian
1 Maliwanag (tumaas na ningning)
2 Dim
4 Underscore
5 kumurap
7 Reverse
8 Nakatago (itago ang teksto)

Mga Kulay sa Foreground (kulay ng panulat, ipinapakita ang teksto sa kulay na ito):
30 Itim
31 Pula
32 Berde
33 Dilaw
34 Asul
35 Magenta (magenta)
36 Cyan (asul)
37 Puti (Π±Π΅Π»Ρ‹ΠΉ)

Mga Kulay ng Background (kulay ng papel, o kulay ng background):
40 Itim
41 Pula
42 Berde
43 Dilaw
44 Asul
45 Magenta (magenta)
46 Cyan (asul)
47 Puti (Π±Π΅Π»Ρ‹ΠΉ)

Tandaan na kung nag-utos ka na ngayon sa terminal: echo 33[0;31mΠ½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст 33[0m’

...pagkatapos ay predictably kang makakakuha ng monochrome gobbledygook sa output:

Christmas tree sa command line

Bakit? Dahil kinailangang gamitin ang mga advanced na kakayahan ng echo command. Ito ay sapat na upang magdagdag ng isang susi: echo -e β€˜ 33[0;31mΠ½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст 33[0m’

Magiging tama na ngayon ang output:

Christmas tree sa command line

Inayos namin ang pangkulay ng output sa terminal. Ngayon tingnan natin kung paano kulayan ang command prompt.

Ginagawa ito sa pamamagitan ng pagpapalit ng variable ng PS1. Ang variable ay responsable para sa command line prompt. Maaari ding baguhin ang hitsura nito, kabilang ang paggamit ng mga escape sequence. Ngunit may kaunting pagkakaiba: kailangan mong simulan ang pagkakasunud-sunod na may simbolo na "[”, at nagtatapos sa simbolong β€œ]”, kung hindi, ito ay magiging output sa terminal.

Ang lahat ng posibleng pagkakasunud-sunod ng command ay inilarawan nang detalyado sa manual ng bash, kaya inaanyayahan ko ang mga mambabasa na piliin para sa kanilang sarili kung ano ang mas gusto nilang makita sa command line prompt. Bilang halimbawa, ibibigay ko ang aking halaga para sa variable ng PS1:

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

Tatalakayin ko ang kakila-kilabot na spell na ito:

[ 33[34;1m] β€” i-on ang maliwanag na asul (pangalawang katangian) kulay ng font
t – ipakita ang kasalukuyang oras sa format na HH: MM: SS
[ 33[0m] - i-reset ang mga setting ng kulay ng font
, - isang kuwit lamang (hindi inaasahan, tama ba?)
[ 33[32m] β€” i-on ang berdeng kulay ng font
u@l@h – ipakita ang user name, terminal device number at maikling host name, na pinaghihiwalay ng β€œ@” na simbolo
[ 33[0m] β€” i-reset muli ang mga setting ng kulay ng font
: - isang colon lang (bigla!)
[ 33[33m] β€” i-on ang dilaw na kulay ng font
W – ipakita ang pangalan ng kasalukuyang direktoryo
[ 33[0m] β€” i-reset muli ang mga setting ng kulay ng font
, - isa pang kuwit (sino mag-aakala!)
[ 33[31m] β€” i-on ang pulang kulay ng font
! β€” ipakita ang command number sa terminal
[ 33[0m] - huwag kalimutang i-reset ang mga setting ng kulay ng font
$ β€” i-print ang β€œ#” para sa ugat at β€œ$” para sa lahat
n - pagsasalin ng linya. Para saan? Upang magsimula ang command sa kaliwang gilid ng window, sa halip na sa dulo ng command line prompt.

Saan muling tukuyin ang isang variable? Ang pinaka-lohikal na lugar para gawin ito ay ~/.bashrc.

Ang hitsura ng imbitasyon ay limitado lamang sa iyong imahinasyon. Sa prinsipyo, walang pumipigil sa iyo na gumawa ng command line prompt sa anyo ng Christmas tree gamit ang mga tool na inilarawan sa itaas. Totoo, ang gayong imbitasyon ay magiging napakahirap, at ang trabaho ay tiyak na hindi magiging mas maginhawa. Ang Christmas tree ay maipapakita lamang sa itaas ng command line prompt kapag nagla-log in (kailangan pa nating i-edit ang ~/.bashrc). Go for it! At salamat sa iyong pansin.

Christmas tree sa command line

Ano pa ang mababasa mo sa blog? Cloud4Y

β†’ Pagse-set up sa tuktok sa GNU/Linux
β†’ Ang mga Pentester ay nangunguna sa cybersecurity
β†’ Mga startup na nakakagulat
β†’ Kailangan ba ng mga unan sa isang data center?
β†’ Ang bahay na ginawa ng isang robot

Mag-subscribe sa aming Telegrama-channel para hindi mo makaligtaan ang susunod na artikulo! Nagsusulat kami ng hindi hihigit sa dalawang beses sa isang linggo at sa negosyo lamang. Ipinaaalala rin namin sa iyo na ang corporate cloud provider na Cloud4Y ay naglunsad ng promosyon na "FZ-152 Cloud sa regular na presyo." Maaari kang mag-apply hanggang Disyembre 31.

Pinagmulan: www.habr.com

Magdagdag ng komento