Shell scriptek – alapok

Linux kezdő
Linux kezdő

Mini Linux script tutorial? Hogyan készítsünk scriptket a kedvenc Linux rendszerünkhöz, és mi ennek az értelme? Kaptál egy szriptet, de nem érted a működését? Minek ez neked? Kell ez egy sima, átlagos felhasználónak? Hogyan álljunk neki a scriptek írásának? Áh, minek ez, hiszen mindenre van már kész program!

A most kezdődő sorozatban ezt járjuk végig. Bár nem leszel programozó, de legalább, ha kell, egy egyszerű scripttel megoldhatod a problémádat, minimális parancssori alapismeretek mellett. Mivel ez egy hosszabb sorozat lesz, minden rész végén megtalálod a következő megjelenésének az idejét. Nem azért lesz pár nap kihagyás mert egyben nem tudnám feltenni az egészet! Érdemes átgondolni minden részben leírtakat, és begyakorolni. Nincs nagy teteje annak, hogy csak elolvasd! Ezt érdemes gyakorolni, és a témáknak az interneten is utána olvasni. Ha pedig találsz olyan megoldásokat, példákat, amiket hasznosnak találsz le is kell menteni. Az egyik ilyen jó jegyzetelő a Zim, a másik a massCode. Lényeg: a szó elszáll, az írás megmarad! Ha olvasol valamit, ami kicsit is hasznos lehet, azt mentsd le magadnak, és ha időd engedi rendszerezd. A joplin weblap mentő funkciója nekem nagyon hasznosnak bizonyult, mert egy gombnyomásra menti az éppen olvasott oldalt, és később kiszedem a hasznos példákat, infókat ezekből.

Ebben a bevezető részben jellemzően csak ismétlünk, és pár alapvető dolgot tisztázunk le.

Mi az a shell, vagy bash script?

Mini program, ami jellemzően Linux terminálban fut. A shell az a parancsértelmező környezet, ami minden Linuxon ott van, és várja a parancsaidat. Ennek a parancsértelmező környezetnek többféle megvalósítása van, ilyen a bash, a zsh stb. Ezek nagyon kicsit eltérnek egymástól, de alapvetően nincs olyan nagy különbség, hogy komoly gondot jelentsen. Én a zsh-t használom, de nagy a valószínűsége, hogy nálad (ha nem telepítettél mást) a bash az alapértelmezett.

Ha nagyon egyszerűen fogalmazok, akkor a shell script az nem más, mint egy parancsokból összeállított teendő sorozat, amit a shell értelmez és végrehajt.

Ha mini program, akkor miért nem egy komolyabb programozói nyelvet használjunk?

  • Mert nekem elegendő a shell scriptek által nyújtott, a többi programnyelvhez képest szűkebb lehetőség.
  • Mert én nem akarok programozni, csak leegyszerűsíteni a munkámat.
  • Mert én valóban arra használom, hogy „össze legózzak” pár ismert parancsot.
  • A shell scripteknek nagy előnye, hogy a más ismert Linuxos parancsokat, azok paramétereit használjuk fel, pár valóban egyszerű szerkezetben.
  • Nem akarok megtanulni, bár jó lenne, egy komolyabb programozási nyelvet, mert nem célom, hogy programozzak, csak a „legózás”.

Mikor jó a script?

  • Ha egy parancs hosszabb, mint egy sor, és párszor fel akarod használni. Ha scriptre teszed, akkor nem lesz elütés, hiszen ha egyszer jól összerakod a parancsot, és lefut rendesen, akkor más jó lesz bármikor.
  • Ha az adott feladatot sokszor el kell végezni, és nincs kedved állandóan beírogatni. Napi mentési feladat pld. jól scriptesíthető.
  • Ha nem csak egy, hanem több lépés is tartalmaz a feladat.
  • Ha olyan a megoldás, hogy ciklusokat, választási lehetőségeket kell automatizálni. Ilyen az, amikor olyan a feladat, hogy HA egy feltétel teljesül, akkor EZT, ha nem akkor AZT végezze el a program.

