Shell alapok és néhány egyszerû parancs

A shell prompt

Bejelentkezés után a shell (parancsértelmezõ) indul el. Ez egy olyan speciális program, amely a felhasználó billentyûzetén begépelt parancsokat hajtja végre. Ezek a parancsok lehetnek egyszerûek és bonyolultak, az egyszavas utasításoktól a több oldalas shell programokig.

A felhasználó egyszerûen begépelheti a kivánt parancsot a $ jel után (amit promptnak, vagy magyarul készenléti jelnek nevezünk), majd Enter-t ütve tudtára adja a shellnek, hogy nekiláthat a parancs értelmezésének és végrehajtásának. Törölni a Backspace és a Del billenyûkkel lehet[1], a jobbra-balra nyilak pedig a kurzor mozgatására szolgálnak.

Próbáljuk ki a date parancsot[2]!

$ date Enter
Sun Oct 11 10:40:15 MDT 1998
$
A parancs végrehajtása után a shell visszaadja a promptot a felhasználónak. A legtöbb shellnek van nehány ``kellemes'' tulajdonsága, amelyek megkönnyítik a felhasználó munkáját. Ezek közé tartozik az un. kiegészítés, ami azt jelenti, hogy nem kell az egész parancsot feltétlenül begépelnünk, csupán annyit, amennyibõl a shell egyértelmûen el tudja dönteni, hogy melyik utasításról van szó. A kiegészítés a Tab billentyûvel történik. Gépeljük be a következõket:
$ d Tab
A Tab lenyomása után csipogást hallunk. A shell ezzel azt jelzi, hogy a begépelt információ még nem elegendõ a parancs egyértelmû azonosításához. Ha belegondolunk, akkor valószínûsíthetõ, hogy több parancs is van, amelyik d betûvel kezdõdik, egy betû megadása általában nem elég az azonosításhoz. Ha mégegyszer leütjük a Tab billentyût, akkor a shell kiírja az összes választási lehetõséget. 

Próbálkozzunk még egyszer, most két betûvel:

$ da Tab
és ha szerencsénk van (és nincs más hasonló nevû parancs a gépen)[3], akkor megkapjuk a date parancsot:
$ date

A fájl és a könyvtár fogalma

A szamítógép többek között adatok tárolására és feldolgozására használható. Az adattárolás igen tág fogalom, az adatbáziskezeléstõl a programozáson át az önfeledt játékig minden belefér. Az adatokat, képeket, programokat, stb. a rendszer un. fájlokban[4] tárolja.

A fájl nagyon rugalmas fogalom, szinte minden belefér[5]. Például egy szakdolgozat kerülhet egy fájlba, de szétbontható akár több kisebb darabra is. Egy képgyûjtemény lehet több fájl, de összerakható egy fájlba is. A lehetõségeket csak az elterjedt szabványok és a felhasználó fantaziája korlátozzák.

A fájlokat érdemes valamilyen elv alapján csoportosítani. Egy átlagos rendszeren pár tízezer fájl van. Kepzeljük el mi történne, ha csak úgy ömlesztve, egy kupacban tárolnánk õket. Nehéz lenne megtalálni, amit keresünk, és technikai okok miatt a rendszer is jelentõsen lelassulna.

A csoportosítást könyvtárakkal[6] oldhatjuk meg. Egy könyvtár tartalmazhat fájlokat és alkönyvtárakat, amik további fájlokat és könyvtárakat tartalmazhatnak.

Az aktuális vagy munkakönyvtár[7] az a könyvtár, ahol a shell szerint éppen vagyunk. A legtöbb parancs felhasználja valamilyen módon ezt az információt, így nem kell mindig megadni, hogy hol akarunk dolgozni.

Tipp: Beállítható, hogy a shell prompt kiírja az aktuális könyvtárat.
Az ls[8] parancs kilistázza az aktuális könyvtár tartalmát [9]:
$ ls
available    dev          initrd       proc         usr
bin          etc          lib          root         var
boot         floppy       lost+found   sbin         vmlinuz
cdrom        home         mnt          tmp          vmlinuz.old
$
A pwd[10] parancs kiírja az aktuális könyvtárat:
$ pwd
/
$
A cd[11] paranccsal lehet könyvtárat váltani:
$ pwd
/
$ cd /home
$ pwd
/home
$
A cd - parancs visszavisz az elõzõ könyvtárba:
$ pwd
/
$ cd /home
$ pwd
/home
$ cd -
$ pwd
/
$
A fenti példában látott / könyvtár a gyökér[12] könyvtár. Ez a könyvtár nem nyílik semmibõl, de minden könyvtár belõle nyílik. Az egymásból nyíló könyvtárakat a / jel közbeiktatásával egymás után lehet írni. Példaul a /usr/bin könyvtár a /usr könyvtárból nyíló bin könyvtár.
$ pwd
/
$ cd usr
$ cd bin
$ pwd
/usr/bin
$ cd /
$ pwd
/
$ cd /usr/bin
$ pwd
/usr/bin
$
Minden felhasználónak van egy saját könyvtára, az un. home könyvtár. Ezek a felhasználói könyvtárak általában a /home könyvtárból nyílnak. A szaboj nevû felhasználó home könyvtára például a /home/szaboj könyvtár lesz. A paraméter nélküli cd parancs segítségével a könyvtárszerkezet bármely pontjáról vissza juthatunk saját könyvtárunkba[13].
$ pwd
/
$ cd
$ pwd
/home/szaboj
$
A cd .. parancs hatására az aktuális könyvtár ``szülõ'' könyvtárába juthatunk[14].
$ pwd
/home/szaboj
$ cd ..
$ pwd
/home
$
Fontos: A cd /alkönyvtár parancs nem azonos a cd alkönyvtár paranccsal. Az elsõ a gyökér könyvtárból nyíló alkönyvtárba lép be, a második az aktuális könyvtárból nyílóba.

Megjegyzések

[1] A DOS-tól eltérõen itt mindkét billentyûnek ugyanaz a hatása, azaz mindkettõ balra, visszafel töröl. Ha valami okból a törlõ billentyûk nem mûködnének megfelelõen, próbálkozhatunk a Ctrl+H billentyû-kombinációval is.
[2] A parancs a mai dátumot és a pontos idõt írja ki, a rendszer beállításai alapján.
[3] Ha mégis lenne, akkor ne adjuk fel: próbálkozzunk három betûvel
[4] Angolul file, kiejtese kb. [fájl]. Innen ered a szó magyar megfelelõje.
[5] A UNIX rendszer alatt léteznek un. speciális fájlok például az egyes eszközök közvetlen eléréséhez, de ezekkel itt nem foglalkozunk.
[6] Angolul directory
[7] Angolul working directory
[8] Az angol list szó rövidítése
[9] A továbbiakban az Enter billenyû lenyomását nem jelöljük.
[10] A print working directory rövidítése
[11] A change directory rövidítése
[12] Angolul root
[13] A cd parancs mûködése e tekintetben tehát eltér a DOS-ban megszokotttól, ahol az aktuális könyvtár lekérdezésére használhatjuk a paraméter nélküli cd parancsot.
[14] A DOS-szal ellentétben itt nem használható a cd.. alak.