Következő
Előző
Tartalom
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.
- DOS alatt a fájlneveknek úgynevezett 8.3 alakja van pl.:
NOTENOUG.TXT.
Linux alatt ez jobban megoldott. Ha a Linuxot egy olyan fájlrendszerrel
(nem szükséges, hogy tudd pontosan, mi is ez most) telepíted, mint az
ext2, vagy az umsdos, akkor hosszabb neveket is használhatsz (egészen
255 karakterig), több ponttal a névben. Például,
Ez.egy_IGEN.hosszú.Fájlnév. Kérlek, vedd észre, hogy kisbetűket és
nagybetűket is használtam. Valójában ...
- A kis- és nagybetűket megkülönböztetjük a fájl- és programnevekben. Így a
FÁJLNÉV.tar.gz és a fájlnév.tar.gz nevek két külőnböző fájlt jelölnek.
Ugyanez igaz a parancsokkal kapcsolatban is. Ha az ls parancsot kiadod,
(ez ugyanaz mint a DOS-ban a DIR), akkor könyvtáradban található fájlok
listáját kapod, míg ha az LS parancsot adod ki, akkor egy hibaüzenetet.
- A Windows felhasználók vigyázzanak a linuxos hosszú fájlnevekkel.
Ha fájlnév tartalmaz szóközt (nem javasolt, de lehetséges), a fájlnevet
dupla idézőjelek közé kell tenni, ha hivatkozunk rá. Például:
$ # A következő parancs létrehozza a "Régi fájljaim" könyvtárat.
$ mkdir "Régi fájljaim"
$ ls
Régi fájljaim bin tmp
Továbbá van néhány karakter, ami nem lehet a fájlnév része, pl.
!*$&#.
- Nincs olyan kötelező kiterjesztése a parancs ill. program fájloknak, mint
a .COM és az .EXE , vagy a .BAT a batch-fájloknak. A végrehajtható
fájlokat egy `
*' különbözteti meg a fájlnév végén ha az ls -F paranccsal
listáztattad ki. Például:
$ ls -F
levél_Józsinak Cindy.jpg cjpg* Ez_egy_könyvtár/ első_scriptem* régi~
A cjpg* és az első_scriptem* fájlok végrehajthatóak -- ``programok''. DOS
alatt a .BAK végződés a biztonsági másolat (backup) fájlokat jelöli; a Linuxban
az ilyen típusú fájlok tilde `~' karakterre végződnek. Továbbá, ha egy
fájlnevet ponttal kezdesz, akkor ez a fájl rejtett fájlként lesz
nyilvántartva. Például: az .én.egy.rejtett.fájl.vagyok fájl nem fog
megjelenni az ls parancs után.
- A DOS alatt egy program kapcsolóit
/kapcsoló formában
kell megadni, míg a Linux alatt a -kapcsoló vagy a --kapcsoló
használatos. Például a dir /s-nek az ls -R a megfelelője.
Megjegyzem sok DOS program -- mint a PKZIP vagy az ARJ -- Unix stílusú
kapcsolókat használ.
Most már akár a
DOS-os parancsok Linuxos megfelelői
fejezetre ugorhatsz, de a helyedben én tovább olvasnék.
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
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.
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:
- A
* karakter alkalmazása a Linux alatt elegánsabb. A * kifejezéshez
minden fájl illeszkedik kivéve a rejtett fájlokat. A rejtett fájlok a
.* kifejezéshez illeszkednek, de vigyázat, az aktuális könyvtár `.' és a
szülőkönyvtár `..' is illeszkedik! A *.* kifejezéshez csak azok a fájlok
illeszkednek amelyeknek a közepén '.' található. A p*a kifejezésre mind
a papa, mind a pipa, míg a *g* kifejezésre mind a `régi' és mind a
`rugók' szavak illeszkednek.
- Ha a
more programot használod, akkor a <szóköz> billentyűt használd a
lapozáshoz, és a 'q' billentyűt a kilépéshez. A less
program sokkal jobban használható, s itt használhatod nyíl-billentyűket is.
- A Linuxban nincs
UNDELETE, tehát jól gondold meg mielőtt bármit is
kitörölsz.
- A DOS
< > >> jelein túlmenően, a Linux ismeri a
2> jelet, amivel átirányítható szabványos hibakimenet (stderr),
továbbá a 2>&1 a szabványos hibakimenetet (stderr) a
szabványos kimenetre (stdout), míg a 1>&2 a szabványos
kimenetet a szabványos hibakimenetre irányítja.
- A Linux rendelkezik még egy dzsóker karakterrel, a
[] jellel.
Használata: az [abc]* kifejezés azokhoz a fájlnevekhez illeszkedik amelyek
a, b vagy c betűvel kezdődnek. A *[I-N,1,2,3] kifejezés azokhoz a
fájlnevekhez illeszkedik amelyek I, J, K, L, M, N, 1, 2, 3 betűvel
végződnek.
- Az
lpr <fájl> kinyomtatja a fájlt a háttérben.
A nyomtatási sor ellenőrzésére használd a lpq parancsot. Az
lprm paranccsal kitörölheted a fájlt a nyomtatási sorból.
- Nincs olyan parancs mint a DOS alatti
RENAME, így a
mv *.xxx *.yyy nem fog működni. Egy REN-hez hasonló parancs
letölthető az
ftp://sunsite.unc.edu/pub/Linux/utils/file
FTP-helyről.
- Használj
cp -i-t és mv -i-t, ha azt szeretnéd,
hogy a rendszer szóljon, ha valamit felül készül írni.
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!
- Az 1-től 6-ig terjedő virtuális terminálokra való átlépéshez nyomd le az
<ALT-F1> ... <ALT-F6> billentyűket.
- Egy új session indításához az aktuális virtuális terminálon add ki a
su - <loginname> parancsot. Például: su - root. Ez akkor hasznos,
ha egy olyan feladatot kell elvégezned, amit csak a root tehet meg.
- A sessiont az
exit paranccsal lehet befejezni. Ha vannak leállított
munkáid (lásd később), akkor a rendszer figyelmeztet.
- Ha a háttérben szeretnél elindítani egy processzt, írj egy
`&' jelet a parancssor végére:
$ progname [-kapcsolók] [paraméterek] [< bemenet] [> kimenet] &
[1] 123
A burok (shell) a processzt egy munkaszámmal (például ez fent [1]) és
a processz azonosítójával (PID) azonosítja (példánkban ez 123).
- Ha szeretnéd látni, hogy összesen hány processz fut, írd be azt, hogy
ps ax. Ez a parancs kilistázza az összes jelenleg futó processzt.
- Ha szeretnél lelőni (leállítani) egy processzt, használd a
kill <PID> parancsot. Elképzelhető, hogy le kell lőnöd egy processzt,
ha nem tudod, hogyan kell leállítani, kilépni belőle... ;-).
Néha a processz csak a kill -SIGKILL <PID> alkalmazásával lőhető le:
A burok megengedi, hogy megállíts egy processzt, időszakosan szüneteltesd
a futását, háttérbe küldjed, vagy a háttérből az előtérbe hozd vissza.
Ebben az összefüggésben a processzeket ``munká''-nak nevezik.
- Ha szeretnéd látni, hogy hány munka fut, írd be:
jobs. Itt a munkákat a munkaszámuk azonosítja, nem a PID-jük.
- Egy előtérben futó processz leállításához nyomd le a
<CTRL-C>-t (nem mindig működik).
- Egy előtérben futó processz futása felfüggeszthető a
<CTRL-Z> lenyomásával (szintén nem mindig működik).
- Egy futásában felfüggesztett processzt a
bg <%job> paranccsal
lehet a háttérbe küldeni (a processz munkává válik).
- A munka előtérbe hozására használd a
fg <%job>
parancsot. A legutoljára háttérbe küldött munka előtérbe hozásához elég kiadni a
fg parancsot.
- Egy munka lelövéséhez a
kill <%job> parancsot kell használni, ahol a <job> a burok által
a processzhez rendelt munkaszám: 1, 2, 3, ...
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)!
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:
- indítsd el az X-et, majd azon belül egy
xterm-et, vagy egy
azzal ekvivalens terminál emulátort (rxvt, color-xterm, nxterm, kvt, ...),
majd gépeld be:
$ xhost +tavoli.gep.hu
$ telnet tavoli.gep.hu
- bejelentkezés után:
tavoli:$ DISPLAY=sajat.gep.hu:0.0
tavoli:$ program &
(A DISPLAY... sor helyett, esetleg a setenv DISPLAY
local.linux.box:0.0 sor kell beírnod. Ez a távoli gépen futó
parancsértelmező buroktól függ.)
É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
|