Väriä voi lisätä Linux-päätelaitteeseen käyttämällä erityisiä ANSI-koodausasetuksia joko dynaamisesti päätelaitekomennolla tai konfiguraatiotiedostoissa tai käyttämällä valmiita teemoja päätelaite-emulaattorissa. Joka tapauksessa nostalginen vihreä tai keltainen teksti mustalla näytöllä on täysin vapaaehtoista. Tämä artikkeli näyttää, miten voit tehdä Linuxista niin värikkään (tai yksivärisen) kuin haluat.
Terminaalin ominaisuudet
Nykyaikaisissa järjestelmissä on yleensä oletusarvoisesti vähintään xterm-256color, mutta jos yrität lisätä väriä terminaaliin onnistumatta, tarkista TERM-asetuksesi.
Historiallisesti Unixin terminaalit olivat kirjaimellisesti juuri sitä: fyysisiä pisteitä jaetun tietokonejärjestelmän kirjaimellisessa päätepisteessä (päätepisteessä), jonne käyttäjät pystyivät kirjoittamaan komentoja. Ne olivat omaleimaisia etäkirjoituskoneista (minkä vuoksi meillä on vielä nykyäänkin /dev/tty-laitteita Linuxissa), joita käytettiin usein komentojen antamiseen etänä. Päätelaitteissa oli sisäänrakennetut kuvaputkinäytöt, joten käyttäjät saattoivat istua toimistossaan päätelaitteen ääressä ja olla suoraan vuorovaikutuksessa keskusyksikön kanssa. Kuvaputkinäytöt olivat kalliita sekä valmistaa että valvoa; oli helpompaa antaa tietokoneen sylkeä ulos karkeaa ASCII-tekstiä kuin huolehtia tasoituksen poistosta ja muista hienouksista, joita nykyajan tietotekniikan käyttäjät pitävät itsestäänselvyyksinä. Tekniikan kehitys oli kuitenkin nopeaa jo tuolloin, ja nopeasti kävi ilmi, että kun uusia videonäyttöpäätteitä suunniteltiin, ne tarvitsivat uusia valinnaisia ominaisuuksia.
Esimerkiksi vuonna 1978 julkaistu hieno uusi VT100 tuki ANSI-väriä, joten jos käyttäjä määritteli päätteen tyypin vt100:ksi, tietokone pystyi tuottamaan väritulosteen, kun taas tavallisessa sarjavalintaisessa päätelaitteessa ei välttämättä ollut tällaista vaihtoehtoa. Sama periaate pätee nykyään, ja se asetetaan TERM-ympäristömuuttujalla. Voit tarkistaa TERM-määrityksesi komennolla echo:
$ echo $TERM
xterm-256color
Vanhentuneessa (mutta joissakin järjestelmissä taaksepäin yhteensopivuuden vuoksi edelleen ylläpidetyssä) /etc/termcap-tiedostossa määriteltiin päätelaitteiden ja tulostimien ominaisuudet. Nykyaikainen versio siitä on terminfo, joka sijaitsee joko /etc- tai /usr/share-tiedostossa jakelustasi riippuen. Näissä tiedostoissa luetellaan erityyppisissä päätelaitteissa käytettävissä olevat ominaisuudet, joista monet on määritelty historiallisen laitteiston mukaan: on määritelmiä vt100:sta vt220:een sekä nykyaikaisille ohjelmistoemulaattoreille, kuten xterm ja Xfce. Useimmat ohjelmistot eivät välitä käyttämästäsi päätelaitetyypistä; harvinaisissa tapauksissa saatat saada varoituksen tai virheen väärästä päätelaitetyypistä kirjautuessasi palvelimelle, joka tarkistaa yhteensopivat ominaisuudet. Jos päätelaitteesi on asetettu profiiliin, jossa on hyvin vähän ominaisuuksia, mutta tiedät, että käyttämäsi emulaattori pystyy useampaan, voit muuttaa asetusta määrittelemällä ympäristömuuttujan TERM. Voit tehdä tämän viemällä TERM-muuttujan ~/.bashrc-konfiguraatiotiedostoon:
export TERM=xterm-256color
Tallenna tiedosto ja lataa asetukset uudelleen:
$ source ~/.bashrc
ANSI-värikoodit
Nykyaikaisilla päätelaitteilla on periytetty ANSI-evasment-sekvenssit “meta”-ominaisuuksia varten. Nämä ovat erityisiä merkkisarjoja, jotka päätelaite tulkitsee toiminnoiksi merkkien sijasta. Esimerkiksi tämä sekvenssi tyhjentää näytön seuraavaan kehotteeseen asti:
$ printf `3
Or you can use dircolors directly:
$ dircolors --print-database
# image formats
.jpg 01;35
.jpeg 01;35
.mjpg 01;35
.mjpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.tif 01;35
.tiff 01;35
If that looks cryptic, it’s because it is. The first digit after a file type is the attribute code, and it has six options:
- 00 none
- 01 bold
- 04 underscore
- 05 blink
- 07 reverse
- 08 concealed
The next digit is the color code in a simplified form. You can get the color code by taking the final digit of the ANSII code (32 for green foreground, 42 for green background; 31 or 41 for red, and so on).
Your distribution probably sets LS_COLORS globally, so all users on your system inherit the same colors. If you want a customized set of colors, you can use dircolors for that. First, generate a local copy of your color settings:
$ dircolors --print-database > ~/.dircolors
Muokkaa paikallista luetteloa haluamallasi tavalla. Kun olet tyytyväinen valintoihin, tallenna tiedosto. Väriasetuksesi ovat vain tietokanta, eikä ls voi käyttää niitä suoraan, mutta voit käyttää dircolorsia saadaksesi shellcodea, jota voit käyttää LS_COLORSin asettamiseen:
$ dircolors --bourne-shell ~/.dircolors
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:
pi=40;33:so=01;35:do=01;35:bd=40;33;01:
cd=40;33;01:or=40;31;01:mi=00:su=37;41:
sg=30;43:ca=30;41:tw=30;42:ow=34;
export LS_COLORS
Kopioi ja liitä tämä tuloste ~/.bashrc-tiedostoosi ja lataa uudelleen. Vaihtoehtoisesti voit dumpata tuon tulosteen suoraan .bashrc-tiedostoosi ja ladata uudelleen.
$ dircolors --bourne-shell ~/.dircolors >> ~/.bashrc
$ source ~/.bashrc
Voit myös laittaa Bashin ratkaisemaan .dircolors-tiedoston käynnistyksen yhteydessä sen sijaan, että tekisit muunnoksen manuaalisesti. Realistisesti ajatellen et luultavasti vaihda värejä usein, joten tämä voi olla liian aggressiivista, mutta se on vaihtoehto, jos aiot vaihtaa värimaailmaasi usein. Lisää .bashrc-tiedostoosi tämä sääntö:
] && eval "`dircolors --sh $HOME/.dircolors`"
Mikäli sinulla on .dircolors-tiedosto kotihakemistossasi, Bash arvioi sen käynnistyksen yhteydessä ja asettaa LS_COLORS-värit sen mukaisesti.
Väri
Värit päätelaitteessasi ovat helppo tapa antaa itsellesi nopea visuaalinen referenssi tietyille tiedoille. Niihin ei kuitenkaan ehkä kannata tukeutua liikaa. Loppujen lopuksi värit eivät ole universaaleja, joten jos joku muu käyttää järjestelmääsi, hän ei välttämättä näe värejä samalla tavalla kuin sinä. Lisäksi, jos käytät erilaisia työkaluja vuorovaikutuksessa tietokoneiden kanssa, saatat myös huomata, että jotkin päätelaitteet tai etäyhteydet eivät tarjoa odottamiasi värejä (tai värejä ollenkaan).
Tällaiset varoitukset huomioiden, värit voivat olla hyödyllisiä ja hauskoja joissakin työnkuluissa, joten luo .dircolor-tietokanta ja muokkaa sitä sydämesi kyllyydestä.