Vissza Előre Tartalom

2. Fájlok és programok

2.1 Fájlok: elõzetes megjegyzések

A Linux fájlrendszerrel dolgozik, ami azt jelenti, hogy a "könyvtárak és a benne lévõ fájlok struktúrája" nagyon hasonló a DOS-oséhoz. 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 wildcard 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.

2.2 Szimbolikus linkek

A Unix rendelkezik egy fájltípussal, ami nem létezik DOS alatt: ez a szimbolikus link. Tekintehetjü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 Win95 shortcut-jaihoz. Példa szimbolikus linkre a /usr/X11, mely a /usr/X11R6-ra mutat, a /dev/modem, mely vagy a /dev/cua0-ra vagy a /dev/cua1-re mutat.

Szimbolikus link létrehozása:

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

Példa:

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

Mostantól g77manual.txt-ként is hivatkozhatsz a /usr/doc/g77/DOC fájlra.

2.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õ tartalmazza a /bin/ls fájl hozzáférési engedélyeit, amely a root-hoz illetve a bin csoporthoz tartozik. A többi információtól most eltekintve (lásd õket például Matt Welsh elöbb említett könyvében), 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 tulajdonoának a hozzáférési engedélyei (olvasható, írható, futtatható); r-x a fájl tulajdonos csoportjának az engedélyei (olvasható, futtatható); (most nem fogom részletezni a csoport fogalmát, egyelõre nyugodtan meglehetsz nélküle, ha kezdõ vagy ;-), végül a r-x az összes többi felhasználó hozzáférési engedélyei (olvasható, futtatható).

Emiatt nem törölheted a /bin/ls fájlt, hacsak nem Te vagy a root: nincs irási jogod, hogy ezt megtedd. Egy fájl hozzáférési engedélyeinek a megváltoztatása a következõképpen lehetséges:

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

ahol a `ki' u (user, azaz a tulajdonos), g (group, azaz a csoport), és/vagy o (other, vagyis egyéb) lehet, az `X' vagy + vagy -, az `engedély' lehet r (read, azaz olvasható), w (write, azaz írható), vagy x (execute, vagyis futtatható). Példák:

$ chmod u+x fájl

A tulajdonos számára futtathatóvá válik a fájl. Rövidebben: chmod +x fájl. Ez bárki számára futtathatóvá állítja. A

$ chmod go-wx fájl

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

$ chmod ugo+rwx fájl

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

# chmod +s fájl

parancs `setuid' vagyis `suid'-ossá teszi a fájl, ami azt jelenti, hogy mindenki a fájl tulajdonosának a privilégiumával futtathatja a fájlt.

Egy rövidebb mód az engedélyek beállítására számokkal történhet: rwxr-xr-x kifejezhetõ a 755-tel (minden betû megfelel egy bit-nek: így a --- 0, a --x 1, a -w- 2, a -wx 3, stb). Elsõre nehéznek tûnik, de kis gyakorlattal meg fogod érteni a mögötte lévõ dolgot.

A root -- lévén õ a rendszergazda -- bárki fájljainak a hozzáférési engedélyeit meg tudja változtatni.

2.4 DOS-os parancsok Linuxos megfelelõi

A baloldalon a DOS parancsok láthatók, míg jobboldalon a Linuxos megfelelõje.

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

Átirányító és csõszervezõ karakterek: < > >> |

Meta karakterek: * ?

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

- PÉLDÁK -

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

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:

2.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 amiben a programot eltároltad megtalálható a PATH 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 -op1 -op2 ... -opn par1 par2 ... parn < input > output

ahol -op1, -op2, ..., -opn a parancs opciói, par1, ..., parn pedig a paraméterei. Egy sorban több parancsot is begépelhetsz:

$ command1 ; command2 ; ... ; commandn

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 képes a multitaskingra azaz több program (ezentúl processzek) párhuzamos (egyidejû) futtatására. Elindíthatsz processzeket a háttérben, és amíg ezek futnak, Te 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!

2.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 szá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 itteni.linux.hu. Egy a távoli gépen levõ X-es program futtatása az itteni.linux.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 ne nagyon próbáld ezt PPP alatt, mivel meglehetõsen lassú lesz (a vonal sávszélességétõl függ).


Vissza Előre Tartalom