• Nem Talált Eredményt

9. Linux Shell parancsok 104

9.2. A Linux shell

A Linux shell egy olyan interaktív program, amely egyszerre tölti be a parancsértelmez®

(command interpreter) és az adatközvetít® szerepét. A shell-t közvetlenül, interaktívan a korábbi gyakorlatokon megszokott módon, a terminálon keresztül érhetjük el. A shell ún. prompttal jelentkezik be, ami általában a $ jel, ez után lehet a parancsokat begépelni.

majd az esetleges módosító kapcsolókat és argumentumokat. A parancsot az <Enter>

billenty¶vel zárjuk. Lehet®ség van a shell parancsokat nem-interaktív módon is meghívni, ha a parancsokat egy fájlba írjuk. Az ilyen fájlokat shell szkriptnek hívják.

Vigyázzunk, mert a Linux rendszer megkülönbözteti a nagy és kisbet¶ket! A paran-csok nagy részét kisbet¶vel kell írni.

9.2.1. Shell gyorsbillenty¶k

A Linux shell hatékony használatához mindenképpen érdemes néhány hasznos gyorsbil-lenty¶t megjegyeznünk (ld. 9.1. táblázat).

A parancs végrehajtásának megszakítása

Bizonyos esetekben szükség lehet a parancs leállítására annak futása közben: például ha egy parancs már túl hosszú ideje fut, vagy közben eszünkbe jut, hogy nem ezt az utasí-tást akartuk futtatni. A parancs leállítására a Ctrl és C (röviden <Ctrl-C>) billenty¶k egyidej¶ lenyomása szolgál. Ezzel megszakítjuk a parancs futását, és visszakapjuk az eredeti shell promptot.

A parancs végrehajtásának felfüggesztése

Lehet®ség van arra is, hogy egy parancs futását ne megszakítsuk, hanem csak felfüg-gesszük (suspend). A parancsok felfüggesztésére a <Ctrl-Z> billenty¶kombináció szol-gál. A felfüggesztés után szintén visszakapjuk a promptot, de a megszakítástól eltér®en a felfüggesztett programok bármikor tovább futtathatóak. A felfüggesztett programok folytatásához a fg és a bg parancsok szolgálnak attól függ®en, hogy az el®térben (foreg-round) vagy a háttérben (backg(foreg-round) kívánjuk folytatni a programot.

Parancskiegészítés

Az egyik leghasznosabb shell szolgáltatás a parancsok és fájlnevek dinamikus kiegészí-tése. Ha beírjuk egy parancs vagy fájlnév els® néhány bet¶jét, akkor a <Tab> billenty¶

megnyomására a shell megpróbálja az addig begépelt szót kiegészíteni. Ha egyértelm¶

a kiegészítés, tehát ha pontosan egy parancs vagy fájlnév kezd®dik a megadott módon, akkor a shell beilleszti a kiegészített szót. Ha több lehet®ség is van, akkor el®ször csak egy hangjelzést kapunk, a második <Tab> leütésére pedig egy listát is a lehetséges kiegé-szítésekr®l.

Naplózás

Egy másik igen hasznos szolgáltatás a korábban kiadott parancsok megjegyzése. A fel billenty¶vel (⇑) az eggyel korábbi, a le billenty¶vel (⇓) pedig az eggyel kés®bbi bevitt

<Ctrl-C> parancs megszakítása

<Ctrl-Z> parancs felfüggesztése

<Ctrl-R> parancs keresése a history-ban

⇑ az el®z® parancs a history-ban

⇓ a következ® parancs a history-ban

<Tab> parancs kiegészítése

9.1. táblázat. A legfontosabb shell gyorsbillenty¶k.

parancssor hívható el®. Ezen túl lehet®ség van arra is, hogy a korábban kiadott pa-rancsok között keressünk. Ehhez üssük le a <Ctrl-R> billenty¶ket, és gépeljük be azt a szövegrészletet, amit meg szeretnénk keresni. Ha megtaláltuk a keresett parancssort, akkor azt az <Enter>-rel ismét lefuttathatjuk, illetve a bal (⇐) vagy jobb (⇒) billenty¶

megnyomása után szerkeszthetjük.

9.2.2. A parancsok szintaxisa

A Linux/Unix parancsok szintaxisa, néhány kivételt®l eltekintve, egységes. Els®ként a parancs nevét kell megadni. Ezt követhetik opcionálisan a parancs kapcsolói, majd a parancs argumentuma(i). A parancsnevet, a kapcsolókat illetve az argumentumokat szóközök választják el egymástól.

9.2.3. Az utasítások kapcsolói

A kapcsolók az alaputasítás végrehajtását módosítják. Kétféle kapcsoló létezik: a rövid és a hosszú kapcsoló.

A rövid kapcsoló

A rövid kapcsolók egy mínusz (-) jellel kezd®dnek és egy bet¶b®l állnak. Szinte minden utasítás rendelkezik rövid kapcsolóval, de vigyázzunk arra, hogy ugyanaz a kapcsoló más más parancs esetén teljesen különböz® jelentéssel bírhat.

A kapcsolókat az utasítástól illetve annak argumentumaitól szóköz választja el. Ha az egyes kapcsolókat külön-külön adjuk meg, akkor azok között szintén szóköznek kell állnia, és minden kapcsoló elé külön-külön mínusz jelet kell tenni. Lehet®ség van a rövid kapcsolók összevonására is. Ilyenkor a mínusz jelet csak egyszer kell begépelni, és utána szóközök nélkül kell a kapcsolókat megadni.

A következ® példákban egy feltételezett felhasználói könyvtárban nézzük meg az ál-lományok listáját: Az ls parancs az aktuális könyvtárban lév® álál-lományok felsorolását adja:

Asztal examples.desktop Képek Nyilvános Videók Dokumentumok Letöltések Sablonok Zenék

A -l kapcsoló módosítja az ls utasítás alapértelmezését, és állományok részletes listáját írja ki (ami oszloponként a következ®ket tartalmazza: hozzáférési státusz, link szám, a fájl birtokosa (felhasználó és csoport), méret byte-ban, az utolsó változtatás ideje és végül a fájl neve):

$ ls -l összesen 40

drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Asztal

drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Dokumentumok -rw-r--r-- 1 usernev usergroup 167 2009-11-20 15:50 examples.desktop drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Képek

drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Letöltések drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Nyilvános drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Sablonok drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Videók drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Zenék

A -a kapcsoló a könyvtárban lév® összes állományt kilistázza, beleértve a ponttal (.) kezd®d®eket is, amelyek általában rejtve maradnak. Az -a és az -l kapcsolók kombinálhatóak is: az ls -a -l, vagy az ls -al) parancsok kiadásával. Ekkor mindkét kapcsoló hatása érvényes lesz, azaz az összes fájlt részletesen kilistázzuk.

