Alias-ok, álnevek Linux alatt

Alias, de nem a sorozat :)
Alias, de nem a sorozat 🙂

Egy rövid, és sokaknak ismerős témát mutatok be: az alias-ok, álnevek  használata Linux alatt. Ezt sokan ismeritek, így a haladóknak nem lesz hasznos, de többen biztosan csak hallottak, olvastak róla. Bár több alternatív lehetőséget is felsorolok a témában, érdemes átgondolni mikor. mit és hogyan használunk. Az alapokat, illetve az alternatívákat már részben ismerjük, hiszen nagy részükről volt szó.
Ha több olyan parancsod van, ami hosszú akkor bizonyára nem szeretnéd mindig begépelni, hiszen az elütés veszélye nagy. Én naponta használom az alábbi hosszú parancsot, ami az adott alkönyvtárban lévő összes könyvtárat összetömöríti, könyvtáranként. Volt róla szó.

find -maxdepth 1 -type d -not -name . -exec zip -r ‘{}’.zip ‘{}’ \;

Mit tehetünk, ha nem akarjuk napi szinten beírni ezt a sok karaktert?

A legegyszerűbb módja, és ez a legkezdetlegesebb is, ha nyitunk egy sima szövegfájlt, majd abba beírjuk a hosszabb, több paramétert tartalmazó parancsot. Én ezt előszeretettel használom, bár nem direkt szövegfájlba írom, hanem a Zim-be, vagy ha olyan, akkor a massCode-ba. így meg is találom, azt amit keresek. Ez hasznos, ha ritkábban használjuk az adott parancsokat. De nagy hátránya, hogy meg kell nyitni az adott programot, kimásolni a parancsot, majd beilleszteni a terminálba. A kényelmetlenség fokozódik, ha nem grafikus felületen dolgozom, és nem csak kattintgatni kell.

Sima szövegfájl? Igen, a fenti feladatokhoz olyan szövegszerkesztő kell, ami biztosan nem fog formázásokat, dőlt és vastagított karaktereket használni. Az ilyen szövegszerkesztőből legalább egytucat nagyon jó létezik. Én a geany-t használom, de ez szubjektív döntés, és nagyon egyszerű oka van a választásnak: ezer éve ezt használom, nekem teljesen megfelel. Van magyar helyesírás ellenőrző hozzá, ami nagy előny. Illetve kisebb munkával jól személyre szabható, és témázható is.

Haladóbb megoldás, ha scriptesítjük a parancsot, azaz készítünk egy shell scriptet. Ez sem nagy feladat, csak pontosan kell beírni az összes kapcsolót és „örökre” megoldott a probléma.

Hogyan készíthetünk scripteket Linux alatt egyszerűen?

Nagyon egyszerű, kell egy üres sima szövegfájl, amit futtathatóvá teszünk. Erre minden fájlkezelő alkalmas, de a chmod 700 teszt.sh is jó megoldás. Bár sokan túlzónak tartják, de én a saját scriptjeimet csak saját jogosultsággal látom el, a csoport és a többiek semmi jogot nem kapnak. Ahogy látni én a scriptekhez az .sh kiterjesztést használom, így nem elég a teszt parancs kiadása, hanem a teszt.sh használhatjuk csak. Ezt én a ~/.bin könyvtárba rakom, ami benne van a PATH változóban, és így mindenhonnét elérem.

A használt shell-től függően vagy .bashrc, vagy a .zshrc fájlban keresd meg a PATH= sort, és ha nincs benne a $HOME/bin, akkor írd bele. Nálam ez így néz ki:

export PATH=$HOME/.bin:/usr/local/bin:$PATH

Zsh használatánál érdemes már a zsh-ra való átállásnál a sor elejéről kivenni a #-t, mert valami miatt le van tiltva.

A következő lépés az első sor elkészítése a teszt.sh-ban.

#!/bin/bash

ezzel megadjuk neki, hogy a bash (vagy ha mást akarsz, akkor azt, pl. zsh) alatt értelmezze a következő sorokat. Általában, ha nem tudod miért lenne jó mást beírni, a fenti sor jó lesz. Figyelj rá, hogy a shell-ek eltörő mód értelmezhetnek dolgokat, így mindig gondold át, hogy mi lesz a futtatási környezeted. Bár az esetek nagy részében ez nem jelent semmi gondot, de pár speciális esetben lehetnek gondok.

Ezután más csak be kell írni a parancsot, azaz az adott példában így néz ki:

#!/bin/bash
find -maxdepth 1 -type d -not -name . -exec zip -r '{}'.zip '{}' \;

Lemented, majd valami értelmes nevet kap: dzip.sh, hogy meg tudjuk jegyezni.
Igény esetén rendelhetünk egy gyorsbillentyűt is hozzá. Az XFCE alatt, illetve az Openbox alatt már csináltunk ilyen. Viszonylag egyszerű megoldással, nagyon hatékonyan tudunk a gyorsbillentyűkkel dolgozni. Ha pedig olyan kedvünk van, és ezt tartjuk kényelmesnek, akkor még a jobb klikkes egér menübe is berakhatjuk. Bár a gyorsbillentyűnek, a jobb egérgombos megoldásnak van egy hátránya: sem másik felületen, sem pedig terminálban nem fog működni.

Aliasok használata Linux alatt

