Exa – a színes ls

Exa, a szebb ls
Exa, a szebb ls
Ls? Szerintem az egyik legismertebb Linuxos parancs, mindenki használja, aki legalább párszor terminálos műveletet végez. De most egy másik listázó parancsról lesz szó: exa. Bár az ls nagyon jó, minden Linux rendszeren ott van, de van ennél szebb, és modernebb listázó parancs is. Már itt le kell szögezni, hogy az ls teljesen megfelel, elvégzi a munkáját! Aki azt szereti, esetleg jól bekonfigurálta, több alias-t is készített hozzá, akkor nincs nagy értelme az exa-t használni. Én most sem törekszem teljes bemutatásra, hiszen az exa jól dokumentált, és egyszerű listázó program. Inkább az a cél, mint sok egyéb Linuxos parancsnál, hogy egy jól használható alternatívára mutassak rá. Ha megtetszik, akkor úgyis megismered, ha meg nem, akkor minek koptassam sokféle beállítási lehetőséggel a billentyűt? Minden esetben érdemes megismerni - szerintem - a lehető legtöbb parancsot, mert a munkánkat nagyban megkönnyítheti, ha nem akkor keresgélünk, amikor valamit el kell végezni.

Mi is az az exa Linuxon?

Az exa, amint már korábban említettem, a klasszikus ls parancs fejlesztése. A legfontosabb feladata az aktuális munkakönyvtárban található összes fájl és könyvtár adatainak megjelenítése. Nem hangzik annyira izgalmasnak, igaz? Itt azonban több van, mint gondolnád!

Két alapvető különbség van az ls és az exa közt. Az ls egy spártaibb, egyszerűbb képet ad. Próbáld ki! Terminál megnyit, bármely könyvtárban kiadod az ls parancsot és egy egyszínű, sima terminálkimenetet kapsz.
Ami nagyon hasznos, jó, a feladatnak teljesen megfelel: kilistázta, amit kell.

Most az exa parancsot add ki (természetesen telepítés után) és… na látod! Ez a különbség! Ha nem látsz különbséget, akkor vagy már telepítetted az exa-t és hozta magával a LS_COLORS beállítást, vagy pedig a disztribútorod előre konfigurálta az ls színeit. Ami igencsak erősíti, hogy van igény a színes kimenetre!

Az exa alapból, mindenféle beállítás nélkül színkódokkal jelez ki mindent. Ez első körben nem olyan nagy ügy, de én vizuális vagyok, így bizony szeretem, ha a fájltípusok eltérő színnel jelennek meg és a jogok is színesek. Így gyorsabban átlátom, amit kell.

Az ls „védelmében” két fontos tényt kell megemlíteni. Nagyon régi program, akkoriban sokkal kisebb erőforrású gépeken, egyszerűbb programokat készítettek. Nem is nagyon volt színes monitor… Illetve egyértelmű, hogy a mostani ls parancs is színesíthető, ami nagyban megközelíti – beállítás után – az exa tudását.

A másik előnye, hogy emberi olvasásra alkalmas méreteket ír ki alapból. Így nem kell kapcsolót használnod az ls-hez.

Az exa telepítése Linux rendszerekre

A Debian Linux alapú rendszeren a tárolókban van, így nem okoz gondot, de ahogy látom az exa oldalán a többi Linux rendszeren sem jelenthet gondot.

Az exa használata Linuxon

Ali ismeri az ls-t annak nem lesz túl nagy gondja ezzel. A paraméterezése részben egyezik, de nem teljesen. Így érdemes a leírást, vagy a man oldalt átnézni.

Pár alap példa, amit érdemes kipróbálni, mert úgy máris jobban érthető

exa -l azaz teljes nézet, minden adatot kilistáz, soronként egy fájlt. Ezt különféle módosításokkal használhatod, a leírás elég jól tárgyalja.

exa -R rekurzív megjelenítés, időnként hasznos lehet. A mélysége az L= értékkel szabályozható.

exa -T fa nézetben jeleníti meg a felsorolást. Ha lehet, ne a gyökérre add ki, egy több terrás, telezsúfolt környezetben. Rekurzív dolgozik, az összes al-al-alkönyvtárat kilistázza. Nagyon szemléletes, színes, és jól átlátható képet kapsz arról, hogy mi hol van.

A szortírozás lehetősége is jól beállítható. Ha pár alapot, név, méret stb. megjegyzel, akkor nagyon kezes lesz. Én leggyakrabban a méret szerinti szortírozást használom:

exa -s size

Elől a kicsik, végül a nagyok, de az -r ezt megfordítja.

A manual, illetve a honlapon található leírás nagyon jó: egyszerű, átlátható. Ha bonyolultabb beállítást használsz, akkor azt érdemes lehet alias megoldással használni.

Exa alapszíneknek átállítása, definiálása

