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.
NOTENOUG.TXT
. Linux alatt jobban megoldott. Ha a
Linuxot egy olyan fájlrendszerrel (nem szükséges, hogy tudd pontosan mi is
ez most) installálod 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 mind kisbetûket és
mind nagybetûket is használtam. Valójában ...
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.
*
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_dir/ elsõ_scriptem*
A cjpg*
és az elsõ_scriptem*
fájlok végrehajthatók - "programok".
DOS alatt a .BAK végzõdés a másolat (backup) fájlokat jelölik; a Linuxban az
ilyen típusú fájlok tilde (~
) karakterre végzõdnek. Továbbá, ha
egy fájlnevet pottal 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.
/opció
formában adhatók
meg, mig Linuxban a megfelelõ forma a -opció
. Például: dir /s
parancs megfelelõje ls -R
. Megjegyzem sok DOS program - mint a
PKZIP
vagy az ARJ
- Unix stílusú opció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. 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.
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.
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:
more
programot használod, akkor a <szóköz>
billentyût használd a lapozáshoz, és a 'q' vagy a CTRL-C billentyût a
kilépéshez. A less
program sokkal jobban használható, s itt
használhatod nyíl-billentyûket is, valamint a 'h' leütésére pedig elõjön egy
segítõ képernyõ.
UNDELETE
, vagyis a
kitörölt fájlokat nem tudod visszaállítani, így jól gondold meg mielõtt
bármit is kitörölnél.
< > >>
jeleihez képest pluszt jelent a
2>
jel a hibaüzenetek (stderr) átirányítására. 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.
[]
jellel. Használata: [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.
RENAME
, így a
mv
*.xxx *.yyy nem fog mûködni.
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 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!
$ ALT-F1 ... ALT-F6
$ su - <loginname>
Például:
$ su - root
Ez igen hasznos, ha például mount
-olni akarsz egy
Floppy-t, mivel alapértelmezésben ezt csak a root teheti meg.
$ exit
Ha lennének leállított 'job'-jaid (lásd késõbb), akkor elõbb kapsz egy
figyelmeztetõ üzenetet.
$ program [-opciók] [paraméterek] [< input] [> output]
&
' jellel lehetséges:
$ program [-opciók] [paraméterek] [< input] [> output] &
[1] 123
A burok (shell) a processzt egy munka számmal
(például ez fent [1]
;) és a processz azonosítõjával (PID)
azonosítja (példánkban ez 123).
$ ps -a
$ kill <PID>
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 processzt a következõk
egyikével lõheted le:
$ kill -15 <PID>
$ kill -9 <PID>
Egy processzt neve alapján nem egyértelmû lelõni, mert több is futhat
belõle, különbõzõ PID-ek alatt. De ha csak egy fut vagy valóban mindet ki
akarod lõni, akkor így is megteheted:
$ killall processznév
Az eddigieken kívül a burok program lehetõvé teszi, hogy a processzeket
megállítsd, vagy ideiglenesen megszakítsd, a háttérbe irányítsd vagy éppen
egy háttérben futó programot tégy elõtérben futó programmá. Ebben a
környezetben a processzeket "job"-okként emlegetik.
$ jobs
Itt a 'job'-ok a shell által meghatározott számokkal vannak azonosítva, nem
pedig a PID számmal.
$ CTRL-C
$ CTRL-Z
$ bg <job>
$ fg <job>
$ kill <%job>
ahol <job> a shell által a processzhez rendelt szá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 archívált
fájlokat, é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!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:
startx
), majd azon belül egy
xterm
-et, vagy egy azzal ekvivalens terminál emulátort (rxvt
,
color-xterm
, nxterm
, ...), majd gépeld be:
$ xhost +tavoli.gep.hu
$ telnet tavoli.gep.hu
remote:$ DISPLAY=itteni.linux.hu:0.0
remote:$ program &
(A DISPLAY ...
sor helyett lehet, hogy a következõt kell
begépelned: setenv DISPLAY itteni.linux.hu:0.0
. Ez a távoli
gépen lévõ buroktól (shell-tõ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 ne nagyon próbáld ezt PPP
alatt, mivel meglehetõsen lassú lesz (a vonal sávszélességétõl függ).