A Linux-terminál színének megváltoztatása

A Linux-terminál színét speciális ANSI-kódolási beállításokkal adhatja hozzá, akár dinamikusan egy terminálparanccsal vagy konfigurációs fájlokban, akár a terminálemulátorban található kész témákat használhatja. Akárhogy is, a fekete képernyőn megjelenő nosztalgikus zöld vagy borostyánszínű szöveg teljesen opcionális. Ez a cikk bemutatja, hogyan teheted a Linuxot olyan színessé (vagy olyan egyszínűvé), amilyenné csak akarod.

Terminálképességek

A modern rendszerek általában legalább az xterm-256color alapértelmezést használják, de ha sikertelenül próbálsz színt adni a terminálodnak, ellenőrizd a TERM-beállítást.

A Unix-terminálok történelmileg szó szerint ez voltak: fizikai pontok egy közös számítógépes rendszer szó szerinti végpontján (terminál), ahol a felhasználók parancsokat írhattak be. Ezek különböztek a távírógépektől (ezért vannak ma is /dev/tty eszközök a Linuxban), amelyeket gyakran használtak a parancsok távoli kiadására. A terminálok beépített CRT-monitorokkal rendelkeztek, így a felhasználók az irodájukban egy terminálhoz ülve közvetlenül kapcsolatba léphettek a nagyszámítógépekkel. A CRT-monitorok drágák voltak – mind az előállításuk, mind a vezérlésük; egyszerűbb volt, hogy a számítógép nyers ASCII-szöveget adjon ki, minthogy az élsimítással és más finomságokkal foglalkozzanak, amelyeket a modern számítógépesek természetesnek vesznek. A technológia fejlődése azonban már akkor is gyorsan történt, és hamar nyilvánvalóvá vált, hogy az új videokijelzős terminálok tervezésekor új képességeket kellett opcionálisan elérhetővé tenni.

Az 1978-ban megjelent új, divatos VT100 például támogatta az ANSI színt, így ha a felhasználó a terminál típusát vt100-ként azonosította, akkor a számítógép képes volt színes kimenetet szolgáltatni, míg egy egyszerű soros eszköz nem feltétlenül rendelkezett ilyen lehetőséggel. Ugyanez az elv ma is érvényes, és ezt a TERM környezeti változó állítja be. A TERM definícióját az echo:

$ echo $TERM
xterm-256color

paranccsal ellenőrizheti. Az elavult (de a visszafelé kompatibilitás érdekében egyes rendszereken még mindig fenntartott) /etc/termcap fájl definiálta a terminálok és nyomtatók képességeit. Ennek modern változata a terminfo, amely a disztribúciótól függően az /etc vagy a /usr/share állományban található. Ezek az állományok felsorolják a különböző terminálokban elérhető funkciókat, amelyek közül sokat a történelmi hardverek határoznak meg: vannak definíciók a vt100-tól a vt220-ig, valamint a modern szoftveres emulátorokhoz, mint az xterm és az Xfce. A legtöbb szoftvert nem érdekli, hogy milyen termináltípust használsz; ritka esetekben előfordulhat, hogy figyelmeztetést vagy hibát kapsz a helytelen termináltípusról, amikor bejelentkezel egy olyan szerverre, amely ellenőrzi a kompatibilis funkciókat. Ha a terminálod egy nagyon kevés funkcióval rendelkező profilra van beállítva, de tudod, hogy az általad használt emulátor többre képes, akkor a TERM környezeti változó meghatározásával megváltoztathatod a beállítást. Ezt úgy teheti meg, hogy a TERM változót a ~/.bashrc konfigurációs fájlba exportálja:

export TERM=xterm-256color

Mentse el a fájlt, és töltse be újra a beállításait:

$ source ~/.bashrc

ANSI színkódok

A modern terminálok ANSI escape szekvenciákat örököltek a “meta” funkciókhoz. Ezek olyan speciális karaktersorozatok, amelyeket a terminál karakterek helyett műveletekként értelmez. Ez a szekvencia például törli a képernyőt a következő promptig:

$ 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

A helyi lista tetszés szerinti szerkesztése. Ha elégedett a választással, mentse el a fájlt. A színbeállításaid csak egy adatbázis, és az ls közvetlenül nem tudja használni őket, de a dircolors segítségével shellcode-ot kaphatsz, amivel beállíthatod az LS_COLORS-t:

$ 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

Másold be a kimenetet a ~/.bashrc fájlodba, és töltsd be újra. Alternatív megoldásként ezt a kimenetet közvetlenül a .bashrc fájlodba is dumpolhatod és újratöltheted.

$ dircolors --bourne-shell ~/.dircolors >> ~/.bashrc
$ source ~/.bashrc

Az átalakítás manuális elvégzése helyett a Bash-t is ráveheted, hogy a .dircolors-t indításkor oldja fel. Reálisan nézve valószínűleg nem fogod gyakran változtatni a színeket, így ez talán túlságosan agresszív, de ez egy lehetőség, ha azt tervezed, hogy gyakran változtatod a színsémádat. A .bashrc fájlodban add hozzá ezt a szabályt:

] && eval "`dircolors --sh $HOME/.dircolors`"

Ha van egy .dircolors fájl a főkönyvtáradban, a Bash indításkor kiértékeli azt, és ennek megfelelően állítja be az LS_COLORS-t.

Color

A terminálodban a színek egy egyszerű módja annak, hogy gyors vizuális hivatkozást adj magadnak bizonyos információkhoz. Azonban nem biztos, hogy túl erősen akarsz rájuk támaszkodni. Végül is a színek nem univerzálisak, így ha valaki más használja a rendszeredet, lehet, hogy nem ugyanúgy látja a színeket, mint te. Továbbá, ha többféle eszközt használ a számítógépekkel való interakcióhoz, akkor azt is tapasztalhatja, hogy egyes terminálok vagy távoli kapcsolatok nem az elvárt színeket (vagy egyáltalán nem az elvárt színeket) biztosítják.

A figyelmeztetéseket félretéve, a színek hasznosak és szórakoztatóak lehetnek bizonyos munkafolyamatokban, ezért hozzon létre egy .dircolor adatbázist, és testreszabhatja kedvére.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.