Figyeljünk rá, hogy amennyiben mindkét kapcsoló elé írunk - jelet, akkor szóköz karaktert is tegyünk közéjük:

$ ls -a-l

ls: érvénytelen kapcsoló

helytelen szintaxis, míg a következ® helyes módon megadott parancs:

$ ls -a -l összesen 172

drwxr-xr-x 31 usernev usergroup 4096 2009-11-21 21:42 . drwxr-xr-x 3 root root 4096 2009-11-20 15:50 ..

drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Asztal

-rw-r--r-- 1 usernev usergroup 220 2009-11-20 15:50 .bash_logout -rw-r--r-- 1 usernev usergroup 3180 2009-11-20 15:50 .bashrc drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Dokumentumok -rw-r--r-- 1 usernev usergroup 167 2009-11-20 15:50 examples.desktop drwx--- 4 usernev usergroup 4096 2009-11-20 19:56 .gconf

drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Letöltések drwx--- 4 usernev usergroup 4096 2009-11-20 20:24 .mozilla drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 .nautilus drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Nyilvános -rw-r--r-- 1 usernev usergroup 4096 2009-11-20 15:50 .profile drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Sablonok

drwx--- 2 usernev usergroup 4096 2009-11-20 19:56 .update-notifier drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Videók

-rw--- 1 usernev usergroup 7882 2009-11-21 21:41 .viminfo drwxr-xr-x 2 usernev usergroup 4096 2009-11-20 19:56 Zenék Hosszú kapcsolók

A hosszú kapcsolók abban különböznek a rövid kapcsolóktól, hogy két mínusz jellel kez-d®dnek (--), és általában több karakterb®l álló értelmes angol kifejezések. Vannak olyan hosszú kapcsolók, amelyek pontosan megfelelnek egy rövid kapcsolónak (pl. az ls parancs -a és --all kapcsolói ekvivalensek). Vannak azonban olyan rövid és hosszú kapcsolók is, amelyeknek nincs hosszú illetve rövid változatuk.

A hosszú kapcsolókat nem lehet a rövid kapcsolókhoz hasonlóan összevonni.

9.2.4. Az utasítások argumentumai

A kapcsolók mellett a Linux operációs rendszer utasításainak nagy része paramétereket is elfogad. Amíg a kapcsolók módosítják az adott parancs hatását, addig a paraméterek ha-tározzák meg, hogy mire vonatkozik az utasítás. A parancs után el®ször a kapcsoló(ka)t, majd a paramétereket adjuk meg szóközökkel elválasztva. Általában több paraméter is megadható. Például az echo parancs hatására a parancs argumentuma megjelenik a képerny®n.

$ echo haliho haliho

ahol az echo a parancs és a haliho a parancs által megjelenített argumentum.