Mi kell a scriptek írásához?

Kettő + egy program. Az első, ami mindenképp kell egy terminál emulátor. Ez minden rendszerben ott van, bár sokféle létezik, és azt használsz, amit akarsz, én a xfce4-terminal-t használom. Mindegyik jó lesz, azt használd ami tetszik. Bár crt+alt+F1…F6 bármelyikével egy terminálba tudsz átlépni, oda be tudsz jelentkezni sokkal egyszerűbb, ha grafikus felületen nyitsz egy terminált. Én a gyorsindító sávba, és a gyorsbillentyűk közé is felvettem a kedvenc terminálomat, hogy gyorsan elérjem, ha kell.

A második egy sima szövegszerkesztő program. Itt nem kell specifikus szerkesztő, mint sok programozási nyelvhez ajánlanak. Bár a Linux guruk rögvest a vim-mel ijesztgetik szerencsétlen kezdőket, hogy csak azzal, és aki nem, az nem is igazi…, de én nem így gondolom. Jó lesz ennél egyszerűbb, és felhasználóbarátabb is. Én a geany-t használom, mert az szép, jól beállítható. A másik kedvencem a sublimetex2-es. Ez már jobban a kódszerkesztésre lett kihegyezve. Nagyon jó a nano vagy az mcedit is. Ezek egyikét alapszinten mindenképp ismerd meg! Ha nem indulna a grafikus felület, ezekkel tudsz szöveges config fájlokat szerkeszteni!

A plusz egy pedig egy normális, általad megkedvelt fájlkezelő. Én a spacefm-et használom. De bármelyik jó. Miért kell egy fájlkezelő a scriptek írásához? Mert gyorsan tudsz navigálni a fájlrendszerben vele, tudsz az adott könyvtárban terminált nyitni, és pld. a spacefm-be beleintegrálható a legtöbb script, nagyon kis átalakítással.

A shell script írásának alapvető feltétele

Ismerd a parancsokat, amiket beleírsz. Így ha látsz valamilyen minta scriptet, és a benne lévő parancsot, annak paramétereit stb. nem ismered olvass utána! Én igyekszem nagyon „semleges” példákat hozni, de soha ne másolj le valamit, amit nem értesz! A Linux parancsok a lehető legjobban dokumentált parancsok, így biztosan a „man” a „–help” és a „-h” segíteni fog. Ha pedig nem, akkor a google varázslatos ereje! Ez nem csak azért hasznos, mert nem gyilkolod le egy destruktív paranccsal a rendszeredet, hanem mert ha a leírásokat, helpeket elolvasod akkor átlátod, hogy az adott parancs mennyivel többet is tud, mint a példában látható.

Illetve én abból indulok ki, hogy ismered a saját Linux rendszeredet, ha olyan specifikus parancsot írok, ami csak Arch Linux alatt megy, akkor azt adaptálni tudod a saját Linux rendszeredre. Vagy ha esetleg nálad valami parancs nincs alapból telepítve, akkor tudod azt telepíteni.

A legfontosabb a scriptek írásánál

Fantázia! Ha látsz egy megoldást, példát, akkor azt tudd adaptálni a saját feladatodra. Nem szabad leragadni az adott példánál, hanem általános paneloknak kell tekinteni, és addig variálni vele, amíg a megfelelő nem lesz. A Linux parancsok a végtelenségig variálhatóak egymással, így csak a fantáziád és a tudásod szab határt.

Ok, mára ennyit. A következő részt május 30 dátumra időzítettem. Addig három programra lesz szükséged: egy szöveget szerkesztőre, ami tud normális sima txt-t menteni, egy terminál emulátorra, ami neked tetszik, vagy alapból fenn van a gépeden, és egy fájlkezelőre. Ha nem tetted volna eddig meg, akkor nézz rá a Zim-re, vagy a a massCode-ra, illetve a joplin-ra. Illetve olvasd át a belinkelt cikkeket, mert ez (és a következő eleje) csak rövid ismétlés volt!

Related Posts