Ha színezés, akkor már mindenki a saját színeit szeretné használni. Én nem. Hagytam úgy ahogy volt, bár elég videotipp színeket használ, de nekem nem volt kedvem, időm, vagy egyáltalán indíttatásom átírogatni. Csak új fájlkiterjesztést vettem fel a kínálatba és pár nekem fontos kiegészítést tettem.

Maga a beállítás az nem okozhat gondolt, sima környezeti változókkal állíthatod be. Ez elsőre ijesztőnek hangzik, de a következő példa után már nem.

A változókat a LS_COLORS (ha azt az ls-ben is érvényesíteni akarod), illetve a saját EXA_COLORS határozza meg. Ha nincs megadva EXA_COLORS, akkor automatikusan az LS_COLORS-ból veszi beállítást. Ez egy jó megoldás, hiszen ha az LS_COLORS változót jól beállítod, akkor az ls is használni fogja.

A beállított LS_COLORS érteket itt is, mint bármelyik környezeti változónál az

echo $LS_COLORS 

paranccsal hívhatod le.

A színek kódjait alul találod majd meg.

A példa egyszerű lesz. A saját, az LS_COLORS-ban nem definiált .sh kiterjesztésemet szeretném beszíneztetni. Bár elvileg a

env LS_COLORS="*.sh=37;41"

is működik, én egyszerűbben oldottam meg, mert az ilyen env megadása csak az adott munkamenet erejéig jó. Így a kedvenc shell beállító fájljába írattam be:

dircolors -b >> .bashrc vagy a .zshrc

A dupla kacsacsőr fontos, mert NEM felülíratjuk a fájlt, hanem hozzáíratunk! Ha egy kacsacsőrt írsz, akkor az felülírásra utasít. Ekkor az összes beállításod, amit a fájl tárolt, elveszik!

Ezután megnyitjuk a .zshrc-t (vagy a bashrc-t) és a végén ott találunk két sort:

LS_COLORS='rs=0:di=01;34:…..:*.xspf=00;36:';

export LS_COLORS

Az első sorhoz hozzáírjuk a *.sh=37;41: szöveget, és mentés után nyitunk egy terminált. Kipróbáljuk, hogy jól működik-e, azt a színt kaptad, ami kell.

A felépítése egyértelmű: kettőspont választja el a felsorolást, megadod a kifejezést, hogy *.sh azaz bármelyik, bármilyen nevű .sh végű fájlnév legyen a megadott színben tündöklő.

Bármelyik (.bashrc, .zshrc) változtatás csak akkor lép érvénybe, ha ki és belépsz a terminálba, vagy beírod a source ~/.bashrc vagy a source ~/.zshrc parancsot. Válaszd azt, ami neked jobban közreesik.

Az exa oldalán (illetve a ls leírásokban is) sok egyéb színét megváltoztathatod, így az exa oldalát nézd meg. Pld. könyvtárak, linkek, végrehajtható fájlok stb. egyben definiálhatóak.

Kicsit bővebb beállítást ad a EXA_COLORS, amivel a exa saját színeit állíthatod be. Itt is a fix, a shell konfigurációs fájljában állítottam be az értékeket.

EXA_COLORS='sn=0:bO=01;33:…..:';

export EXA_COLORS

bO egy jó dolog, ha beállítod, mert a törött linkeket kiemeli.

Bár első nekifutásra macerásnak tűnhet, hogy rá kell szánni legalább egyszer negyed órát a beállításra, de megéri. Nincs annak mása, ha pld. a törött linkek, vagy az általam fontosnak gondolt fájlok, esetleg a futtatási jogok jól elkülönült színnel jelennek meg. Azért csak egyszer, mert ha összerakod a kedvenc shell-ed konfigurációs fájlját, azután már évekig használhatod.

Ha van valami hozzáfűzni valód, kiegészítésed, akkor a linuxvideok@protonmail.com címemre írj!

0 = alapértelmezett szín
1 = félkövér
100 = sötét szürke háttér
101 = világos piros háttér
102 = világos zöld háttér
103 = sárga háttér
104 = világoskék háttér
105 = világos lila háttér
106 = türkiz háttér
107 = fehér háttér
31 = piros
32 = zöld
33 = narancssárga
35 = lila
36 = cián
37 = szürke
4 = aláhúzott 34 = kék
40 = fekete háttér
41 = piros háttér
42 = zöld háttér
43 = narancssárga háttér
44 = kék háttér
45 = lila háttér
46 = cián háttér
47 = szürke háttér
5 = villogó szöveg
7 = fordított mező (az előtér és a háttér színének cseréje)
8 = rejtett (láthatatlan)
90 = sötétszürke
91 = világos piros
92 = világos zöld
93 = sárga
94 = világoskék
95 = halvány lila
96 = türkiz
97 = fehér