Nem bonyolult, de van egy egyszerűbb megoldás is, mint a script. Az alias használata. Az alias-ok (álnevek) olyanok, mint egyéni parancsikonok, amelyek egy parancsot (vagy parancssorozatot) hajtanak végre.
Akár a .bashrc-be, akár a .zshrc-be belenézve látunk pár (egyes disztribúcióknál több tucat) ilyent felsorolva az alias-ok közt.

A jelenleg is használható alias-okat az

alias

paranccsal listázhatjuk ki. Ha Oh My Zsh-t használsz, és jó pár plugint is aktiváltál, akkor lehet, hogy több tucat alias lesz felsorolva. Ha legalább egy alias-t láttál, akkor nem lesz nehéz létrehozni egy sajátot.

A felépítése nagyon egyszerű:

alias név=”a parancs és a kapcsolók”

Azaz minden sor alias-szal kezdődik, majd egy értelmes, rövid nevet kap, és az egyenlőség jelet követi macskakörmök közt a parancs. Az egyenlőség két oldalán ne legyen üres karakter, space!
Amire érdemes figyelni, ha pld. a libreoffice-ből, weblapról stb. másolsz be valamit, akkor lehet, hogy az idézőjeleket a sima szövegszerkesztőben át kell írnod! Van a „” és a „”. Ha olyan, mint az első, akkor írd át a sima szövegszerkesztőben! Jobb a békesség, és a szabályos megoldás, minthogy esetleg valami ne működjön.
Ezt a sort kell beírni a használt shell konfigurációs fájljába, ami vagy .bashrc, vagy .zshrc. Ha mást használsz, akkor nézz rá a kézikönyvre, hogy azon a shell-en miképp megy ez! Ahogy látod, nem egy nehéz és bonyolult dolog ez. A fentebb említett tömörítést így oldottam meg:

alias dzip="find -maxdepth 1 -type d -not -name . -exec zip -r '{}'.zip '{}' \;"

Mentés. Ezután vagy kilépsz a terminálból, és vissza, vagy

source ~/.bashrc illetve a source ~/.zshrc

parancsot adod ki. Ezután már nem kell mást begépelned, csak a dzip-et, és a hosszú parancsot végre fogja hajtani.

Aliasok kikapcsolása

Ki tudod kapcsolni az alias-t, ha kiadod a

unalias dzip

parancsot. Ekkor nem fog működni az adott munkamenetben az adott alias.

Az összes alias kikapcsolása:

unalias -a

Bár nem használom, de ideiglenesen, az adott munkamenetre is létre hozhatsz egy alias-t. A terminálba beírod, hogy:

alias név=”a parancs és a kapcsolók”

azaz pontosan azt, amit a konfigurációs fájlba kellene. Majd ENTER. Ez a beállítás eltűnik, ahogy kilépsz a terminálból. Így a használata korlátozott, de vannak esetek, amikor érdemes ezt használni.

Az alias-ok hátránya, hogy hosszabb, bonyolultabb shell scriptet nem tudnak kiváltani, azaz csak a viszonylag egyszerű feladatokra tudjuk használni őket. Ami nem jelent a mi szintünkön komoly hátrányt. Én ökölszabályként az követem, hogy a két sornál hosszabb parancsokat nem alias-ba, hanem scriptbe rakom. Átláthatóbb nekem.
Bár én nem használom, de az is megoldás lehet, egy bonyolultabb parancsnál, hogy előbb létrehozol egy scriptet, majd annak a nevét ÉS az teljes elérési útját adod meg az alias sorban. Egy előnye van az ilyen megoldásnak: akkor is használhatod a parancsot, ha a script nincs benne a PATH-ban.

Három, eltérő módszert mutattam, hogy ne kelljen minden egyes alkalommal sok tucat karaktert begépelni, csak párat. Bár bármennyi scriptet készíthetünk, és alias-ok száma sincs (tudtommal) korlátozva, de tartsunk mértéket. Elveszti az előnyét, ha a gépelés helyett azon kell gondolkodni, hogy mi is a neve az adott scriptnek. Az alias-oknál nincs ilyen gond, mert az alias kilistázza, és ott lehet böngészni.

Névadás alias-oknál

Ne legyen olyan neve, melyet már más használ! Azaz semmilyen más program nevével ne ütközzön. Praktikus, ha a neve rövid és bizonyos szabályokat követ, hogy komolyabb gondolkodás nélkül is azonnal tudjuk.

Én a tíz leggyakrabban használt hosszabb parancsot úgy oldottam meg, hogy bármelyik lehetséges módszerrel elérjem: alias, script, gyorsbillentyű, jobb klikkes menü és – ha olyan – akkor a SpaceFM-be is kapott egy commandot. Ez első olvasatban macerás és sok munka, de megéri. Mindegyiket le lehet menteni, majd ha másik disztribúcióra térek át, akkor csak be kell illeszteni.
Apró kitérő: SpaceFM a scripteket a /home/laci/.config/spacefm könyvtárban tartja, amit ha mentesz, akkor csak sima copy/paste módszerrel írhatod meg az telepítésnek a scriptjeit. Bár az is megoldás lehet, ha sok commandot/scriptet használsz a SpaceFM-ben (vagy a kedvenc fájlkezelődben) akkor azokat egyszerűen a massCode-ba is berakod. Bármelyik jó, csak ne vesszenek el a megszokott, behangolt és jól összerakott scriptjeid.

Related Posts