Exa – a színes ls

Linux scriptek

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, hogy nem

Az exa telepítése Linux rendszerekre

Az Arch 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 -G elvileg rácsnézet, azaz ha kifér a terminálba, akkor két oszlopot jelenít meg.

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érbe add ki, egy több terrás, telezsúfolt környezetben. Rekurzívan 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 man 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!
Ha tetszik a tartalom, a hírlevélre a főoldalon iratkozz fel. Bár a tervek szerint minden szombaton jelennek meg a bejegyzések, de ez csak terv 🙂

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