Linuxi eelis on see, et te saate soovi korral kõike kohandada. See on projektsete süsteemide eelis protseduuriliste süsteemide ees. Tegemist on omamoodi konstruktoriga, mis koosneb üksikutest plokkidest, millest igaüht saab soovi korral kohandada.
Eriti huvitav on see siis, kui sa ei kopeeri lihtsalt valmislahendusi, vaid püüad aru saada, mis ja kuidas see töötab. Ja isegi kergekaalulise ülesande lahendamisel õpid midagi uut.
Näiteks soovite reguleerida linuxi terminali värve käsu ls
väljundis.
Ls-dokumentatsioonist
saad aru, et väljundi värvide määramine toimub utiliidi dircolors abil, mis kas määrab värviparameetrid oma andmebaasist või võtab need failist ~/.dircolors
. Samuti mainiti, et värvide kasutamise initsialiseerimine toimub ~/.bashrc
, shell'i seadistusfaili kaudu ja et parameetrid ise määratakse muutuja LC_COLORS
kaudu.
.bashrc-st
leiti järgmine skript:
Selle sisuks on kontrollida, kas süsteemis on olemas dircolors utiliit, määrata muutujale väärtus ja kui see õnnestub, siis kasutada parameetrit --color=auto
iga kord, kui ls'i
kutsutakse.
Kui te käivitate utiliidi dircolors, väljastab see muutuja LC_COLOR
väärtuse.
Samuti on võimalik väljastada muutuja LC_COLORS
väärtus struktureeritud kujul, määrates võtme:
$ dircolors -p
Kuna väljund on pikk, ei anna ma seda siinkohal välja.
Kui suunate väljundi dircolors -p
> ~/.dircolors
, siis luuakse struktureeritud fail, millest võetakse värvisätted. Seda faili redigeerides ja ls
väljundile värviseadistused määrates.
Loodud .dircolors
failis on vihje:
Järjestuse seadmine läbi semikooloni ja saada värvi, mida me vajame linuxi konsooli, vastavalt loetletud. Linuxi terminali värvid on 30 kuni 37 kirjavärvi jaoks ja 40 kuni 47 tausta jaoks. Näiteks:
DIR 01;34 tähendab, et kataloogide nimed on paksud ja sinised.
Kuid nii saad sa ainult kaheksa värvi ja moodsad terminaliemulaatorid suudavad kuvada vähemalt 256 värvi.
Värvide määramiseks on ka teisi võimalusi. Näiteks EXEC 38;5;208;1 annab käivitatavate failide jaoks oranži paksu kirjastiili.
Selleks, et mitte käsitsi linuxi värve läbi käia, on olemas valmis värvide tabel
Asendades värviväärtuse 38;5;x - kus x on värv tabelist, saame vajaliku tulemuse. Saate midagi sellist:
Kuidas see toimib? Asi on selles, et terminali emulaatoris väljastatud teabe värvi määramine toimub ANSI escape-koodide abil. See on teatud tähemärkide jada, mida ekraanile ei trükita, kuid mis mõjutab väljundit. Seda nimetatakse nii, sest see algab [ - koodiga "Esc". Kuna terminale ja terminaliemulaatoreid on palju, on need juhtimiskoodid standardiseeritud. Värvikontrolli jada 30 kuni 37 on ECMA-48 standard. Teavet selle kohta võib leida konsooli_koodid
jaotisest.
Kui olete aru saanud, kuidas määrata linuxi värve esc-koodide kaudu, on lihtne kutsungi ümber kujundada ja värvida. Selle väljundi eest vastutab ~/.bashrc
failis defineeritud muutuja PS1
Linux Mintis näeb selle initsialiseerimise skript välja nii:
See tähendab, et kõigepealt määratakse kindlaks, kas skripti käivitas root või tavaline kasutaja. Kuna enamasti on see teine variant, siis tuleb esimesele 'else'-le järgnevat rida redigeerida. Rea formaat on dešifreeritud bash dokumentatsioonis, jaotises "Promting". See viitab sellele, et esc-järjekord peaks algama "[" ja lõppema "]". Seega:
u
- väljastab kasutajanime;h
- väljastab hostinime;w
- väljastab töökataloogi nime;Mida veel saab väljastada käsureas:
d
- kuupäev, formaadis "Wed Dec 28";A
- kellaaeg, 24-tunnises formaadis;Tutvustame veel midagi huvitavat:
PS1='${debian_chroot:+($debian_chroot)}[[01;32m]Matrix has you,u![[00m] [[01;34m]Blue pill[[00m] or [[31m]red?[[00m]--->$ '
Ja käsurea näeb välja järgmiselt: