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