Következő Előző Tartalom

4. Fájlok és programok

4.1 Fájlok: előzetes megjegyzések

A Linuxban a könyvtárak és a benne lévő fájlok struktúrája nagyon hasonló a DOSWin-ben megismerthez. Minden fájlnak adott szabályokhoz illeszkedő neve van, a fájlokat könyvtárakban tárolják, néhányuk végrehajtható, néhányuk speciális kapcsolókat is igényel ill. megenged. Sőt használhatsz dzsóker karaktereket, átirányítást, csöveket. Csak néhány kisebb különbség van.

Most már akár a DOS-os parancsok Linuxos megfelelői fejezetre ugorhatsz, de a helyedben én tovább olvasnék.

4.2 Szimbolikus linkek

A Unix rendelkezik egy fájltípussal, ami nem létezik DOS alatt: ez a szimbolikus link. Tekinthetjük ezt úgy, mint egy fájlra vagy könyvtárra mutató pointert, és használhatjuk őket az eredeti fájl vagy könyvtár helyett. Ez hasonló a Windows parancsikonjaihoz. Példa szimbolikus linkre az /usr/X11, amely az /usr/X11R6-ra mutat, és a /dev/modem, amely vagy a /dev/ttyS0-ra vagy a /dev/ttyS1-re mutat.

Szimbolikus link létrehozása:

$ ln -s <fájl_vagy_könyvtár> <linknév>

Example:

$ ln -s /usr/doc/g77/DOC g77manual.txt

Mostantól g77manual.txt-ként is hivatkozhatsz az /usr/doc/g77/DOC fájlra. A linkek így jelennek meg a könyvtárlistában:

$ ls -F
g77manual.txt@
$ ls -l
(egy csomó dolog...)           g77manual.txt -> /usr/doc/g77/DOC

4.3 Hozzáférési engedélyek és tulajdonjogok

A DOS-os fájlok és könyvtárak a következő tulajdonságokkal (attribútumokkal) rendelkezhetnek: A (archív), H (rejtett), R (csak olvasható), és S (rendszer fájl). Csupán a H-nak és az R-nek van értelme Linux alatt. A rejtett fájlok egy ponttal kezdődnek, míg az R megfelelőjét a lentiekben tárgyaljuk.

Unix alatt egy fájl rendelkezik hozzáférési engedélyekkel és tulajdonossal, aki egy ``csoporthoz'' tartozik. Itt egy példa:

$ ls -l /bin/ls
-rwxr-xr-x  1  root  bin  27281 Aug 15 1995 /bin/ls*

Az első mező tartalmazz a /bin/ls fájl hozzáférési engedélyeit. Ez a fájlt a root felhasználóhoz és a bin csoporthoz tartozik. A többi információtól eltekintve, jegyezd meg, hogy a -rwxr-xr-x a következőket jelenti (balról jobbra):

- a fájl típusa (- = közönséges fájl, d = könyvtár, l = link, stb.); rwx a fájl tulajdonosának a hozzáférési engedélyei (olvasható, írható, végrehajtható); r-x a fájltulajdonos csoportjának az engedélyei (olvasható, végrehajtható); (most nem részletezem a csoport fogalmát, kezdőként egyelőre jól megleszel nélküle ;-) végül r-x az összes többi felhasználó engedélyei (olvasható, végrehajtható).

A /bin könyvtárnak szintén vannak hozzáférési engedélyei, olvasd el a Könyvtárak hozzáférési engedélyei fejezetet a részletekért. Emiatt nem törölheted az /bin/ls fájlt, hacsak nem te vagy a root, nincs írási jogot, hogy ezt megtedd. Egy fájl hozzáfárési engedélyeinek megváltoztatása a következőképpen lehetséges:

$ chmod <kiXengedély> <fájl>

ahol a `ki' helyén u (user, azaz a tulajdonos), g (group, azaz a csoport) vagy o (other, azaz bárki más) állhat, az `X' vagy + vagy -, az `engedély' lehet r (read, azaz olvasható), w (write, azaz írható) vagy x (execute, azaz végrehajtható). Általános példák a chmod parancsra:

$ chmod +x file

Ez végrehajthatóvá teszi a file-t. A

$ chmod go-rw file

eltávolítja a fájlról az írási és a olvasási engedélyeket mindenki számára, kivétel csupán a fájl a tulajdonosa. A

$ chmod ugo+rwx file

mindenkinek olvasási, írási és végrehajtási jogot ad. Végül, de nem utolsósorban a

# chmod +s file

paranccsal hozhatóak létre egy úgynevezett ``setuid'' vagy ``suid'' fájl, azaz olyan fájl, amelyet mindenki végrehajthat a tulajdonos jogaival. Általában a root tulajdonában levő suid fájlokkal fogsz találkozni, ezek többnyire fontos rendszerfájlok, mint például az X szerver.

Van egy rövidebb mód is az engedélyek megadására, ez számokkal történik. Az rwxr-xr-x kifejezhető úgy, mint 755. Minden betűnek egy bit felel meg, a --- 0, a --x 1, a -w- 2, a -wx 3, és így tovább. Bonyolultnak látszik, de egy kis gyakorlás után át fogod látni a koncepciót. A root, azaz a rendszergazda, minden fájl hozzáférési engedélyeit megváltoztathatja. OEK.

4.4 DOS-os parancsok Linuxos megfelelői

Bal oldalon vannak a DOS-os parancsok, jobb oldalon a linuxos megfelelői.

ATTRIB:         chmod
COPY:           cp
DEL:            rm
MOVE:           mv
REN:            mv
TYPE:           more, less, cat

Átirányítás és csőszervezés operátorok: < > >> |

Dzsóker karakterek: * ?

nul: /dev/null

prn, lpt1: /dev/lp0 vagy /dev/lp1; lpr

Példák

DOS                                     Linux
---------------------------------------------------------------------

C:\GUIDO>ATTRIB +R FILE.TXT             $ chmod 400 file.txt
C:\GUIDO>COPY JOE.TXT JOE.DOC           $ cp joe.txt joe.doc
C:\GUIDO>COPY *.* TOTAL                 $ cat * > total
C:\GUIDO>COPY FRACTALS.DOC PRN          $ lpr fractals.doc
C:\GUIDO>DEL TEMP                       $ rm temp
C:\GUIDO>DEL *.BAK                      $ rm *~
C:\GUIDO>MOVE PAPER.TXT TMP\            $ mv paper.txt tmp/
C:\GUIDO>REN PAPER.TXT PAPER.ASC        $ mv paper.txt paper.asc
C:\GUIDO>PRINT LETTER.TXT               $ lpr letter.txt
C:\GUIDO>TYPE LETTER.TXT                $ more letter.txt
C:\GUIDO>TYPE LETTER.TXT                $ less letter.txt
C:\GUIDO>TYPE LETTER.TXT > NUL          $ cat letter.txt > /dev/null
        n/a                             $ more *.txt *.asc
        n/a                             $ cat section*.txt | less

Megjegyzések:

4.5 Programok futtatása: többfeladatúság

Ha futtatni akarsz egy programot akkor a DOS-hoz hasonlóan itt is a program nevét kell begépelned. Ha a könyvtár ( Könyvtárak használata fejezet), amiben a programot eltároltad megtalálható a PATH ( Rendszerinicializáló fájlok fejezet) környezeti változóban, a program el fog indulni. Kivétel: a DOS-tól eltérően a Linux alatt az aktuális könyvtárban lévő program is csak akkor fog elindulni, ha a könyvtár benne van a PATH-ban. Tipp: ilyen esetben, ha a programod prog akkor azt gépeld, hogy ./prog.

Így néz ki egy tipikus parancssor:

$ parancs [-k1 [-k2] ... [-kn]] [par1 [par2] ... [parn]] [< bemenet] [> kimenet]

ahol a -k1, ..., -kn a program kapcsolói, és a par1, ..., parn a program paraméterei. Egy sorban több parancsot is begépelhetsz:

$ parancs1 ; parancs2 ; ... ; parancsn

Ennyit a programok futtatásáról, bár könnyű a következő lépés megtétele is. Az egyik legfontosabb indok, ami a Linux használata mellett szól, hogy a Linux többfeladatú operációs rendszer, azaz képes több program (ezentúl processzek) párhuzamos (egyidejű) futtatására. Elindíthatsz processzeket a háttérben, és amíg ezek futnak, tovább folytathatod a munkádat. Sőt, a Linux lehetővé teszi, hogy egyidejűleg többször bejelentkezve különböző virtuális terminálokon is dolgozz: ez olyan mintha több számítógéped lenne egyszerre, amin dolgozhatsz!

Ezeknek az utasításoknak a használatával egyszerre tudsz egy lemezt megformázni, fájlok egy csoportját tömöríteni, kitömöríteni archivált fájlokat, programokat fordítani, és még mindig rendelkezésedre áll egy prompt, tovább dolgozhatsz zavartalanul! Próbáld ugyanezt megtenni DOS alatt! És próbáld ki ugyanezt Windows alatt is, csak hogy lásd a teljesítménybeli különbséget a két megvalósítás között (ha ugyan le nem fagy közben)!

4.6 Programok futtatása távoli gépeken

Egy távoli gépen történő programfuttatáshoz elsőként be kell jelentkezned oda, s ehhez tudnod kell a gép nevét vagy IP-címét.

$ telnet tavoli.gep.hu

Bejelentkezés után elindíthatod kedvenc programod. Gondolom szükségtelen megemlítenem, hogy a másik gépen is kell rendelkezned felhasználói azonosítóval.

Ha van X Window rendszered, akkor akár X-es alkalmazásokat is futtathatsz a távoli gépen oly módon, hogy az a te képernyődön jelenik meg. Legyen például a távoli gép a tavoli.gep.hu, míg a Te géped az sajat.gep.hu. Egy a távoli gépen levő X-es program futtatása az sajat.gep.hu-n a következőképpen lehetséges:

És láss csodát! A távoli gépen elindul a program, ami majd a te képernyődön fog megjelenni. Azonban modemes kapcsolat esetén nem érdemes ezzel próbálkozni, használhatatlanul lassú lesz. Ráadásul ez egy durva és nem biztonságos módszer, az ``Remote X Apps mini-HOWTO'' http://sunsite.unc.edu/LDP/HOWTO/mini/Remote-X-Apps foglalkozik a témával részletesebben.


Következő Előző Tartalom