Linux priekšrocība ir tā, ka varat pielāgot jebko, ja vēlaties. Tā ir projektīvo sistēmu priekšrocība salīdzinājumā ar procesuālajām sistēmām. Tas ir sava veida konstruktors, kas sastāv no atsevišķiem blokiem, no kuriem katru var pielāgot pēc saviem ieskatiem.
Tas ir īpaši interesanti, ja jūs nevis vienkārši kopējat gatavus risinājumus, bet mēģināt saprast, kas un kā darbojas. Un pat risinot nenopietnu uzdevumu, jūs uzzināsiet kaut ko jaunu.
Piemēram, jūs vēlaties pielāgot linux termināļa krāsas ls
komandas ls
izvadē.
No ls
dokumentācijas var saprast, ka izvades krāsu iestatīšana tiek veikta, izmantojot dircolors utilītu, kas krāsu parametrus nosaka vai nu no savas datu bāzes, vai ņem tos no ~/.dircolors
faila. Tika arī minēts, ka krāsu izmantošanas inicializācija tiek veikta, izmantojot ~/.bashrc
, čaulas iestatījumu failu, un ka paši parametri tiek definēti, izmantojot mainīgo LC_COLORS
.
Tika atrasts šāds skripts .bashrc:
Tā būtība ir pārbaudīt, vai sistēmā ir dircolors palīgprogramma, piešķirt mainīgajam vērtību un, ja tas izdodas, izmantot parametru --color=auto
katru reizi, kad tiek izsaukts ls
.
Ja palaižat dircolors utilītu, tas izvada mainīgā LC_COLOR
vērtību.
Mainīgā LC_COLORS
vērtību ir iespējams izvadīt arī strukturētā veidā, norādot atslēgu:
$ dircolors -p
Tā kā izvads ir garš, es to šeit nesniegšu.
Ja novirzīsiet izvades dircolors -p
> ~/.dircolors
, tiks izveidots strukturēts fails, no kura tiks ņemti krāsu iestatījumi. Rediģējot šo failu un iestatiet krāsu iestatījumus ls
izvades.
Izveidotajā failā .dircolors
ir norādes:
Nosakot secību ar semikolu, mēs linux konsoles ekrānā iegūstam vajadzīgo krāsu atbilstoši uzskaitītajam. Linux termināļa krāsas ir no 30 līdz 37 fonta krāsai un no 40 līdz 47 fonam. Piemēram:
DIR 01;34 nozīmē, ka direktoriju nosaukumi būs trekni un zili.
Taču šādā veidā tiek iegūtas tikai astoņas krāsas, bet mūsdienu termināļa emulatori spēj attēlot vismaz 256 krāsas.
Ir arī citi krāsu iestatīšanas veidi. Piemēram, EXEC 38;5;208;1 nodrošina oranžu biezu fontu izpildāmajiem failiem.
Lai nevajadzētu linux krāsas meklēt manuāli, ir pieejama gatava krāsu tabula.
Ievietojot krāsu vērtību 38;5;x - kur x ir krāsa no tabulas, mēs iegūstam vajadzīgo rezultātu. Iegūstam kaut ko līdzīgu:
Kā tas darbojas? Runa ir par to, ka termināļa emulatora izvadītās informācijas krāsas iestatīšana tiek veikta, izmantojot ANSI escape kodus. Tā ir noteikta rakstzīmju secība, kas netiek izdrukāta uz ekrāna, bet ietekmē izvades kodu. To tā sauc tāpēc, ka tā sākas ar [ - kodu "Esc". Tā kā ir daudz termināļu un termināļu emulatoru, šie vadības kodi ir standartizēti. Krāsu kontrole, izmantojot secību no 30 līdz 37, ir ECMA-48 standarts. Informāciju par to var atrast sadaļā console_codes
.
Kad esat sapratuši, kā iestatīt linux krāsas, izmantojot esc kodus, ir viegli pārveidot un iekrāsot uzaicinājuma līniju. Par tās izvadīšanu ir atbildīgs mainīgais PS1, kas definēts ~/.bashrc
failā.
Linux Mint operētājsistēmā tā inicializēšanas skripts izskatās šādi:
Tas nozīmē, ka vispirms tiek noteikts, vai skriptu palaidis root vai parasts lietotājs. Tā kā vairumā gadījumu tas ir otrais variants, pēc pirmā 'else' sekojošā rinda ir jārediģē. Šīs rindiņas formāts ir atšifrēts bash dokumentācijā, sadaļā "Promting". No tās izriet, ka esc secībai jāsākas ar "[" un jābeidzas ar "]". Tādējādi:
u
- izvada lietotāja vārdu;h
- izvada uzņēmēja nosaukumu;w
- izvada darba direktorijas nosaukumu;Ko vēl var izvadīt uzvednē:
d
- datumu formātā "Wed Dec 28";A
- laiks 24 stundu formātā;Ieviesīsim kaut ko interesantāku:
PS1='${debian_chroot:+($debian_chroot)}[[01;32m]Matrix has you,u![[00m] [[01;34m]Blue pill[[00m] or [[31m]red?[[00m]--->$ '
Un izsaukuma rinda izskatīsies šādi: