You are on page 1of 70

A GNU/Linux alapparancsai

1.0.2
A Mithrandir Kft. nyelvi elleno rzsvel
Balsai Pter
Ksa Attila
2002. jnius 20.

Copyright c 2001-2002 Linux-felhasznlk Magyarorszgi Egyeslete


E kzlemny felhatalmazst ad nnek jelen dokumentum sokszorostsra, terjesztsre s/vagy mdostsra a Szabad Szoftver Alaptvny ltal kiadott GNU Szabad
Dokumentcis Licensz 1.1-es, vagy brmely azt kveto verzijnak felttelei alapjn. Nem Vltoztathat Szakaszok nincsenek, Cmlap-szvegek nincsenek, a Htlapszvegek neve pedig htlapszveg. E licensz egy pldnyt a GNU Szabad Dokumentcis Licensz elnevezsu szakasz alatt tallja.
A mdostott vltozat kzzttelrt felelo s szemlyek:
Sri Gbor saga@lme.linux.hu
Javtsok: Sri Gbor

Szerzo
Szjjrt Lszl laca@janus.gimsz.sulinet.hu

Szakmai lektor
Kis Tams dozer@lme.linux.hu

Nyelvi ellenorzs
Sri Gbor saga@tux.hu
Ksa Attila atkosa@shinwa.hu

Formzs (LATEX)
Ksa Attila atkosa@shinwa.hu

Elozmnyek
A GNU/Linux alapparancsai
A Mithrandir Kft. nyelvi ellenorzsvel
A kiads ve: 2002.

Szerzo
Szjjrt Lszl laca@janus.gimsz.sulinet.hu

Szakmai lektor
Kis Tams dozer@lme.linux.hu

Nyelvi ellenorzs
Sri Gbor saga@tux.hu
Ksa Attila atkosa@shinwa.hu

Formzs (LATEX)
Ksa Attila atkosa@shinwa.hu

Az LME ltal elkszttetett Pingvin fzeteken a Mithrandir Kft. az olvashatsg


rdekben nyelvi, helyesrsi javtsokat vgzett.
A Mithrandir Kft. valamint a nyelvi javtst vgzo termszetes szemlyek szakmai ellenorzst, javtst nem vgeztek.
Nem tettk ezt (szakmai javts), akkor sem a szerzo k s a szakmai lektorok munkja irnti tiszteletbol , ha a lertak nem feleltek meg szakmai meggyo zodsknek.
A Mithrandir Kft. javtst vgzo szakemberei, illetve a Mithrandir Kft. mint jogi
szemly a lertak helyessgrt, esetleges avultsgrt semmilyen felel o ssget nem vllal.
2

Tartalomjegyzk
1. A GNU/Linux alapparancsai
1.1. Bevezets . . . . . . . . . . . . . . . . . . . . . . . .
1.2. ltalnos parancsok . . . . . . . . . . . . . . . . . . .
1.3. Segtsgkrs. A kziknyv (man) s az info hasznlata
1.4. Belps, kilps (s egyebek. . . ) . . . . . . . . . . . .
1.5. Tjkozds a rendszerben . . . . . . . . . . . . . . .
1.6. Szvegszerkesztok . . . . . . . . . . . . . . . . . . .
1.7. A rendszer mukdst befolysol parancsok . . . . .
1.8. llomnykezelo parancsok . . . . . . . . . . . . . . .
1.9. A knyvtrkezels parancsai . . . . . . . . . . . . . .
1.10. Fjlkezelo parancsok . . . . . . . . . . . . . . . . . .
1.11. Tulajdonjogok, hozzfrs szablyozsa . . . . . . . .
1.12. Egyb llomnykezelsi parancsok . . . . . . . . . . .
1.13. llomnyrendszerekkel kapcsolatos parancsok . . . .
1.14. Szvegkezelo parancsok . . . . . . . . . . . . . . . .
1.15. Folyamatkezelo parancsok . . . . . . . . . . . . . . .
1.16. Hlzati eszkzk kezelse, gyflprogramok . . . . .
1.17. Kernel s program pts, kernel modulok . . . . . . .
1.18. A hjprogramozs segdeszkzei . . . . . . . . . . . .
1.19. Az X Window rendszer alapparancsai . . . . . . . . .
1.20. Csomagok kezelse . . . . . . . . . . . . . . . . . . .
1.21. Egyb parancsok . . . . . . . . . . . . . . . . . . . .
1.22. Zrsz . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

5
5
6
7
9
10
12
14
16
17
20
24
27
31
37
40
46
48
53
55
58
60
61

brk jegyzke
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
1.8.
1.9.

A jed mukds kzben . . . . . . . . . .


A Midnight Commander . . . . . . . . .
A cfdisk kpernyoje . . . . . . . . . . . .
Egy grafikus archvumkezelo , a GnoZip .
A top mukds kzben . . . . . . . . . .
Egy mindentud hlzati belltprogram
A make xconfig eredmnye . . . . . . . .
Nhny dialog-gal kszlt program . . . .
Klnbzo terminlprogramok . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

14
30
32
36
42
46
51
55
58

1. fejezet

A GNU/Linux alapparancsai
1.1. Bevezets
A GNU/Linux az utbbi vekben igazi alternatvt jelent a felhasznlk szmra a tbbi
elterjedt opercis rendszer mellett. Elo retrst tbb mindennek ksznheti:
mivel a UNIX opercis rendszerek csaldjba tartozik (amelyek immr 30 ve
bizonytanak), megbzhat mg az egybknt nem ppen stabilitsukrl hres
PC-ken is;
programokkal val elltottsga naprl-napra jobb, gyakorlatilag ma mr minden
fontosabb terletre megtallhat linuxos program is;
dokumentltsga angol nyelven nagyon j, mivel a rendszer teljes mrtkben
nylt forrskd, nincsenek nem dokumentlt belltsok vagy Easter Eggek;
s mg sok egyb vonz tulajdonsga is van, a vgre egy nagyon er o s rv mellette: ingyenes!
Mindezek figyelembevtelvel azt kell mondanunk, hogy ma mr nem csak a szmtgpes guruk opercis rendszere, hanem remnyeink szerint hamarosan bekltzhet az irodkba, s az egyszeru felhasznlk gpein is viszontlthatjuk. Hlzati
alkalmazsa mr ma is olyan mretu, hogy a szmtstechnikval kicsit haladbb szinten foglalkozknak mindenkppen hallaniuk kell rla, tallkozniuk kell vele.
A fzet clja, hogy azokat a fontosabb parancsokat sszefoglalja alkalmazsi pldk segtsgvel , amik a Linuxszal val ismerkeds els o idoszakban elofordulnak. A parancsok neveit a foly szvegen bell ilyen bet
ukkel talljuk meg, esetleges paramtereikkel. A pldknl egy kszenlti jel (ltalban
[root:~]>) utn lthat az, amit be kell gpelni, majd a gp vlasza kvetkezik, ezt
az rgpes szveghez hasonl betutpus jelzi. Nhol fjlok, knyvtrak
neve tallhat ms betutpussal. A fzet szvege felttelezi bizonyos alapfogalmak
ismerett (pldul terminl, domain-nv). Ahol lehet, hivatkozunk a DOS/Windows
rendszereken megszokott dolgokra, hogy azok szmra akik ezeket mr ismerik,
knnyebb legyen a munka. Mivel a szveg pldkat is tartalmaz, ajnlatos azonnal
gpen is kiprblni az itt lertakat.

1.2. ltalnos parancsok


Mielott belekezdennk, szksg van nmi alapismeretre a UNIXot illet o en. A trelmetlenek kedvrt meggrem: nem lesz tl hossz!

1.2.1. A UNIX-ok fobb tulajdonsgai


A Linux, mint mr emltettk, a UNIX opercis rendszerek egy verzija, azoknak PCre rt vltozata (br ltezik Linux ms gptpusra is, pldul Alpha). Alapjaiban kveti
azokat a jellemzoket, amik egy UNIXnak sajtjai, ezek kzl a legfontosabbak:
egy UNIX rendszerben minden adatot egyetlen knyvtrfban, az azon bell elhelyezkedo alknyvtrakban, s ezen bell fjlokban trolunk. Sokszor hallani,
hogy a UNIXban minden fjl: egy szveg, egy binris program, de a httrtr egy
partcija vagy az elso soros port is fjlknt kezelendo. Ez elso rnzsre furcsa
lehet, de ha jobban meggondoljuk, ennek az egyszerustsnek tbb el o nys
oldala van;
a knyvtrfban kialakult rendszere van az alknyvtrak elnevezseinek s tartalmnak is. Pldul a /etc tartalmazza a konfigurcis llomnyokat, rendszerindt szkripteket (ezek parancsokat tartalmaz, vgrehajthat szveges llomnyok, nagyjbl a DOS batch fjljainak felelnek meg), a /tmp az tmeneti
fjlokat. A pldkbl az is lthat, hogy a knyvtraknak a / az elvlaszt jele;
az eddigiekbol mr kvetkezik, hogy nincsenek kln meghajtk: ha egy CDROM-ot akarok hasznlni, akkor azt (illetve a rajta lvo fjlrendszert) be kell
illeszteni a knyvtrfba, ha mr nincs r szksg, akkor pedig le kell vlasztani
(tulajdonkppen ez DOS alatt is gy van, csak ez a httrben zajlik);
a fjlnevek tartalmazhatnak szinte brmilyen karaktert, a kis- s nagybetuket
megklnbzteti egymstl a rendszer, tbb pontot is lehet rakni a nvbe, s
a fjl tpust nem tudjuk mindig a kiterjesztsbo l megllaptani, mert ez sokszor
hinyzik is! Teht pldul a kvetkezo fjlnevek hasznlhatk Linux alatt:
KissPista.levele.txt
johosszunevuprogram
Ez.is.program.lehet-[pedig.nem.exe.a.kiterjesztese]
.rejtett_file
Ez utbbibl ltszik, hogy a DOS/Windows alatt megismert fjl-attribtumok
sem az ott megszokott mdon lteznek (ms tpusak viszont igen, akit behatbban rdekel, a chattr s az lsattr parancsok krnykn kutasson), a rejtett
fjlok nevt ponttal kell kezdeni;
az alapfilozfia az, hogy a rendszerben minden egyes programnak legyen meg
a jl behatrolt feladata, s azt (de csak azt!) jl lssa el. A legtbb UNIX
parancs emiatt nmagban csak bizonyos rszfeladatot tud megoldani, annak
viszont minden lehetsges elofordulst le tudja kezelni azltal, hogy rengeteg
paramterrel lehet meghvni. rdemes mr most kiprblni az ls --help begpelst, lthat, hnyflekppen hasznlhat a legelemibb, knyvtrtartalmat

kilistz parancs is! Az egyes programokat aztn a DOSbl is ismert gynevezett csovezetkekkel (angolul pipeline) sszekapcsolhatjuk, s gy egyszeru eszkzkkel meglepoen bonyolult dolgokat is meg tudunk oldani. Ezt a mdszert
nevezik szerszmoslda-modellnek. A programok paramtereit a - jel utn
kell magadni, ltalban tbb paramtert ssze is lehet vonni, az el o zo pldnl
maradva az ls -a -l -i ugyanaz, mint az ls -ali;
a DOSban is ltezik egy parancsrtelmezo program, a COMMAND.COM, ami az
ltalunk begpelt parancsokat tadja feldolgozsra a rendszernek, esetleg hibazeneteket kld, s alapszinten programozni is lehet a mr emlegetett batch fjlok
segtsgvel. Linux alatt tbbfle parancsrtelmezo , idegen nven shell, magyarul hj- vagy burokprogram kzl vlaszthatunk. A leggyakoribb a bash
(Bourne Again Shell), ami sok kellemes szolgltatsval s nagyon j programozhatsgval tunik ki. Nhny egyszerubb feladatra nem kell kln program,
azt a shell vgzi el.
Rvid sszefoglalsknt teht a Linux alatt kiadott parancsaink vagy binris, vgrehajthat programok, vagy a shell belso parancsai, esetleg shell-szkriptek. A legtbb
program a kvetkezo formban hasznland:
program_neve -opci1 -opci2 ... paramterek

Majdnem mindegyik rendelkezik gynevezett POSIX-formtum opcikkal is,


ezeket -- jellel (kt mnusz) vezetjk be, s nem egybetus, hanem hosszabb nevk
van, a jobb olvashatsg vgett cserbe sajnos kicsit tbbet kell gpelnnk. Teht
ha kvncsiak vagyunk egy parancs mukdsre rviden, akkor ksrletezhetnk a -h,
de a --help kapcsolval is. Mindjrt ltjuk azonban, hogy ennl rszletesebb lerst
is kaphatunk. Az elrsi tvonalunkon lvo parancsokat kzvetlenl a nevk begpelsvel, az aktulis knyvtrban tallhatakat pedig a ./parancsnv bersval
indthatjuk.

1.3. Segtsgkrs. A kziknyv (man) s az info hasznlata


Aki eloszr l le egy Linux el, elsore elbizonytalanodhat attl a rengeteg parancstl,
amit tall a gpen. Radsul mindegyiknek tbb paramtere is van, s ezeket mind
fejben tartani lehetetlen. Nem kell viszont megijedni, mert mg teljesen ismeretlen s
jszeru feladatok megoldsnl is nagyon jl hasznlhatak a kvetkez o kben trgyalt
eszkzk, amikhez nem kell az Internet sem, mert nagy valsznusggel mr a helyi
gpen vannak a hozzvalk.
ltalban minden programhoz tartozik legalbb egy kziknyv, angolul manual,
ebben a program hasznlatt, paramtereit rjk le. Ezt a parancsot teht mindenkppen jegyezzk meg! Hasznlata rviden: man parancsnv. Egy kziknyv-oldal
szabvnyos rszekbol pl fel: a parancs rvid lersa, sszes paramtere, esetleges hibi, ms hasonl tpus programokra val hivatkozsok, stb. A mannak termszetesen
sajt magnak is van ilyen sgja, mris prbljuk ki a man man parancsot! Nzzk
meg a fontosabb paramtereit:
-f parancsnv a whatis parancsnak felel meg, egy rvid sszegzst ad az adott programrl;

-k kulcssz az apropos parancsnak felel meg, az adott kulcsszhoz tartoz bejegyzseket keres a man oldalakon. Az apropos directory pldul kilistz
minden olyan parancsot, ami valamilyen mdon kapcsolatos a knyvtrakkal;
-K string a stringet az sszes(!) man oldalon keresi, emiatt nagyon sokig is tarthat a
folyamat.
A fentiekben olvashat . . . parancsnak felel meg elso re rdekesnek tunhet: ugyanazt a funkcit tbbfle paranccsal is meg lehet oldani? Hogy is van akkor ez a bizonyos szerszmoslda-modell? Nos, a whatis s az apropos igazndibl egy
shell-szkript vagyis hjprogram, ami knyelmi funkcikkal b o vti ki az alapparancsot,
de ha nagyon akarjuk, akkor persze mindent lehet. A legtbb hjprogram tmogatja
ugyanis az lnevek (alias) hasznlatt. Ezekkel megoldhat pldul az, hogy ha egy
parancsot ltalban mindig ugyanazokkal a paramterekkel hasznlunk, s mr unjuk a
sok gpelst, vagy hajlamosak vagyunk elfelejteni a megfelel o paramtert, akkor csak
ki kell tallnunk egy rvid azonostt, olyat, amilyen nven mg nincs semilyen utasts. Tegyk fel, hogy a mr emlegetett ls -ali helyett egyszerubbnek tunik a lls
begpelse. Nzzk, mi a teendo :
Eloszr prbljuk ki, nincs-e vletlenl egy ilyen nevu, ms clra szolgl program:
[root:~]>lls
bash: lls: command not found

Ha, mint ltszik, nincs, akkor a kvetkezo lps:


[root:~]>alias lls="ls -ali"

Nem kapunk ugyan semmilyen visszajelzst (megjegyezhetjk, hogy a legtbb helyen egy UNIX rendszer csak akkor zen vissza, ha baj van!), de adjuk ki az lls
parancsot, s lssunk csodt! Arrl, hogy milyen lneveink vannak belltva, a paramter nlkli alias tudst, ha pedig meg akarunk szntetni egy ilyen sszerendelst,
akkor az unalias aliasnv a kiadand utasts. Trjnk azonban vissza a segtsgkrshez!
A mannl jabb s sokszor pontosabb informcit ad az info parancsnv. A paramter nlkl kiadott info egy menrendszerben, gynevezett nodeokban, csompontokban jelenti meg a fontosabb tmkat, illetve parancsokat. Ezen bell billentyukombincikkal mozoghatunk:
space elore lapoz
backspace visszalapoz
n kvetkezo node
p elozo node
CTRL-L frissts
b legelejre ugrs
e legvgre ugrs
? help
q kilps
8

Az info kezelse elsore nem tl knnyu, ezrt ajnlatos beszerezni a pinfo


programot. Ez a lynx nevu, szveges web-bngszo hz nagyban hasonlt a navigls mdjt tekintve, teht a nylbillentyuk, az ENTER s a Backspace segtsgvel
majdnem mindent meg tudunk tallni.
Informcikat
olvashatunk
ezeken
kvl
a
/usr/doc
(esetleg
/usr/share/doc) knyvtrban is egyes programokrl. Itt is rdemes krlnzni, mert nhny programrl esetenknt minket jobban rdekl o informcikat
tallhatunk. Nagyon sok rendszerezett anyag tallhat a HOWTO alknyvtrban, ezek
az gynevezett HOGYANok egy-egy specilis terletet lelnek fel, s lpsr o l-lpsre
igyekeznek azokat elmagyarzni. Igazn hasznos olvasmnyok.
Most mr btran nekivghatunk az igazi munknak, mindig tudjuk hol a segtsg!
A kvetkezokben trgyalt parancsok mindegyiknek ajnlatos elolvasni a kziknyvt,
mert sok egyb lehetosget is rejtenek magukban.

1.4. Belps, kilps (s egyebek. . . )


A Linux tbbfelhasznls (multiuser) opercis rendszer. Mg ha otthoni, vagy hlzatba nem kapcsolt gpen hasznljuk is, hasznlatbavtele el o tt be kell lpnnk a
rendszerbe. Ez egy felhasznli azonost s a hozz tartoz jelsz megadsval trtnik. Ez a gp belltstl fggoen trtnhet szveges terminlon, vagy grafikus
felleten is. A belps kezdemnyezsre nem kell kln parancsot kiadnunk, de j
tudni, hogy a belptets oroszlnrszt a login program vgzi az el o bbi, mg az xdm
vagy kdm, stb. programok az utbbi esetben. Ha szveges terminlon lpnk be, akkor a belps elott mr lthat az issue, ami ltalban tartalmazza a gp fo bb adatait,
vagy olyan informcikat, amit a rendszergazda jnak lt kzlni a gpr o l (tartalma a
/etc/issue fjlban tallhat). Sikeres belps utn kapunk egy kszenlti jelet, s
olvashatjuk a nap zenett (message of the day).
Egy olyan rendszertol, amit sokan hasznlnak (foleg, ha fontos adatokat is trolnak
benne), joggal vrhat el, hogy az egyes felhasznlk csak azokat az adatokat rhessk el, amihez jogosultsguk van. Ennek alapfelttele, hogy mindenki rendelkezzen az
egyedi azonostjhoz tartoz jelszval, ami alapjn a rendszer els o dlegesen azonostani tudja o t. A jl megvlasztott s megfeleloen kezelt jelsz sok esetben elegendo
vdelmet nyjthat az illetktelenek ellen.
Amikor a Linux rendszeren kapunk egy felhasznli azonostt (account), ehhez
tartozik egy jelsz is, amit vagy a rendszergazda ad meg, vagy azonnal mi magunk.
Az elobbi esetben az elso bejelentkezsnl meg kell vltoztatnunk ezt olyanra, ami
megfelel a biztonsgi kvetelmnyeknek: megfelelo hosszsg (ltalban minimum
6 karakternek kell lennie ktelezo en, hossza a rgebbi rendszereken 8 karakterre volt
korltozva, a mai, n. shadow-passwordt hasznl rendszereken mr jval tbb is
lehet), vegyesen tartalmaz kis- s nagybetuket, szmokat (s o t, szinte mindegyik ltalban hasznlatos karaktert is), de azrt megjegyezheto legyen szmunkra. A legrosszabb
amit tehetnk, ha a felhasznli nevnkkel azonos jelszt vlasztunk!
A jelszvltst a passwd parancs kiadsval tehetjk meg. A program rkrdez a
rgi jelszavunkra, majd ktszer egyms utn be kell gpelnnk az jat. Attl fgg o en,
hogy a rendszergazda hogyan szablyozta, bizonyos id o kznknt meg kell vltoztatnunk, ltalban havonta.
Karakteres terminlunk hamar megtelhet szveggel. Ha ez zavar bennnket, a
clear parancs a megolds. Elofordulhat az is, hogy valamit nem gy csinltunk,
ahogy kellett volna (pldul egy binris fjlt akartunk szvegknt kilistzni, s min9

denfle zagyvasggal telt meg a kpernyo ), ekkor a reset parancs kiadsa segthet.
Lehet, hogy vakon kell begpelnnk, de ha sikerl, alapllapotba lltja vissza a beviteli
eszkznket.
Lehetosg van arra, hogy menet kzben vltsunk parancsrtelmez o t, csak a nevt
kell berni. Az ismertebbek a bash mellett a csh, tcsh, ash, zsh. A chsh utastssal ez a vltoztats hosszabb tvra szl.
Munknkat befejezve ki kell jelentkeznnk. A kilps az exit vagy logout
paranccsal, illetve a CTRL-D billentyukombincival is kezdemnyezhet o (ez utbbi
nem mindig s mindenhol mukdik).
Kiemelendo dolog, hogy RENDSZERGAZDAKNT CSAK AKKOR DOLGOZZUNK, HA ELENGEDHETETLENL SZKSGES! Ekkor is csak a leheto legkevesebb idot tltsk bejelentkezve.

1.5. Tjkozds a rendszerben


Sikerlt bejelentkeznnk? Akkor ideje, hogy megismerjk a munkakrnyezetnket.
Elsoknt a sajt adatainkat dertsk ki, hogy tisztban legynk azzal, milyen jogok
illetnek meg bennnket. A szenilits korai jelentkezse ellen a whoami parancs ajnlhat; ez kilistzza a felhasznli azonostnkat, valamint azt, melyik gpen, illetve
melyik terminlon jeletkeztnk be, ha mr elfelejtettk volna (akkor nagyon hasznos,
ha a kszenlti jel, a prompt nem mutatja ezeket az adatokat). Ehhez kapcsoldva sokszor lehet szksg arra, hogy megtudjuk, melyik knyvtrban is llunk ppen, ekkor
jn jl a pwd utasts, ami megadja azt a gykrknyvtrtl kiindulva.
Kvncsiak vagyunk arra, ki jelentkezett mg be a gpre velnk egytt, s az adott
pillanatban milyen programot futtat? Adjuk ki a nemesen egyszeru w parancsot! Mg
azt is lthatjuk, hogy honnan lpett be az illeto : helyi terminlrl vagy tvolrl. Paramterei kzl megemltheto a -s, ami rvid formban listzza ki az adatokat, illetve a
-f, ami nem listzza ki a FROM mezot, vagyis hogy honnan csatlakozik a felhasznl.
A tty begpelsvel azt tudhatjuk meg, hogy ppen melyik terminlt hasznljuk.
Ha konzolon dolgozunk, akkor ttyx a parancs vlasza, ahol x 1-t o l 6-ig terjed ltalban, a 7-es sorszm terminl mr a grafikus rendszer, az X Window szmra fenntartott. A konzolon a terminlok kztt az ALT s a terminl sorszmnak megfelel o
funkcibillentyu egyideju lenyomsval lehet vltani.
Felhasznli- s csoportazonostnk lekrdezsre az id szolgl. Egy plda a futtatsra:
[root:~]>id
uid=0(root) gid=0(root) groups=0(root)

Az elso mezo a user ID (felhasznli azonost, UID), nvvel s szmszeruen is


megadva. Majd a Group ID, a csoportazonost (GID) kvetkezik, vgl azoknak a
csoportoknak a felsorolsa, amelyeknek mg tagja az illeto . Ezek kzl csak a UID
kiratsra az id -u, a GID kiratsra az id -g hasznlhat. Ha mindezt nem
szmmal, hanem nvvel kirva akarjuk viszontltni, akkor mg a -n paramter is kell,
pldul:
[root:~]>id -un
root

A csoporttagsgok lekrdezsre a groups parancs kln is hasznlhat.

10

A kvncsi felhasznl az uname, hostname parancsokkal tudhat meg tbbet a


gprol. Az elobbi ad tbb informcit, szintn a -a paramterrel kombinlva. Az
utbbi a nevbol addan a gp nevt adja vissza. Szintn nzznk egy pldt:
[root:~]>uname -a
Linux janus.gimsz.sulinet.hu 2.2.16 #5 Thu May 17 11:48:49 CEST 2001 i586 unknown

vagyis: az opercis rendszer neve, a gp teljes neve, a kernel (rendszermag) verziszma, a kernel ksztsnek pontos dtuma, a gp hardvertpusa, s vgl a processzor tpusa (ez utbbit a fenti pldban nem sikerlt beazonostani). Ezek mindegyike kln-kln is lekrdezheto , pldul a -n opcival a domain-nv, a -m opcival
a hardvertpus.
A dtummal s idovel kapcsolatos adatok is fontosak lehetnek szmunkra, ekkor
adjuk ki a date parancsot, ez megad minden informcit. Hasznlatra nzznk nhny pldt!
A dtum- s idoadatok alkotrszei (v, h, nap, ra, perc stb.) mind kln-kln
kirathatak oly mdon, hogy mindegyiknek van egy azonost betujele, amit egy %
jellel bevezetve kell megadni, s gy egy gynevezett formtumsztringet kell tadni
paramterknt. Teht ha a mai dtumot akarjuk a szoksos formban ltni, rjuk be a
kvetkezot:
[root:~]>date +%Y.%m.%d
2001.05.29

rassuk ki most a napot betuvel, majd a pontos id o t:


[root:~]>date +%a,%r
Tue,11:59:07 AM

Mivel a gpen most az angol terleti belltsok rvnyesek, ezrt ltjuk a nap nevt
Tue-knt (kedd), s az AM utal arra, hogy dlelo tti idopontrl van sz. Termszetesen
24 rs formtumban is dolgozhatunk, ekkor a %T hasznland. rdekessgkppen
mg nzzk meg, hny msodperc telt el 1970. jan. 1. 0 ra ta:
[root:~]>date +%s
991130612

A rendszergazda ezeken fell a -s paramterrel tudja belltani a pontos dtumot s


idot. Itt kell emltst tenni a time parancsrl, ami ms clra szolgl, mint a DOSban.
Egszen pontosan megmrhetjk vele egy tetszo leges parancs vgrehajtsra fordtott
gpidot, csak be kell utna rni az adott program nevt, s a futtatshoz szksges
paramtereket. Az uptime pedig elsosorban arra ad vlaszt, mennyi ideje mukdik a
gp (egy Linux szervernl nem szokatlan a tbb szz nap sem).
Ezenkvl van mg egy naptrprogramunk is kznl, a cal. Egy adott vet paramterknt megadva szinte rknaptrknt is hasznlhat. Kt paramtert megadva az
elsot hnapnak tekinti, a msodikat vnek, teht ha csak egy adott hnap rdekel bennnket rszletesen, akkor nem kell vgigbogarszni a teljes vet. Feladatknt keressk
meg pldul a szletsnapunkat, s nzzk meg, milyen napra esett.
Alapveto feladat annak kidertse is, milyen fjlokat tallunk az adott knyvtron
bell. A UNIXok erre szolgl parancsa az ls, de a DOS zord vilgbl rkez o k
tallnak egy rgi ismerost, mivel a dir is hasznlhat, de azrt persze nem teljesen
ugyangy. Mr tallkozhattunk az ls rengeteg paramtervel, nzznk egy pr olyat,
amit taln illik megjegyezni:
-a mindent mg a rejtett fjlokat is listz;
11

-l long, azaz hossz formtumban listz. Taln nem minden tanulsg nlkli egy
ilyen lista:
[root:/bin]>ls -l
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
lrwxrwxrwx 1 root

a*
root
2712 Oct 3 2000
root 65340 Oct 3 2000
root 263144 Oct 3 2000
root
4 Apr 29 14:12

arch*
ash*
ash.static*
awk -> gawk*

Mindjrt a parancs kiadsnl lthat, hogy a DOSban megszokott helyettest o


karakaterek kzl a * itt is alkalmazhat, itt is egyidejuleg tbb karakter helyettestsre, de nem tkletesen azonos az ottanival! Mg DOS alatt az els o *
utn mr nem trodik a kirtkelo program a sor tbbi rszvel. Itt igen, teht
ha olyan fjlneveket akarunk kilistzni, amikben az elso karakter a, majd valahol van benne ezutn b, s mg kso bb c is, akkor az a*b*c* mintt kell
megadnunk.
A lista elso oszlopa a fjl hozzfrsi jogait jelenti, a kvetkezo oszlop (ami itt
mindenhol 1-et tartalmaz) a lncolsi szm, a kvetkezo kt oszlop a fjl tulajdonosnak s annak csoportjnak neve, majd a fjlmret, a legutbbi mdosts
idopontja s vgl a nv kvetkezik. A legutols sorban egy szimbolikus link lthat. Ezekre a jrszt ismeretlen fogalmakra termszetesen vissza fogunk trni.
-i a fjlok gynevezett inode-szmt adja meg, ez az llomnynak a httrtron val
elhelyezkedsvel kapcsolatos adat.
-h a mreteket knnyebben rtelmezheto en, k (kilobyte), M (megabyte) uttaggal rja
ki (s nem sgt ad, arra a --help szolgl).
-1 egy oszlopba egyms al rja ki az adatokat. Itt is lthat az, hogy a knyvtrak
neve utn megjelenti a / jelet, vagy hogy a vgrehajthat fjlok utn * ll, teht
valamilyen mdon klnbsget tudunk tenni gy is a nevek kztt. Akkor pedig
foleg, ha a --color paramtert hasznljuk, mert ha megfelelo terminlunk van,
akkor sznesben lthatjuk a parancs kimenett.

1.6. Szvegszerkesztok
Alapveto fontossgak a mindennapi munka sorn az egyszeru szveges fjlok. Nemcsak abban kapnak szerepet, hogy a kznapi rtelemben vett szveges informcit (leveleket, lersokat) troljanak, hanem a Linuxban mint konfigurcis llomnyok is
igen fontosak. Szveges adatok keletkezhetnek a parancsok mukdse sorn is. A
szveg szerkesztsre szolgl programok teht nagyon fontosak, vegynk sorra nhnyat.
Aki a Microsoft Wordn nevelkedett, az a ko korszakban rezheti magt az ed prog mg abbl az idobol maradt rnk, amikor nemhogy grafikus felletek
ram lttn. O
nem voltak, de mg olyan szerkeszto k sem, amik a szveget megjelentik a teljes kpernyon. Az ed sorszerkeszto: egyszerre a szveg egy sort kpes feldolgozni. Ma mr
inkbb csak hjprogramokban val hasznlatra lehet j.
Szintn o skvlet, de nagyon jl tartja magt a UNIXos szvegszerkeszt o k nagy
regje, a vi. Sokan azt mondjk, hogy br elso re o is rmszto, de a tudsa mg ma is
lepipl sok ltvnyosabb programot. Hrom zemmdja van: a parancs md, a beviteli md s az ex-zemmd. Indtsakor a parancsmdba kerlnk, ahol a nevb o l is
12

kvetkezoen csak parancsokat tudunk kiadni. Ilyen pldul a listzs, keress, csere,
mozgs a szvegben. A parancsmdba brmikor tvlthatunk az ESC billentyu lenyomsval. Szveget berni csak beviteli mdban tudunk, ezt az Insert- billentyuvel,
vagy az a, i, o billentyukkel is kezdemnyezhetjk. Az ex-zemmdban pedig a
ments vagy a kilps valsthat meg tbbek kztt, elrse a parancsmdbl trtnik. Lssunk egy egyszeru pldt. rjunk egy rvid szveget az uj nevu fjlba! Adjuk
ki a vi uj parancsot, majd nyomjunk Insert-et, s gpeljnk be pr sort. A mg
res sorok elott ilyenkor a ~ jel lthat, alul pedig az INSERT felirat olvashat. Bevitel kzben a mshol megszokott mdon a nylbillentyuk, a Home s End, Backspace s
a Delete is hasznlhat. Lpjnk vissza parancsmdba az ESC billentyut lenyomva, s
gpeljk be a kvetkezo hrom karaktert: :wq. A kettospont belptet az ex-mdba, a
w hatsra a fjl kirdik a lemezre, s a q kilptet a programbl (ha gy akarunk kilpni, hogy nem kell ments, a w helyett egy felkiltjelet hasznljunk). Akinek kedve
s ideje van, rdemes elmlyedni a program rejtelmeiben, nem is hinnnk, mennyi
mindenre j!
Knyelmesebben hasznlhat a joe program, ami mr valdi teljes kperny o s
szerkeszto. A legtbb funkci a CTRL s valamelyik msik billentyu egyideju lenyomsval rheto el. Mris rdemes kiadni a CTRL-K-H kombincit (teht tartsuk
lenyomva a CTRL-t, s nyomjunk K-t majd H-t). Ez a sgt jelenti meg, ami alapjn mr el tudunk boldogulni. Itt mindenhol a ^ jel jelenti a CTRL-t. Hasznlhatunk
blokkmuveleteket is, ami azt jelenti, hogy a szveg bizonyos rszeit ki tudjuk jellni,
s t tudjuk msolni vagy mozgatni mint egy egysget ms helyre. A CTRL-K-B
a kijells kezdett, a CTRL-K-K a vgt jelenti, ezek utn a msols a CTRL-K-C, a
mozgats a CTRL-K-M, a trls pedig a CTRL-K-Y kombincikkal valsthat meg.
A jed mr menvezrelt, emiatt mg knnyebben hasznlhat. A menk a mshol mr megszokott mdon, az ALT s a menpont nevben kiemelten szerepl o betu
lenyomsval nyithatk le, de az F10, majd az Enter lenyomsval is. A program kpes
egyszerre tbb fjl szerkesztsre, ezeket n. pufferekben trolja, s a Buffers menpont alatt rhetjk el o ket. A Windows menponton bell akr tbb rszre (ablakra)
is oszthatjuk a kpernyot. Megoldhat az is, hogy a programbl val kilps nlkl
vgrehajtassunk hjparancsokat (System -> Shell command), ezek eredmnye bekerl
egy j pufferbe, s ott tovbb szerkesztheto vagy tmsolhat msik szvegbe is. Az
Edit menben a Begin Region parancs kijelli, a Copy region kimsolja, a Paste pedig
beilleszti az adott rszt. Az 1.1. kpen egy Mandrake 7.2-es verzin futtatott pldny
lthat.
Aki sokat dolgozott a Norton Commander szvegszerkeszto jvel, annak ismeros
lesz az mcedit. A hasznlatos billentyukombincik megegyeznek az NC-beliekkel,
az F9 hatsra megjeleno mensorban azonban mg tovbbi hasznos dolgokat is felfedezhetnk. Szintn knnyu megszokni a pico hasznlatt, ami a pine levelez o program szvegszerkesztoje, de kln is hasznlhat. Ebben is nagy szerephez jut a CTRL
billentyu, a kpernyo aljn olvashat sg segtsgvel knnyen birtokba vehet o .
Emltst kell tenni vgl, de nem utolssorban az emacs programrl, ami tulajdonkppen nem is csak egy szvegszerkeszto mivel programozhat, s ezltal egy nagy tuds eszkz. Kezdoknek nehz vele bnni, de rdemes megtanulni a hasznlatt, f o leg,
ha programfejlesztsre adjuk a fejnket.

13

1.1. bra. A jed mukds kzben

1.7. A rendszer mukdst

befolysol parancsok
Elvrhat, hogy egy tbb felhasznlt kiszolgl rendszer biztostson egy jl hasznlhat alapbelltst, munkakrnyezetet, amit aztn a felhasznlk teljesen egynire
szabhatnak t, ha gy ltjk jnak. A Linux ebbo l a szempontbl is mintaszeru. Taln
kicsit tl sok mindent is be lehet lltani ahhoz, hogy egy ido utn az ember elvesszen
a sok lehetosg kztt, de ez is egy j jtk. Nhny dologgal azonban mindenkppen
kell foglalkozni, mert annyira alapveto ek a gp mukdtetsre nzve. Nmelyeket a
rendszergazdnak kell megcsinlnia, ha nem akarja a felhasznlk rosszallst, de az
itt felsoroltak zmvel a mezei felhasznl is biztosan tallkozik.
Mindjrt a parancsok s egyb adatok bevitelnl szksg van a billentyuzetkioszts megfelelo belltsra. Az alaprtelmezettol eltro kioszts betltse a loadkeys
paranccsal trtnik. Paramter nlkl az alaprtelmezettet kapjuk, ha pedig megadunk
egy orszgnvre utal rvidtst, akkor az annak megfelel o t. A hu a hagyomnyos magyar QWERTZ, a hu101 az angol billentyuzetekhez jobban illeszked o , az us pedig az
amerikai angol kioszts rvidtse. So t, teljesen egyni kiosztst is kszthetnk, vagy
bizonyos billentyukombincikhoz parancsokat rendelhetnk. Nzzk, hogyan!
Elsoknt a dumpkeys parancsot kell hasznlnunk. Ez alaprtelmezs szerint a
kpernyore rja ki az aktulis billentyu-megfeleltetseket. Minden lenyomott billentyu egy kdot generl, ezt a showkey programmal meg is nzhetjk (a programbl
mshogy nem lehet kilpni, mint 10 msodperc vrakozssal). Ezekhez a kdokhoz
trsulnak a megjeleno karakterek, figyelembevve a vltbillentyuket is. Ezen kell teht vltoztatnunk, pldnak okrt szeretnnk, ha az F11 funkcibillentyu lenyomsra
lefutna az uname -a parancs. Ehhez a dumpkeys parancs kimenett t kell irnytanunk egy fjlba:

14

[root:~]>dumpkeys > sajat.bill

majd pedig az gy keletkezett sajat.bill llomnyban kell megkeresni azt a rszt, ami
valahogy gy kezdodik:
string F11 =

s az idzojelek kz berni a parancsot a kvetkezo mdon:


string F11 = uname -a\n

A \n karaktersorozat hatsra nem kell a vgn majd az ENTERt lenyomni, mert


azt is belefoglaltuk a kdba. Utols lpsknt ezt a fjlt adjuk meg a loadkeys
paramtereknt, s mr ki is prblhatjuk, mit vgeztnk!
A jobb oldali numerikus billentyuzetrsz fltti LED-ek vezrlsre is van program, a setleds. Kapcsoljuk be pldul a CAPS LOCK jelzo jt, a NUM LOCK-ot
pedig ki :
[root:~]>setleds +caps -num

A kpernyon megjeleno betuk kpe is fontos lehet szmunkra. Szveges zemmdban is tbbfle lehetosgnk van, dolgozhatunk a hagyomnyos 80 oszlopos s 25
soros terleten, de a betuk mretnek vltoztatsval tgasabb tehetjk a kperny o t.
Igaz, ekkor jobban kell eroltetni a szemnket. A kpernyo n megjeleno betuk gynevezett font fjlokban troldnak a gpnkn, s a consolechars parancs segtsgvel
lehet kzttk vltani. A -f paramter utn kell megadnunk egy ilyen font nevt.
Mivel biztosan szeretnnk magyar kezetes karaktereket is, rszestsk el o nyben azokat a fontneveket, amelyek lat-tal kezdo dnek, teht latin 1-es vagy 2-es kdolsak.
Prbljuk ki pldul:
[root:~]>consolechars -f lat1u-12.psf

A fontok helye nem egysges, kezdjk a keresst a /usr/lib/kbd knyvtr


krnykn, ha Red Hat vagy hozz hasonl disztribcink van. A consolefonts
knyvtrat kell megtallnunk, s ekkor prblkozhatunk tbbfle kinzettel is. A fontok neveit, a pldbl is lthatan, nem kell vgig berni.
Az egr hasznlhat szveges mdban is, a rendszergazdnak kell jl belltania,
a gpm nevu httrprogram (dmon) kezeli. Megoldhat vele tbbek kztt szvegek
kijellse s tvitele ms terminlra: egyszeruen ki kell jellni lenyomott bal gombbal
a kvnt szveget, majd tvltani a clterletre, s ott a jobb egrgommbal kattintva be
lehet illeszteni (az is lehet, hogy 3 gombos egr esetn mshogy mukdik, olvassuk el
a gpm manuljt).
A DOS alatt sem ismeretlen fogalom a krnyezeti vltoz. Ez egy nvvel azonostott szveges informci, egy vagy tbb program megfelel o futtatshoz tartalmaz
adatokat. Leggyakrabban az elrsi tvonalak vagy a kszenlti jel belltsnl tallkozunk velk a DOS alatt, mert a Linuxban jval nagyobb szerepet kapnak. Err o l
mindjrt meggyozodhetnk, ha (innentol vgig bash hjprogramot felttelezve) kiadjuk a set parancsot. Rengeteg, jrszt nagybetuvel kezd o do vltoznevet ltunk
. . . vagy nem? Akkor mris meg kell emlteni a konzolnak ama j tulajdonsgt, amivel a szveges kpernyo tartalmt visszagrdthetjk, a gyorsan elszalad szveg
jra lthatv teheto: nyomjuk le a SHIFT-Page Up billentyukombincit nhnyszor!
Amg videokrtynk memrija brja, trolja az elo zo kpernyotartalmakat. A SHIFTPage Dn persze lefel lapoz. gy mr biztosan ltjuk a minket rdekl o informcit.
Nzznk nhnyat azok kzl, amit biztosan mris tudunk rtelmezni:
15

HOME a felhasznl alapknyvtra;


HOSTNAME a gp Internetes neve;
HISTFILE, HISTSIZE a kiadott parancsainkat rgzto fjl helye s maximlis mrete (ha nem gpelnk sokat, mg a nhny httel ezelo tt kiadott utastsaink is
megtallhatak itt);
KEYTABLE a billentyuzetkioszts rvid jele (nem minden disztribciban van meg);
PATH a vgrehajthat fjlok elrsi tvonalai;
PS1 az elsodleges kszenlti jel formtuma;
SHELL az aktulis parancsrtelmezo ;
TERM a terminl tpusa;
UID, USERNAME (vagy USER) felhasznli azonost kd s nv.
Lthat teht, hogy nagyon sok krnyezeti vltoznk van, de ezeken fell mg
brmikor hozhatunk ltre jabbakat:
[root:~]>export valami="semmi"
[root:~]>echo $valami
semmi

A pldbl kt dolog derl ki: az export vltoznv=rtk segtsgvel


lehet ltrehozni, az echo $vltoznv segtsgvel pedig kiratni a vltozt. Az
echo parancs mg elo fog kerlni, mr most ltszik a szerepe: szvegek, szveges
vltozk kiratsa. Azt, hogy most egy krnyezeti vltozt kell kirnia, a $ jel jelzi.
Nzzk meg, mit fog csinlni a kvetkezo parancs:
[root:~]>export valami=

Ellenorizve az elobbi mdon, a vltoznk rtke most mr tnyleg a semmi, pontosabban az res sztring, de azrt a neve mg szerepel a tbbi vltoz kztt.
Tbbszr emlegettk mr a kszenlti jelet vagy promptot, ami nem ms, mint egy
rvid szveges zenet, melyben a gp kzli, hogy kszen ll parancsaink fogadsra,
illetve tjkoztat adatokat nyjt. Kzvetlenl utna ott villog a kurzor.
Gyakorlskppen a kszenlti jelet lltsuk be a pldkban lthat formtumra, teht mutassa a felhasznli nevnket s az aktulis knyvtrat szgletes zrjelek kzt,
kettosponttal elvlasztva, de most kvesse egy # jel:
[root:~]>export PS1=[\u:\w]#
[root:~]#

A lehetsges belltsokrl a bash kziknyv-oldalain olvashatunk.

1.8. llomnykezelo parancsok


Adatainkat a szmtgpen valamilyen rendszer szerint kell trolnunk, hogy ks o bb is
fel tudjuk o ket hasznlni. Emltettk mr, hogy a Linux az adatllomnyokat, a fjlokat
egy knyvtrrendszerben trolja, ennek kiindulpontja a gykrknyvtr (root directory). Az egyes adathordozkon (merev- s hajlkonylemez, CD-ROM, stb.) tallhat
adatokat a rendszer ebbe illeszti be, ez a folyamat (idegen szval mountols, magyarul
16

befuzs vagy beilleszts) bizonyos adathordozknl mr a rendszer indtsakor megtrtnik, de a cserlheto tpusaknl menet kzben kell ezt elvgeznnk. A kvetkez o
fejezetben mg rszletesebben is visszatrnk erre a tmra.
Arrl is volt sz, hogy a UNIX (gy a Linux) is gyakorlatilag mindent fjlknt
kezel. Szmra egy fjl olyan adattrolsi eszkz, amibe byte-ok formjban adatot tudunk berni, illetve belole kiolvasni. Ennek a vgletekig leegyszerustett modellnek a
kvetkezetes alkalmazsval dolgozik a rendszer. Ez magyarzza azt, amir o l mr trtnt emlts: fjlknt kell kezelnnk egy binris kdot tartalmaz programot, egy kpvagy szvegfjlt, de fjlknt lehet felfogni magt a knyvtrat is, s o t, azt a lemezpartcit is, amin a gykrknyvtr elhelyezkedik. Ennek megfelel o en tbb tpus fjllal
dolgozhatunk:
Norml fjl kznsges, adatot tartalmaz llomny.
Knyvtr olyan fjl, amiben tovbbi llomnyok troldnak.
Link egy, a Windows 9x parancsikonjaihoz hasonl tpus, kt fajtja is van: hard
link s soft (vagy szimbolikus) link.
Karakteres eszkz (character device) olyan specilis fjl, amin keresztl valamilyen hardvereszkzhz frhetnk hozz mint fjlhoz; tipikus pldja valamilyen
soros port vagy a PS/2 csatlakoz.
Blokk eszkz (block device) az elobbihez hasonlan specilis fjl, amivel olyan
eszkzket tudunk kezelni, amik egyszerre nagyobb mennyisgu adatot tudnak
tvinni, plda erre a merevlemez (ez utbbi kt fjltpust az mknod paranccsal
mi magunk is ltrehozhatjuk).
Csovezetk (named pipe) egy gynevezett first-in-first-out (FIFO) tpus fjl; egyszerre tbb program rhatja s olvashatja a tartalmt, gy adatokat tudnak cserlni
egyms kztt. Az mkfifo pipenv paranccsal hozhat ltre.
Socket elsosorban a hlzati kommunikci sorn ltrejvo fjl.
A mindennapi munka sorn ltalban az elso hrom tpussal van dolgunk, nzzk
t a kezelskkel kapcsolatos parancsokat!

1.9. A knyvtrkezels parancsai


A Linux knyvtrfja elso rnzsre sokkal bonyolultabb, kiterjedtebb, mint pldul a
DOS. Idovel azonban rjhetnk, hogy mindennek megvan a jl meghatrozott helye,
ezt radsul egy File Hierarchy Standard nevu szabvny igyekszik is rgzteni. Ennek
ellenre, mivel nagyon sok UNIX verzi van, s a Linux disztribcik is eltrhetnek
egymstl, csak a fobb szabvnyos knyvtrakat s tartalmukat tekintsk t:
/boot a rendszerindtshoz szksges llomnyok, betltsvezrl o k adatait tartalmazza.
/bin azokat a binris programokat talljuk itt, amikre a betlts korai fzisban mr
szksg van, s ksobb is alapvetoek.
/dev a hardvereszkzkhz hozzfrst biztost karakteres s blokk eszkzk trhelye.
17

/etc a konfigurcis llomnyok kzponti lelo helye.


/home a felhasznlk sajt knyvtrainak bejrati pontja.
/lib a trgykdknyvtrak helye. Ezek nagyjbl a Windowsbl ismert DLL fjlokhoz
hasonl szerepet tltenek be.
/mnt a cserlheto vagy ksobb beillesztett meghajtk tartalma tallhat meg ennek
alknyvtraiban, pldul /mnt/cdrom.
/proc klnleges tartalm knyvtr, benne a mukdo rendszerrol ltunk informcikat.
/root a rendszergazda fohadiszllsa.
/sbin ltalban csak a rendszergazda ltal futtathat programok.
/tmp tmeneti fjlok knyvtra.
/usr felhasznli programok fo trhza, tovbbi nagyon kiterjedt alknyvtrrendszere
van.
/var a futs kzben keletkezett llomnyok (pldul naplfjlok) helye.
A /usr alatti fobb alknyvtrak kzl meg kell emlteni a local-t, amiben viszontltjuk az sszes fontosabb knyvtrnevet, elso sorban helyi fejlesztsu s/vagy teleptsu programok s azok minden adata kerl ide. Az X11R6 alatt tallhat a grafikus
fellet, az X Window rendszer futtatshoz szksges llomnyok szinte minden eleme.
A share alknyvtrai tartalmazzk a tbb program szmra is felhasznlhat adatokat, pldul ikonokat, betufontokat. A doc alknyvtrrl s annak hasznos tartalmrl
mr esett sz. Az src tartalmazza a forrsnyelven meglvo programokat, amiket mg
le kell fordtani gpi kdra, tbbek kztt itt a helye a Linux kernel, vagyis rendszermag forrsnak is. Ennek segtsgvel az opercis rendszer alapvet o , kzponti rszt
(ami tulajdonkppen maga a Linux, de az elnevezs a tbbi programmal egytt maradt
rajta) jrafordthatjuk a gpnknek leginkbb megfelelo belltsokkal. Ezzel gyorsabb s stabilabb, nem utolssorban biztonsgosabb is tehetjk munkaeszkznket.
Vgl, de nem utolssorban a bin alknyvtr tartalmazza a felhasznl ltal elrhet o
programok zmt.
Ebben a rendszerben valahogy naviglnunk kell, ennek alapparancsa a cd. Ha
csak nmagban adjuk ki, akkor is rtelmes: a felhasznli knyvtrunkba rpt vissza
bennnket, ahol belpskor is landolunk. A home knyvtrunk nevt nem kell mindig
teljesen kirni, elg egy ~ jellel rvidteni (egybknt a pldkban lthat kszenlti
jelben is ezt fedezhetjk fel). Knyvtrnevet megadva paramterknt belptet oda, ez
megadhat abszolt mdon, de relatvan is. Teht ha mondjuk a /usr/doc knyvtrbl akarok eljutni a /etc knyvtrba, akkor ktflekppen is megtehetem:
[root:/usr/doc]>cd /etc

vagy:
[root:/usr/doc]>cd ../../etc

18

az eredmny ugyanaz lesz. Arra oda kell figyelnnk, hogy a slampos cd.. parancskiads itt hibhoz vezet!
Unjuk a sok gpelst? Vegyk ignybe a bash azon j tulajdonsgt, hogy ki
tudja helyettnk egszteni azokat a parancs- vagy fjlneveket, amelyek egyrtelmuek.
Tegyk fel, hogy a /tmp alatt vagyunk, s szeretnnk belpni a /usr/local/src
knyvtrba. Kezdjk el begpelni a parancsot:
cd /u de itt lljunk meg, s nyomjuk le a tabultor billentyut! Ha a fo knyvtrban nincs tbb u betuvel kezdo do alknyvtr, akkor mr ki is egszl a parancssor
gy: cd /usr/. Ha most ismt tabultort nyomunk, az elso alkalommal nem trtnik
semmi ltvnyos, esetleg egy hangjelzst hallunk, de msodikra felsorolja az sszes
lehetosget, amibol vlasztani lehet (ha tl sok lenne, akkor rkrdez, hogy mindet
kilistzza-e). Most nyomjunk egy l betut, jra TABot, ekkor mr kevesebb o l kell vlasztani, s gy tovbb haladva rtelemszeruen, gyorsabban be tudjuk fejezni a dolgot.
Akkor klnsen gyors ez a mdszer, ha csak egyetlen alternatva van. Hosszabb nevu
parancsok kiadst is fel lehet gyorstani gy, pldul a mr ismert hostname parancsot a ho-TAB-n-TAB billentyuletsekkel is elo lehet varzsolni.
Meglvo knyvtrakban mr otthonosan mozgunk, hozzunk ltre mi is jakat.
A mkdir knyvtrnv parancs lesz ebben segtsgnkre. Vele, valamint a
mkdirhier paranccsal sem csak egyetlen knyvtrat, hanem egsz alknyvtrrendszert ltre tudunk hozni. Nzzk, hogyan:
[root:~]>mkdir -p egy ketto harom/a/magyar/igazsag ; ls -R egy ketto harom
egy:
harom/:
a
harom/a:
magyar
harom/a/magyar:
igazsag
harom/a/magyar/igazsag:
ketto:

Lthat, hogy tbb egyms utn kvetkezo parancs pontosvesszovel elvlasztva


egymstl, egy sorban is kiadhat. Magyarzatknt mg annyit, hogy az mkdir akkor hozza ltre az alknyvtrakat is, ha a -p paramtert is megadjuk, viszont egyszerre
tbb knyvtrnevet is felsorolhatunk. Az elleno rzskppen kiadott ls -R pedig rekurzvan, vagyis az alknyvtrakba is belpve listzza ki azok tartalmt, minden alknyvtrnl kettospont utn sorolja fel a neveket.
A knyvtrak trlsre az rmdir hasznlhat, a knyvtrnak resnek kell lennie.
Ha azonban egy alknyvtr-g mr res, a hierarchiban legalsval kezdve ki lehet
trlni, csak a -p paramter kell. Az elo bbi pldra visszatrve:
[root:~]>rmdir -p harom/a/magyar/igazsag

hatsra az egsz g trlodik, mivel egyenknt mindegyik res.


A fjlok teljes elrsi tvonalval kapcsolatos kt parancs a basename s a
dirname. Az elobbi a paramterben megadott teljes tvonalbl a knyvtrat jelento rszt hagyja el, mg a msodik ppen ezt hagyja meg. Pldaknt nzzk a
/usr/bin/ar fjlt:
[root:~]>basename /usr/bin/ar
ar
[root:~]>dirname /usr/bin/ar
/usr/bin

19

Itt ismt alkalmazhatunk egy kis gpelst megtakart trkkt: a hjprogramunk


kpes arra, hogy trolja az elozoleg kiadott parancsainkat. A FEL s a LE billentyukkel lpegethetnk ezek kztt, teht az elo bbi esetben a msodik parancs bersa elo tt
csak egy FEL billentyut kell nyomni, majd a base szvegrszt tjavtani dir-re. Termszetesen egy soron bell hasznlhat a HOME s az END billentyu is.

1.10. Fjlkezelo parancsok


Fjlokkal tbb mindent kell csinlnunk. Elo szr is, ha kvncsiak vagyunk egy adatllomny tpusra, mivel a kiterjesztsbo l nem tudunk esetleg rjnni, adjuk ki a
file filenv parancsot! A program egy magic nevu fjl adatait veti ssze az
adott llomny elejn tallhat adatokkal, s ez alapjn adja meg a tpust. Ezt a fjlt mi
magunk is ki tudjuk egszteni jabbakkal, ha ismerjk, milyen byte-sorozat jellemz o
a felvenni kvnt fjltpus elejre. Prbljuk ki nhnyszor:
[root:~]>file /usr/bin/as
/usr/bin/as: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped

[root:~]>file /etc/XF86Config
/etc/XF86Config: ASCII text

Az elso esetben egy programot adtunk meg, mgpedig egy assembler fordtprogramot. Az adatokbl kiderl, hogy gynevezett ELF tpus binris (ez a Linux jelenleg elfogadott tpusa, kezdetben az a.out formtumot hasznlta), 386-os processzort
ignyel. Dinamikusan szerkesztett, megosztott trgykdknyvtrakat hasznl, ami azt
jelenti, hogy nem minden funkcija van fixen a programba fordtva, hanem bizonyos
ismtlodo vagy ms programokban is elo fordul kdrszleteket ezekbo l a lib-ekbol
vesz futs kzben. Ezzel a programok mrett s a fejlesztskre sznt id o t is cskkenteni lehet, nem szlva a mindig rtkes memrirl s a trhelyr o l. A stripped
jelentse pedig az, hogy a hibakeresshez szksges, jl mukd o program esetn felesleges kdrszek hinyoznak belo le. A msodik plda ennl jval egyszerubb: sima
ASCII szveges llomny.
Maradjunk ez utbbinl, s nzzk meg, mit tartalmaz a fjl. Tbb mdon is megtehetjk ezt. Vegyk eloszr elo a cat parancsot! Ennek elsodleges clja tbb fjl
sszefuzse (conCATenate) volt, de sokszor inkbb arra hasznljuk, hogy fjlok tartalmt a kpernyore rassuk vele. Vigyzzunk, ha binris fjlt adunk meg paramterl,
azt is kirja, de mivel ilyenekben nem csak szveges, hanem vezrl o karakterek is elofordulhatnak, sok jra ne szmtsunk!
Hosszabb szvegek gyorsan elfutnak a kpernyo rol, sokszor a mr ismert SHIFTPage Up sem segt, ilyenkor jn jl a more vagy a less. Az elo bbi ismeros a DOSbl
is, ugyangy mukdik: vagy egy szuro karakterrel (|) egy msik program kimenett
adjuk az o bemenetre, vagy csak egyszeruen megadunk neki egy paramtert:
[root:~]>cat /etc/XF86Config | more
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
...
--More--(19%)

Az als sorban lthat, hogy mg nem mutatja az egsz fjlt, egy billentyu letsre
hozza kvetkezo kpernyooldalt.
20

A less (br neve nem ezt sugallja, ugyanis kevesebb a jelentse) tbbet tud
ennl. Legfontosabb klnbsg, hogy visszafel is lehet vele a szvegben lapozni, de
ezen fell mg keresni is tud adott szvegdarabot. Futsa kzben egy / jelet tve meg
kell adnunk a keresendo szveget, s mr r is ll az elso tallatra. Az n billentyuvel az
esetleges kvetkezo elofordulsokat is gyorsan megkereshetjk. A kilps belo le a q
billentyuvel trtnik, de elotte mg egy h lenyomsa is tancsos, hogy vgignzhessk,
mi mindenre kpes.
Egy szvegbol gyakran csak az elso pr sor, vagy ppensggel csak a vge rdekel
bennnket. Erre az esetre clszeru szerszm a head illetve a tail. Kiprblsukhoz
ksztsnk egy pr soros szveget, mgpedig meglepo mdon a cat felhasznlsval!
Ugyanis ez gy mukdik, hogy ha nem adunk meg kiratni valt, akkor gy veszi, hogy
az alaprtelmezett bemenetrol (STDIN) fog rkezni a jelsorozat, s ez a billentyuzet
jelen esetben. A kimenettel is buvszkednk, mert azt nem a kperny o re (STDOUT)
kldjk, hanem tirnytjuk egy fjlba. Teht:
[root:~]>cat > proba.txt
Boci, boci tarka
Se fle
Se farka
Oda megynk lakni
Ahol tejet kapni!

Ha kzben hibzunk, s esetleg a visszatrls nem mukdik, prbljuk ki a CTRLH kombincit, ez a Backspace funkcijt ltja el. Amikor vgeztnk a gpelssel,
nyomjunk az utols res sorban CTRL-D-t, ez a legtbb parancs szmra az adatbevitel
vgt jelenti. Most lssuk, mi a szveg elso kt sora:
[root:~]>head -2 proba.txt
Boci, boci tarka
Se fle

majd pedig nzzk meg a vgt:


[root:~]>tail proba.txt
Boci, boci tarka
Se fle
Se farka
Oda megynk lakni
Ahol tejet kapni!

Mivel alaprtelmezs szerint mindkt program 10-10 sornyi adatot r ki a szvegbol, s prbnk ennl rvidebb, ezrt teljes egszben viszontltjuk.
A tail egy nagyon rdekes trkkre is mdot ad. Olyan llomnyok vgt is kpes figyelni, amelyek folyamatosan bo vlnek. Ilyenek pldul a naplfjlok, amikbo l a
/var/log knyvtr tartalmaz jnhnyat. Rendszergazdaknt ezekhez biztosan van
hozzfrsnk, ha nincs, a kiprblshoz pldul a wget nevu Internetes letlt o program naplfjlja is megfelelo. Feltve, hogy a naplfjl neve naplo.txt, adjuk ki a
tail -f naplo.txt parancsot! Ekkor azt ltjuk, mintha a fjl eleve a kperny o re
rdna, teht menet kzben bele tudunk nzni a folyamatba.
Az elobbiekben a cat parancsnl mr lttuk, hogy lehet szvegszerkeszt o nlkl
is ltrehozni fjlt. Nha szksg van arra is, hogy 0 byte mretu adatllomnyt ksztsnk. A touch parancs kivlan alkalmas erre a clra. Eredeti funkcija az, hogy
egy fjl legutbbi hozzfrsi s mdostsi dtumt az ppen aktulis id o pontra vltoztassa meg. Azonban ha a megadott fjl mg nem ltezik, akkor ltrehozza azt, a fent
emltett mdon.

21

Ideje kicsit bovebben szlni a mr emltett linkekro l. Alkalmazsuk fo clja a helymegtakarts, hiszen egy linkkel tulajdonkppen ugyanarra a fizikai adatllomnyra tudunk hivatkozni tbb nven s tbb helyro l. A hard link vagy kemny link segtsgvel
ugyanazon a fjlrendszeren bell tudjuk ezt megtenni, s csak fjlokra mukdik. A soft
link, vagy lgy link illetve szimbolikus link ennl rugalmasabb, tbb fjlrendszeren t
is l, s knyvtrakra is alkalmazhat. Lssuk, hogyan hasznljuk o ket!
Ksztsnk egy knyvtrat linkproba nven, lpjnk bele, majd gpeljk be
kvetkezoket:
[root:~/linkproba]>touch csingi.link
[root:~/linkproba]>ls -l
total 0
-rw-r--r-1 root
root

0 Jul

8 15:38 csingi.link

Ltrejtt teht a 0 byte-os fjl, a hozzfrsi adatai utn kvetkez o msodik oszlopban egy 1-est ltunk. Hasznljuk most a link-kszts parancst, az ln-t, s nzzk
meg, mi trtnik:
[root:~/linkproba]>ln
[root:~/linkproba]>ls
total 0
20071 -rw-r--r-20071 -rw-r--r--

csingi.link ezuj.link
-li
2 root
2 root

root
root

0 Jul
0 Jul

8 15:38 csingi.link
8 15:38 ezuj.link

Elemezzk a ltottakat: az ln hasznlatakor elo szr a rgi, mr ltezo llomny


nevt kell megadni, majd a ksztendo linkt. Ez itt most hard link-knt jtt ltre, teht
gyakorlatilag ugyanazt a fizikai adatllomnyt illethetjk most mr kt nvvel is. Hogy
valban ugyanarrl a fjlrl van sz, azt ltjuk abbl, hogy minden adata tkletesen
megegyezik: nemcsak a mret, a dtum s ido , de mg az n. inode-szm is, ami azt
jelenti, hogy a merevlemezen ugyanott tallhat a kt fjl. Ez pedig csak gy lehet, ha
azonosak. Ami mg feltuno, hogy a fent emltett, itt mr harmadik oszlopban szereplo
lncolsi szm is megnvekedett 2-re, jelezve, hogy ez a fjl valban mr kt nven is
elrheto. Ha most gald mdon letrljk a csingi.link llomnyt, a benne lv o
adatok nem vesznek mg el (amgy se vesztettnk volna sokat. . . ), hiszen megmaradt
az ezuj.link nven val hivatkozs leheto sge. Ezzel a mdszerrel teht fontosabb
adatainkat vdhetjk is vletlen trls ellen.
Ennl gyakrabban hasznljuk a szimbolikus linkeket. Hasznlatukkal nem kell egy
fjlt vagy alknyvtrgat tmsolni egy msik helyre, elg csak a linkeket kialaktani.
Nzzk eloszr az egyszerubb esetet, ksztsnk az ezuj.link fjlra egy szim.link
nevu linket:
[root:~/linkproba]>ln -s ezuj.link szim.link
[root:~/linkproba]>ls -li
total 0
20071 -rw-r--r-1 root
root
0 Jul 8 15:38 ezuj.link
20068 lrwxrwxrwx
1 root
root
9 Jul 8 15:54 szim.link -> ezuj.link

Az ln-t most el kell ltni egy -s paramterrel, egybknt a hasznlata ugyanaz.


Kilistzva a dolgainkat tbb jdonsg lthat. A fjlok mr nem ugyanazok fizikailag,
hiszen inode-szmuk klnbzik. A msodiknl a hozzfrsek oszlopban lthat
a legelso l betu, ez utal a fjl tpusra (egybknt - a norml fjl, d a knyvtr, c
a katakteres, b a blokkos eszkzfjlokat takarja). Ezen kvl ltvnyosan kijelzi az
ls azt is, milyen viszony van a kt fjl kztt, a szim.link tulajdonkppen az
ezuj.link fjlra mutat. rdekes mdon a 0 byte-os fjlra val linkels is 9 byteos mretet eredmnyezett1, de lehetne az eredeti fjl 1 gigabyte is, a link akkor is ennyi
1 Ez

azrt van gy, mert az eredeti fjlnv 9 karakteres volt, s a szimbolikus link valjban ezt trolja.

22

lenne nagysgrendileg s itt mr valban jelento s a helymegtakarts. Az elobbi


mdon, ha most letrljk az eredetit, akkor a link ugyan megmarad, de elrvul, viszont
brmikor jralesztheto azzal, hogy ltrehozzuk a hozz tartoz clfjlt, vagy, mivel
knyvtrakra is alkalmazhat, clknyvtrat.
A fjlokkal vgzett leggyakoribb muveletek a msols, mozgats, tnevezs s trls. A msolsra a cp utasts hasznlatos, a mshol mr megszokott mdon a forrs,
majd a cl megjellsvel, s persze esetleges kiegszto paramterekkel. Meg kell
emlteni, hogy a -d paramter megtartja a linkek kapcsolatt, a -p meg o rzi a fjlok
attribtumait, a -R rekurzvan, teht az adott knyvtrgat bejrva msol, s mivel
ezeket gyakran egytt alkalmazzuk, a -a egyedl is megfelel mindezen kapcsolk hatsnak. Olyan esetben, amikor egy fjlrl msolatot akarunk kszteni valahol, de ms
nven, nem kell az tnevezshez kln parancs. Ksztsnk pldul az XF86Config
fjlrl egy biztonsgi msolatot. Ez nagyon j tlet minden olyan esetben, ha konfigurcis llomnyokat akarunk mdostani. Tl jl sikerlt mdosts miatt lehet,
hogy az adott program nem is indul el, ekkor legalbb az eredeti pldny megmarad:
[root./etc]>cp ./XF86Config ./XF86Config.orig

A pldbl kiderl, hogy ha abban a knyvtrban llunk ahol a fjl is van, az aktulis knyvtrra utal . knyvtrbejegyzst hasznlhatjuk az elrsi t megadshoz.
Hasznlhattuk volna a /etc/ megadst is, de lustk voltunk gpelni. . . Aki igazn
lusta, az pedig tudja, hogy teljesen elhagyhat az tvonalmegads, ha a szban forg
knyvtrban llunk.
A dd hasznlatval is msolsi muveleteket vgezhetnk, de ezt inkbb akkor hasznljuk, ha valamely llomny byte-onknti tmsolst kell elvgezni. Tipikus alkalmazsi terlete indtlemezek ksztse, ahol a rendszermagot tartalmaz fjlt kell kirni a floppyra:
[root:~]>dd if=kernel of=/dev/fd0 bs=1k
353+1 records in
353+1 records out

A fenti pldban a msoland fjl neve kernel, a kimenet a /dev/fd0 eszkz, ez az elso floppy-meghajt, s a msols 1 kB-os blokkonknt zajlik (megjegyzendo, hogy ez mg nem elg mukdo indtlemez ksztshez, hasznljuk inkbb az
mkbootdisk parancsot).
Az tnevezs, s egyben a mozgats parancsa is az mv. A megfelel o en kiadott utastsbl gyis kiderl, mi a teendo . Nzzk azt az esetet, amikor a home
knyvtrunkban tallhat proba.txt llomnyra kiadjuk a parancsot, feltve, hogy
proba.txt.uj nevu fjl vagy knyvtr nem ltezik itt:
[root:~]>mv proba.txt proba.txt.uj
[root:~]>ls p*
proba.txt.uj

Lthatan j nevet kapott a fjl. Nevezzk most vissza, majd ksztsnk egy
proba.txt.uj nevu knyvtrat, s adjuk ki ismt az elo bbi parancsot. Ugye tudjuk,
hogy nem kell jra begpelni?
[root:~]>mv proba.txt.uj proba.txt
[root:~]>mkdir proba.txt.uj
[root:~]>mv proba.txt proba.txt.uj
[root:~]>ls proba.txt.uj/
proba.txt

23

Az mv most tmozgatst csinlt, hiszen volt ilyen nevu knyvtrunk, amit clknt
kezelt.
A trls mindig s mindenhol veszlyes muvelet, hiszen adatvesztssel jr. Nhol mg van eslynk a meggondolatlanul trlt llomnyok visszalltsra (lsd a
DOS undelete parancsa), de jl jegyezzk meg: A UNIX-BAN A TRLT ADATOK
VISSZANYERSRE NAGYON KEVS ESLY VAN! Igaz, ugyan, hogy lteznek
mdszerek a Linux fjlrendszerben, az ext2-ben is arra, hogy ha szerencsnk van (s
st a nap, valamint nem 13-a van), akkor visszallthatjuk a trlt fjlt, de ez nem egyszeru. Olyan gpen, ahol viszonylag nagy az adatforgalom, sok felhasznl dolgozik,
vajmi kevs eslynk van erre. Mindezt azrt hangslyozom ennyire, mert Murphy
trvnyei alapjn biztosan azt a fjlt trljk le, amit nem kne, teht el o tte jl gondoljuk meg, mit csinlunk! Ha mindezek ellenre nha mgis erre adjuk a fejnket, akkor
az rm parancsot hasznljuk. Paramter nlkl jlnevelten r is krdez minden esetben, hogy valban trlni akarjuk-e a fjlt, ha nagyon biztosak vagyunk a dolgunkban,
akkor hasznlhatjuk a -f kapcsolt, ezutn csak vgzi csendben a munkjt. Klnsen csnjn kell bnni a -r paramtervel, ami (lassan mr lernom se kell), rekurzvan
trl. Aki igazn paranois, azt az elo bb elhangzottak sem nyugtatjk meg. Neki ajnlhat a shred parancs, ami igyekszik gy trlni az llomnyt, hogy valban senki se
tudja azt reproduklni: tbbszr is fellrja azt a lemeztartomnyt, ahol a fjl volt.

1.11. Tulajdonjogok, hozzfrs szablyozsa


Tbbfelhasznls opercis rendszerekben minden fjl rendelkezik olyan adatokkal,
amik alapjn eldntheto, ki s mit csinlhat vele. Mindegyiknek van egy tulajdonosa,
aki ltrehozta s rendelkezik felette. A tulajdonos mindig egy csoportnak is tagja, s
ezeket a csoporttagokat megklnbztethetjk a tbbi felhasznltl, a klvilgtl a
hozzfrsi jogok tekintetben. gy hrom csoport alakul ki: maga a tulajdonos (User),
az o csoportja (Group), s az sszes tbbi felhasznl (Others). Egy adatllomnnyal
leggyakrabban a kvetkezo hrom muveletet csinlhatjuk: rhatjuk, olvashatjuk, s a
programokat mg vgre is hajthatjuk (Read, Write, Execute). Ezeket sszevetve nyer
rtelmet a mr sokszor ltott oszlop az ls kimenetben, ahol pldul azt lthatjuk:
-rw-r--r-drwxr-xr-x

1 pistike
7 pistike

users
users

559 Jul
4096 Jul

8 17:41 .bashrc
8 17:41 .kde/

Az elso llomny, a .bashrc norml fjl, erre utal a legelso - karakter, tulajdonosa a pistike nevu felhasznl, aki a users csoport tagja. A kvetkez o hrom
karakter a tulajdonos jogait jelzi: rw-, jelentse az, hogy olvashatja s rhatja, s mivel ez nem programfjl, nem kell vgrahajtani. A kvetkez o hrmas a csoportjogok,
itt mr csak az olvassi jog adott, ugyangy az sszes tbbi felhasznl szmra is. A
.kde egy knyvtr, mutatja ezt a d betu a legelso helyen, majd ugyangy hrmas tagolsban kvetkezik a jogok felsorolsa. Knyvtraknl kicsit mshogy kell rtelmezni
azonban ezeket a dolgokat: olvassi jog esetn kilistzhat a knyvtr tartalma, rsi
jog esetn mdosthat a tartalma, teht pldul tudunk benne fjlt ltrehozni, vgrehajthat attribtum esetn pedig bele tudunk lpni. Jelenleg pistike brmit tehet a
knyvtrral, a csoporttagok s az egyebek viszont csak belphetnek s listzhatjk a
tartalmt, ltrehozni, vagy plne trlni nem tudnak semmit. Jtsszunk most el ezekkel
a lehetosgekkel, s ismerjk meg kzben a kapcsold utastsokat!
Eloszr is vltoztassuk meg a tulajdonviszonyokat. Megint ksztsnk egy j
knyvtrat, jogok nven, lpjnk be, s hozzunk ltre egy fjlt, de most rjunk bele
valamit, mondjuk az echo paranccsal:
24

[root:~/jogok]>echo Veni, vidi, vici! > julius

Kilistzva ltjuk, hogy root, a root csoport tagja bitorolja most ezt a fjlt. O
azonban nagyon jban van pistikvel, s t akarja adni a rendelkezs jogt neki. Mit
kell tennie? Lssuk:
[root:~/jogok]>chown pistike julius
[root:~/jogok]>ls -l
total 4
-rw-r--r-1 pistike root

18 Jul

8 18:02 julius

A chown a megolds teht: elso paramtere a felhasznl, aki lesz a msodik


paramterben megadott fjl. A csoporttagsg megvltoztatsra a chgrp alkalmas,
hasonl mdon hasznlva. Adjuk t gyakorlsul a users csoportnak a fjlt. Megjegyzendo a kvetkezo: ha tadtuk a tulajdonjogot, akkor vissza mr nem vehetjk!
Egy kivtel van persze most is, a rendszergazda, de ht o mindent megtehet. . .
Most ki kellene prblnunk pistike nevben bejelentkezve a rendszerbe, hogy mit
nyertnk a root bartsgval? Itt elo szr tegynk emltst egy olyan leheto sgrol, amivel nem muszj a szokott mdon belpni, hanem menet kzben felvehetjk egy msik felhasznl kpt, ez a su paranccsal megy. Ha paramter nlkl hvjuk meg, akkor
a root jelszavt begpelve mris rendszergazdai jogokkal dolgozhatunk tovbb, egszen a megszokott kilpsi parancsok valamelyiknek kiadsig. Felhasznli nevet s
a hozz tartoz jelszt megadva neki az illeto borbe bjhatunk. A rendszergazdnak
mg a jelsz begpelsvel sem kell bajldnia. Akrhogy is, most mr pistike nevben
prblkozzunk tovbb:
[pistike:~]>cd /root/jogok
bash: cd: /root/jogok: Permission denied

Nem mind arany, ami fnylik, a hozzfrs megtagadva, de ha jobban megnzzk,


nem a fjlhoz maghoz, hanem az o t tartalmaz knyvtrhoz! Segtsnk ezen (persze
root-knt) a chmod parancs alkalmazsval. Ez az az utasts, amivel a hozzfrsi
jogok llthatk. Tbbflekppen is hasznlhat, elo szr nzzk a taln olvashatbb
megoldst:
[root:~/jogok]>chmod o+rx .

lefordtva: az others (nem a root csoport tagjai) rszre engedlyeztk (+) az olvassi
s vgrehajtsi jogot, ez ugye knyvtrak esetn belpsi s tartalomlekrsi privilgiumot jelent. A . jelenti az aktulis knyvtrat. Viszont mg gy sem megy a dolog.
Jobban megvizsglva az esetet, rjvnk, hogy azrt nem, mivel pistike a jogok/ szloknyvtrba, a /root knyvtrba be sem tud lpni! Korrigljuk ezt (vigyzat, egy
lesben mukdo rendszeren ezzel NE ksrletezznk biztonsgi megfontolsokbl):
[root:~]>chmod o+x .

Most mr pistike ltja a fjlt, bele is nzhet, de nem nevezheti t, nem trlheti.
Persze, hiszen olyan knyvtrban van, amiben neki semmi joga rsi muveletekre. Adjuk ht meg neki a lehetosget a jogok/ knyvtrra kiadott chmod ow+ utastssal!
Dolgozzunk tovbb pistike nevben. lltgassuk a hozzfrseket a julius fjlon, adjunk meg magunknak minden jogot, a csoportnak az rs-olvass jogt, a tbbieknek pedig csak vgrehajtsi jogot (nem letszag a plda. . . ):
[pistike:/root/jogok]>chmod u+rwx,g+rw,o=x julius
[pistike:/root/jogok]>ls -l
total 4
-rwxrw---x
1 pistike users
18 Jul 8 18:02 julius*

25

Tbb minden is leolvashat az elso sorbl: a hrom felhasznlcsoportra egyszerre


is megadhatk a jogok, csak vesszo vel el kell o ket vlasztani egymstl. Ha valamelyiknl pontosan akarjuk belltani ezeket, teht fggetlenl attl, mik voltak az el o zo
attribtumok, hasznljuk az egyenlo sgjelet, klnben lehet, hogy marad vissza olyan
jog, amit nem akarunk megtartani. Itt pldul a csoport olvassi joga eleve megvolt, teht nem is kellett volna lltani, hasonlan a tulajdonos rsi-olvassi jogt sem. Vagyis
az o=x jelentse: az others, vagyis a csoporton kvliek joga a knyvtrra pontosan
a belpsi joggal lesz egyenlo.
Ez a megolds is j, de sok esetben egyszerre tbb jogot is kell lltani, ilyenkor
sokat kell gpelni. A msik jrhat t annak alkalmazsa, hogy minden jog megfeleltetheto egy oktlis, 8-as szmrendszerbeli szmkdnak, nevezetesen a 4 az olvassi, a
2 az rsi, az 1 a vgrehajtsi jogot jelenti, s ezek kzl a megfelel o eket sszegezve
alakul ki egy adott felhasznlcsoport pozcijban az a kd, amit meg kell adni. lltsuk be ezek figyelembevtelvel a fjlt gy, hogy a tulajdonos rni-olvasni tudja, a
csoport csak olvasni s vgrehajtani, a tbbiek pedig csak olvasni!
[pistike:/root/jogok]>chmod 654 julius
[pistike:/root/jogok]>ls -l
total 4
-rw-r-xr-1 pistike users

18 Jul

8 18:02 julius*

Szmoljunk utna: a 6 a 4+2 (olvass+rs) sszege, ezt alkalmazzuk a tulajdonosra, az 5 a 4+1-bol (olvass + vgrehajts) kvetkezik, ezt adjuk a csoportra, mg az
olvassi jog nmagban a 4-es kddal szerepel a tbbieknl. Ami mr az el o zo pldban is lthat volt, mivel valahol szerepel egy vgrehajtsi jog is, az ls egy csillagot
tesz a fjl neve utn.
A felsoroltakon kvl is ltezik mg hrom olyan jogosultsg, amikkel nha tallkozunk. Az n. setuid bellts, clszeruen programfjl a futsi ideje alatt azokkal
a privilgiumokkal rendelkezik, mint az a felhasznl, akinek a tulajdonban van. Tipikus plda erre a jelszvltst vgzo passwd program. A felhasznlk fontosabb
adatait, gy a jelszt is a tradicionlis UNIX rendszerek egy szveges, brki szmra
olvashat fjlban, a /etc/passwd fjlban troljk. A fjl azonban csak a rendszergazda szmra rhat hogyan lehet akkor a jelszvltst megoldani? gy, hogy ha
egy mezei felhasznl futtatja a programot, az futsi ideje alatt a root jogaival fog futni
a setuid miatt, teht gy mr tudja rni is a jelszfjlt. Tbb helyen is alkalmazzk ezt
a trkkt, de sajnos a crackerek is ismerik, s emiatt egy biztonsgos rendszerben minl kevesebbre kell szortani az ilyen programok szmt. Hasonl rtelmu a setgid
jog, ami csoportra jelenti ugyanezt. Ltezik mg ezenkvl az n. sticky jog, amit
manapsg mr inkbb csak knyvtrakra alkalmaznak. Segtsgvel megoldhat, hogy
az ilyen bellts knyvtrban csak az tud mdostani, trlni egy fjlt, aki ltrehozta.
Nzzk meg a /tmp knyvtrat, itt tallkozunk ezzel a belltssal, gondoljunk bele,
mirt?
Azt, hogy egy fjl milyen jogosultsgokkal keletkezik, befolysolni lehet az
umask utastssal, ami a bash belso parancsa. Paramtere egy, a fentiekben megismerthez hasonl kd. Kialaktshoz bitszintu muveletek elvgzsre, teht kis fejszmolsra van szksg. ltalban mr az indulsnl illetve a felhasznl belpsekor
belltdik, ksobb ritkn van szksg a mdostsra. Bo vebb lersa a bash kziknyvben tallhat.

26

1.12. Egyb llomnykezelsi parancsok


Nhnyszor mr biztos feltettnk hasonl krdst: hol lehet az a szvegfjl, amiben
tegnap megkaptam a hinyz bizonytkokat arrl, ki lte meg Kennedyt. . . ? Ismernnk kell azokat a mdszereket, amikkel nem kell aggdnunk ilyen problmk miatt
sem. Nzzk eloszr a legfontosabb idevg parancsot, ez a find. Nagyon sokrtuen
hasznlhat: kereshetnk a fjl neve vagy annak csak egy tredke alapjn, a dtums idoadatok, de a jogosultsgi belltsok szerint is. Leggyakrabban csak a fjl pontos
helye nem jut esznkbe, nevt rszben vagy egszen tudjuk:
[root:/usr]>find . -name abc*
./share/vim/syntax/abc.vim

Hasznlata teht: meg kell adni a kiindulsi knyvtrat, majd azt, milyen mdszer
szerint akarunk keresni, s az ehhez szksges adatokat. Alapesetben rekurzvan bejrja a teljes alknyvtrat, ezen vltoztatni a -maxdepth n paramterrel lehet, ahol
n egy egsz szm, ekkor csak n alknyvtr mlysgig s le. Ha id o adatok alapjn
akarunk keresni, a -name helyett prbljuk ki a -ctime n illetve a -cmin n kapcsolkkal: elobbinl azokat a fjlokat keresi, amiket n-szer 24 rja, mg utbbi azokat, amelyet n perce mdostottak. Teht ha tudjuk, hogy a keresett fjlt 5 perce mg
szerkesztettk, de mr nem tudjuk, hova mentettk (ismt a szenilits. . . ), prblkozzunk a find / -cmin -5 paranccsal. A - jellel azt fejezzk ki, hogy 5-nl kisebb
a vizsglt idointervallum, ha pontosan az ellenkezo jt akarjuk, akkor persze a + kell.
Ki akarjuk derteni, hol vannak a fjlrendszerben setuid bellts programok? A
megolds a find / -perm 4000 kiadsa (a setuid, setgid s sticky miatt
ugyanis igazbl nem csak hrom, hanem ngy jegybo l ll a teljes jogosultsgi kd;
ebben az elso helyen ll 4 jelenti a setuid, a 2 a setgid s az 1 a sticky jelzobitet, a tovbbi hrom mr ismert). Keresni tudunk a fjl tpusa alapjn is, az sszes
felsorolt tpus megadhat a -type utn rt egybetus kddal. A /usr/local alatt
lvo sszes knyvtrat kirathatjuk pldul gy: find /usr/local/ -type d
Keressnket ezeken kvl a mret, a tulajdonviszonyok alapjn is elindthatjuk,
kinyomozhatjuk, melyik fjlokhoz nem tartozik felhasznl (valsznuleg amiatt, hogy
megszunt a hozzfrse a gphez), mindezeket ismt minden lehetsges el o fordulsban. Lssunk egy keresst olyan fjlokra, amik tulajdonosa nem a 0-s felhasznli
azonostj felhasznl (aki a rendszergazda egybknt), mgis a /root knyvtron
bell vannak:
[root:~]>find /root ! -uid 0
./jogok/julius

Igen, most van egy ilyen fjl, de hogy is adtuk ki a keresst? Tagadnunk kell azt,
hogy az azonost 0, ezrt elje egy felkiltjelet runk. Ez a megolds nagyon sok
helyen visszakszn, rdemes megjegyezni.
Keressnk most 30 byte-nl kisebb, a users csoporthoz tartoz fjlokat a /home
knyvtron bell:
[root:/home]>find . -group users -size -30c
./pistike/.bash_logout

Taln a -size szorul kis magyarzatra: a 30c jelenti a 30 byte-nyi adatot (megadhatjuk a mretet blokkban, kB-ban is), a - pedig mr tudjuk azt, hogy ennl kisebb
mennyisget keresnk.
A find mindezeken tl nyjt egy olyan leheto sget is, hogy a megtallt fjlokkal
muveleteket vgezhetnk. Tegyk fel, hogy a kvetkez o a feladatunk: a file parancs
27

segtsgvel llaptsuk meg, milyen tpusak a /etc knyvtrban lv o , maximum 50


byte mretu norml fjlok. Lthatan tbb paramter is kell, ezek nagy rsze ismer o s,
a legfontosabb azonban mg ismeretlen, ez a -exec. Lssuk el o bb a gyakorlatban, s
aztn elemezzk:
[root:~]>find /etc -maxdepth 1 -size -50c ! -type l -exec file {} \;
/etc/ld.so.conf: ASCII text
/etc/exports: empty
/etc/filesystems: ASCII text
/etc/host.conf: ASCII text
...

Kezdjk teht: a -maxdepth 1 garantlja, hogy csak az /etc knyvtrban keres, mlyebbre nem megy; a -size nem szorul magyarzatra; a link tpusakat ki kell
zrnunk, ezrt kell a ! -type l; s vgl a legizgalmasabb a -exec. Elso paramtere a minden egyes megtallt fjlon vgrehajtand parancs neve, ez itt most a file. A
{} jelsorozatba helyettestodnek be futs kzben sorban a fjlnevek, s a vgn le kell
zrnunk a parancsot, erre szolgl a \;. Ugye, gy mr nem is olyan bonyolult. . . ?
Nzzk meg most azt, hogy lehet mg sszetettebb keresseket vgrehajtani. Meg
kell hatroznunk, milyen fjlok mrete esik 100 s 200 byte kz a /etc knyvtrban! Ehhez lthatlag nem lesz elg egyetlen -size kapcsol, mst kell kitallnunk.
Itt jnnek kpbe a logikai muveletek, hiszen a krdst gy is feltehetnnk, hogy szksgnk van a 100-nl nagyobb s a 200-nl kisebb mretu fjlokra. Vagyis mindkt
felttelnek egyidejuleg teljeslni kell, erre hasznlhat az S logikai fggvny, amivel
mr megfogalmazhat a parancs:
[root:/etc]>find . -size +100c -a -size -200c -maxdepth 1
./hosts
./hosts.allow
./pwdb.conf
./amd.net
./ftphosts

Lthat, hogy a kt -size paramter kz egy -a kapcsol kel o dik, az angol


AND rvidtseknt, s ez kapcsolja ssze a kt elemi felttelt egy sszetett. Mivel az
alaprtelmezs szerint is ilyen logikai kapcsolatot felttelez a find, a kapcsol el is
hagyhat. A VAGY kapcsolat kifejezshez egybknt a -o hasznlhat.
Vgezetl lssuk, hogyan szablyozhat az, hogy milyen adatokat s hogyan rjon ki a find. A hasznland paramter a -printf, ami sok helyen visszakszn,
szintn ismeros lehet a C-ben programozknak nem ms, mint formtumozott kiratsra szolgl fggvny. A rengeteg lehetsges opci kzl nzzk meg azokat, amivel
megoldhat a kvetkezo problma: a /etc knyvtr res fjljait kell kiratni fjlnvhozzfrsi kd formban. Nzzk:
[root:/etc]>find /etc -empty -maxdepth 1 -printf "%p-%m\n"
/etc/exports-644
/etc/motd-644
/etc/opt-755
/etc/modules-644
...

A printf a date parancshoz hasonlan egy formtumsztringet vr idz o jelek


kztt, itt is a %-jel s egy utna kvetkezo egybetus kd jelenti a fjl valamely elemi
adatt (itt most a p a nevt, az m pedig az oktlisan adott hozzfrsi kdjt). Vgl,
mivel a fggvny magtl nem emel sort, neknk kell erro l gondoskodni a \n (newline,
j sor) vezrlokarakter beiktatssval.
A find szemlyben teht egy nagyon sokrtu szerszmot kaptunk, de hasznlhat fjlkeressre ms eszkz is. A locate, illetve az slocate akkor hasznlatos,
ha gyorsan akarjuk megtudni egy bizonyos fjl helyt. Prbljuk mris ki:
28

[root:~]>slocate hungary
/usr/local/so52/share/gallery/flags/hungary1.wmf
/usr/local/so52/share/gallery/flags/hungary2.wmf

Ms keressi mintt is megadhatunk, ami feltuno , hogy szinte azonnal, a find


parancsnl megszokott heves meghajtzrgs nlkl adja az eredmnyeket. Mindez
gy lehetsges, hogy egy elo re elksztett adatbzisban keres, s gy nem kell a fjlrendszert vgignznie. Ezt az adatbzist az slocate -u hozza ltre, de megadhat,
hogy bizonyos knyvtrakat, vagy akr egsz becsatolt fjlrendszereket ne vegyen bele
(pldul a /mnt/cdrom tartalma elg gyakran vltozik, vagy a /root tartalma nem
tl publikus). A -e knyvtr1,knyvtr2 ... hatsra a felsorolt knyvtrakat, a -f frt1, frt2... hatsra pedig a felsorolt fjlrendszer tpusokat nem
nzi vgig (ez utbbi lehet pldul iso9660 a CD-ROM-okhoz, ncpfs a becsatolt Novell
Netware ktetekhez). Az adatbzisnak viszont napraksznek illik lennie, klnben mit
sem r az egsz, de errol a cron vagy hasonl cl rendszerprogramok, dmonok gondoskodnak; ezek bizonyos ido nknt lefutnak, ltalban ezt a feladatot naponta vgzik
el.
Ide kapcsoldik mg az, hogy ha egy programrl nem tudjuk pontosan, hol is tallhat, akkor alkalmazzuk a which programnv parancsot, ez megadja (ha tudja) a
helyt teljes elrsi tvonallal egytt.
Nha szksg van fjlok tartalmnak sszehasonltsra. Tbbfle parancs is
hasznlhat e tmakrben, elso knt vegyk a cmp nevut. Prbljuk ki gy, hogy
a /etc/host.conf llomnyt bemsoljuk egy knyvtrba, csinlunk rla itt egy
msolatot, majd ennek valamelyik sorban tjavtunk nhny karaktert (pldul ha
multi on szerepel benne, akkor azt multi off-ra). Lssunk egy lehetsges eredmnyt:
[root:~/jogok]>cmp host.conf host1.conf
host.conf host1.conf differ: char 25, line 2

A msodikknt megadott fjl teht elo szr a 2. sorban, a 25. karakterpozcin tr el


az elsotol.
A diff mr jval tbb lehetosget ad. A programfejlesztok hasznos eszkze, mivel legtbbszr ennek a segtsgvel lltjk elo az n. patchfjlokat, amikkel egy program forrsnyelvi kdjt lehet mdostani, javtani. A megfelelo javtsok utn mr csak
a klnbsgeket tartalmaz llomnyt kell hordozni, s nem a teljes, sokszor tbb MBos forrst. A patch program tudja aztn a klnbsgfjl adatainak felhasznlsval a
mdostst vgrehajtani. Nzznk vgig most egy ilyen muveletet, igaz nagyon egyszeru lesz, de az elv taln ebbol is ltszik. Eloszr gyozodjnk meg rla, hogy az elozo
pldabeli host.conf fjlban valban a multi on sor szerepel, a host1.conf
fjlban pedig multi off. Clunk az, hogy az eredeti fjlban is lecserljk erre a
szveget. Ehhez adjuk ki a
diff -u host.conf host1.conf > javitas

parancsot. A -u egy, a patch program ltal elfogadott formtumot produkl, ezt belepumpltuk a javitas nevu fjlba. Vgl hasznljuk a patchet:
[root:~/jogok]>patch -p0 < javitas
patching file host.conf

A pldban a leggyakrabban kiadott kapcsolt, a -p0 opcit hasznltuk, s az is


lthat, hogyan kell egy programnak megmondani, hogy ne az alaprtelmezett bemenetrol, hanem egy fjlbl vrja az adatokat: a < jel segtsgvel. Az zenet szerint a
29

foltozs (patching) megtrtnt, most mr a host.conf is a multi off sort tartalmazza. A diff ezen fell nem csak egy-egy fjlt, hanem akr egsz knyvtrakat
tud sszehasonltani a -r kiadsval. Msoljuk le pldnak okrt a jogok/ knyvtrat jogok1/ nven, de hagyjuk ki ebbo l a knyvtrbl a javitas nevu fjlt. Ekkor:
[root:~]>diff -r jogok1 jogok
Only in jogok: javitas

vagyis az zenet szerint csak a jogok/ knyvtrban szerepel a javitas.


Aki mr dolgozott a DOS/Windows rendszerek alatt a Norton Commander programmal vagy annak klnjaival, biztos rtkelni fogja a Midnight Commander programot, ami igyekszik megknnyteni a fjlokkal vgzett mindennapi munkt. A fontos
billentyukombincik megegyeznek a Norton-fle programban hasznltakkal, termszetesen a kt rendszer eltrsei miatt vannak msok is (pldul a meghajtvlts a
Linux alatt nem ltezik). Indtsa az mc begpelsvel, a kilps az F10 funkcibillentyuvel (vagy az exit begpelsvel) trtnik, a kt lps kztti lehet o sgeket azonban inkbb prbljuk ki magunk. Az 1.2. brn a 4.5.51-es verzij vltozat lthat
mukds kzben.

1.2. bra. A Midnight Commander


Mivel valsznuleg mg egy ideig ismertek lesznek a Microsoft-fle rendszerek,
van egy olyan parancscsoport, ami az ott hasznlatos fjlkezelsi utastsokat igyekszik
minl jobban utnozni. Ezek mindegyike az m betuvel kezd o dik, s utna az ismert
parancsnevek hasznlhatk, pldul mdir, mcd, mcopy, mdel a szoksos mdon.
Hasznlatuk elott a rendszergazdnak illik a /etc/mtools.conf fjl segtsgvel
megfeleleloen belltani a gpen tallhat meghajtk adatait.

30

1.13. llomnyrendszerekkel kapcsolatos parancsok


1.13.1. Fjlrendszerek kezelse
A Linux fjlrendszere a Second Extended, vagy rvid nevn ext2 rendszer. Mindenkppen emltst rdemelnek azonban az jtsok, gy fo knt a naplz fjlrendszerek.
Az rdeklodoknek annyit ezekrol, hogy hasznlatukkal a httrtrat mg jobban kihasznlva, mg biztonsgosabban lehet adatainkat trolni. Ilyen pldul a Reiserfs,
amely a 2.4.x kernelekben mr benne van. A naplzs miatt egy esetleges lefagys
utni jraindulskor sem kell a lemezelleno rzo fsck lefutsra vrni. Fobb tulajdonsgai kztt meg kell emlteni a hossz fjlnevek hasznlatnak lehet o sgt, a tredezettsgre, fragmentcira val nagyfok immunitst, a j helykihasznlst, s a hlzatos munkhoz val nagyon j illeszkedst. Tekintsk rviden vgig, milyen mdon
lehet egy ilyen fjlrendszert felleszteni s karbantartani fo leg rendszergazdai oldalrl
nzve, de az egyszeru felhasznl ltal hasznlhat dolgokat is felsorolva.
Az ext2 ugyan hajlkonylemezen is ltrehozhat, igazi erejt azonban egy merevlemezes partcin mutathatja meg. A partci a merevlemeznek egy logikailag egyetlen
fjlrendszerhez rendelt rsze. Kt alaptpusa az elso dleges (primary) s a kiterjesztett
(extended), az ext2 fjlrendszert brmelyikre telepthetjk. A partcik adatai a merevlemezen a partcis tblban tallhatk, ennek az adatait megvizsglva tud az opercis rendszert betlto program dolgozni. A partcikra val feloszts a teleptsnl
mr lezajlik, ksobb csak nagy ggyel-bajjal lehet rajta vltoztatni adatveszts vagy
jratelepts nlkl (br vannak erre szakosodott segdprogramok, pldul a Partition
Magic, amik akr lo partcit is kpesek tmretezni). A kso bbiekben a mr emltett /dev knyvtrban tallhat klnleges eszkzfjlokon keresztl tudunk rjuk hivatkozni a kvetkezo szablyok alapjn: a mai PC-kben ltalban maximum ngy IDE
szabvny adattrol eszkz csatlakoztathat a gpre (SCSI szabvny meghajtkbl
tbb is, de mivel mg az olcsbb gpekben ritkbban fordulnak el o , ezekkel itt ne foglalkozzunk). Ezek kzl van egy elso dleges (primary) s egy msodlagos (secondary)
adatcsatorna, s mindketton lehet egy mester s egy szolga (master, slave) adathordoz. Az elsodleges mester a hda, az elsodleges szolga a hdb, s ez alapjn a
msodlagos mester hdc, szolga pedig a hdd eszkznvvel rhet o el. Merevlemezek
esetn ez mg partcikra oszlik, amiket szmokkal klnbztetnk meg, teht a hdc2
jelenti a msodlagos mester merevlemez msodik partcijt.
A DOS/Windowsbl ismert nevu, de annl jval tbbet tud s rugalmasabb fdisk
az alapveto eszkz ezek kialaktsra. Kezelse egybetus parancsokkal trtnik, emiatt
nem tl ltvnyos de hatkony! Ahogy indtsakor is lthat, az m parancs ad sgt
a funkciirl. Neknk ltalban a kvetkezo k kellenek:
p az aktulis partcis tbla kilistzsa;
n j partci ltrehozsa;
d partci trlse;
t partcitpus vltsa;
l partci-kdok listjnak megjelentse;
w a partcik adatainak mentse, a partcis tbla kiratsa a merevlemezre, mivel a
DOSos fdisk-kel ellenttben ez addig nem r ki semmit, amg erre nem utastjuk (s mg csak jraindts se kell. . . !);
31

q kilps.
Akinek nem szimpatikus a program, hasznlhatja a cfdisk programot is, aminek
bejelentkezo kpernyoje lthat az 1.3. kpen.

1.3. bra. A cfdisk kpernyo je


A navigls a kpernyo aljn lthat parancsok kztt knnyen megoldhat a nylbillentyukkel vagy a menpontok neveinek elso betujt letve.
Akinek mg ez sem elg, van egy sfdisk nevu program is, amit f o leg hjprogramokban val alkalmazsra terveztek, s rdekes dolgokat tud: pldul a partcik
informciit ki tudja rni egy msik adathordozn lvo fjlba, s ha valami baj van,
onnan vissza lehet tlteni azokat.
A partcik kialaktsa utn jhet a fjlrendszer kiptse, amit kznapi nyelven
formzs nven szoktunk emlegetni. Az mkfs, vagy inkbb az mke2fs hasznland
erre. Ez utbbi nagyon sok paramterrel rendelkezik, mgis ltalban csak egyszeruen
az mke2fs /dev/hdxy formban hasznljuk, ahol x s y rtke a fent lert mdon
helyettestendo be (pldul: hda2).
A ltrejtt fjlrendszert a mount parancs illeszti be a knyvtrfba. Kapcsolk
nlkl berva kilistzza a jelenleg beillesztett rendszereket. Igyekszik kitallni a becsatoland rendszer tpust, de ha ez nem sikerl neki, a -t kapcsol segthet. Megadand
mg az eszkzfjl neve, amin keresztl a fjlrendszer elrheto , illetve az a knyvtr,
ami alatt ltni akarjuk majd a tartalmt. Lssunk egy kznapi pldt erre, illessznk be
egy CD-ROM-ot az elozoleg mr meglvo /mnt/cdrom al:
[root:~]>mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only

Bztunk abban, hogy a mount felismeri a CD-n lvo iso9660 tpus rendszert, s
ez gy is volt. A gpen a /dev/cdrom igazbl egy szimbolikus link arra az esz32

kzfjlra, ami a CD-ROM meghajtt azonostja, ez rugalmasan lehet o sget ad arra,


hogy a meghajtt fizikailag thelyezve csak ezt a linket kell mdostani egy helyen, az
sszes r hivatkoz program (s felhasznl) szre sem veszi a vltozst. Mivel nevbol addan egy CD csak olvashat, ezrt ilyen mdon is csatolta be (read-only).
Viszont ebbol kvetkezoen brmilyen fjlrendszert becsatolhatunk gy (a -r kapcsolval). Szoks a /usr alatti knyvtrft egy kln partcira telepteni s gy becsatolni,
ennek tartalma gyis ritkn vltozik, viszont gy vletlen trls ellen vdve van.
A Linux alatt a becsatolt CD-ROM addig nem veheto ki, amg az
umount /dev/cdrom parancsot ki nem adjuk. Ez elo szr kicsit szokatlan lehet
(a floppy-t persze kivehetjk, de egyltaln nem tancsos). Az umount teht csak
azt az eszkznevet (esetleg azt a csatolsi pontknt megadott knyvtrnevet, pldul
/mnt/cdrom) vrja paramterknt, ami az adott httrtrhoz tartozik.
A fjlrendszerek psgrol nha illik meggyozodni, erre Linux alatt az fsck
(e2fsck) hasznlhat. Ajnlatos elotte az ellenorizendo rendszert levlasztani az
umount paranccsal. Hasznlata viszont egyszeru, pldul az fsck /dev/hda3
leellenorzi, s hiba esetn megprblja javtani az elso dleges merevlemez harmadik
partcijn lvo adatokat.
rdekessgkppen nzzk meg, hogy lehet akr menet kzben n. ramdiszket,
vagyis a memriban lvo, de hagyomnyos httrtrhoz hasonlt (csak annl jval
gyorsabb) adattrolt kialaktani. Csak azt kell tudnunk, hogy van tbb olyan eszkz
is ram0-tl felfel szmozva, amivel a memria bizonyos szabad rszeit lefoglalhatjuk ilyen clra. Most egy ilyen eszkzn keresztl egy 4 MB mretu trat alaktunk ki,
amit a /mnt/ramdisk knyvtr alatt tudunk elrni:
[root:/mnt]>mkdir ramdisk
[root:/mnt]>mkfs -t ext2 /dev/ram0 4096
mke2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1024 inodes, 4096 blocks
204 blocks (4.98%) reserved for the super user
First data block=1
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
[root:/mnt]>mount /dev/ram0 ramdisk/

. . . s mr van is egy j meghajtnk, kezdhetjk feltlteni adatokkal!


A mount mg egy izgalmas lehetosget rejt magban, mgpedig egy fjlrendszernek az n. visszacsatol eszkzn (loopback) keresztli beillesztst. A UNIXfilozfibl kvetkezoen egy adathordoz tartalmt byte-rl byte-ra le tudjuk msolni
egy fjlba, ez az image-fjl vagy tkrkp-fjl. Leginkbb hordozhat trolknl
(floppy, CD-ROM) alkalmazzuk, pldul a CD tartalmt, ami tbb ezer fjl is lehet,
gy egyetlen adatllomnyban lehet trolni, s a felrs is knnyebben elvgezhet o . Ma
mr a Linux terjesztseket is egyre inkbb gy szoktuk az Internetr o l letlteni. Egy
ilyen fjl teht tulajdonkppen egy teljes fjlrendszer. Viszont ha CD-re val felrs
utn derl ki, hogy valami gond volt a tkrkp-fjlban, akkor gyrtottunk egy nagyon
szp dszt az aut visszapillantjra. Ezt elkerlendo , mg a felrs elott be tudjuk
csatolni a fjt, bele tudunk nzni, mintha mr CD-n lenne, so t, ha nagyon akarjuk,
mg ki sem kell rni, gy is lehet rla telepteni a rendszert! Tegyk fel, hogy van egy
ilyen image-nk cdimage.iso nven az aktulis knyvtrban, ahol van egy cd-rom nevu
knyvtr is, ekkor a
33

mount -o loop cdimage.iso ./cd-rom

parancs utn mr tallzhatunk is a cd-rom/ alatt! Ezt a knyvtrat a hlzaton NFS,


Samba vagy ms hlzati megosztsi mdszerrel elrheto v tve a munkallomsok
szmra, indulhat a telepts.
A mount parancsrl mg tudni illik, hogy tudst befuzs esetn a /etc/fstab
llomnybl veszi. Ebben szerepelnek a klnbzo becsatoland rendszerek adatai s
olyan paramterek, amik szablyozzk a muveletet. Tanulmnyozzuk btran!
Hlzatos krnyezetben nemcsak a helyi gpen, hanem a hlzat szerverein is lehetnek olyan megosztott llomnyok, amikhez szeretnnk hozzfrni. A Samba programcsomag segtsgvel a Linux rsze tud lenni egy Microsoft Network hlzatnak,
ahol az azon bell megosztott ero forrsokat, gymint llomnyok vagy nyomtatk
(sszefoglal nven share-ek magyarul megosztsok), el tudja rni. llomnyrendszerek esetn eloszr az smbclient paranccsal ki kell derteni, milyen megosztsok
lteznek, majd ezeket az smbmount illetve smbmnt parancsok hasznlatval tudjuk
becsatolni. Novell Netware fjlkiszolglk esetn az slist adja a szerverek listjt, majd az ncpmount vgzi a beillesztst. Termszetesen mindegyiknek megvan a
levlasztst vgzo trsparancsa is.
Sokszor tkznk abba a problmba (mg nagy merevlemez esetn is), hogy elfogy a trhelynk. Aki nem akarja ezt, hasznlja gyakrabban a df parancsot. Arra szolgl, hogy megmutassa, az egyes partcikon mg mennyi szabad hely van, s mennyi
foglalt. Clszeru a -h kapcsolval egytt hasznlni, mivel gy kilo- illetve megabyteban rja ki az adatokat. Arra pedig, hogy egy knyvtr llomnyai mennyi helyet foglalnak, a du ad vlaszt. Abban a knyvtrban kezdi el az sszegzst, ahol kiadtuk,
s rekurzvan dolgozik, minden alknyvtrrl kln kirja a benne lv o llomnyok
mrett, majd a vgn egy sszegzst is. Szintn a -h paramter segt olvashatbb
tenni az eredmnyeit. Ha csak a teljes vgsszegre vagyunk kvncsiak, hasznljuk a
-s opcival egytt. A -S segtsgvel pedig minden alknyvtr helyfoglalsa kln
lszik.
A Linux mukds kzben sok adatot trol a memriban, ezrt fontos, hogy mindig szablyosan lltsuk le (ez egybknt a shutdown illetve halt, az jraindts
pedig a reboot parancs segtsgvel trtnik), mert klnben a fjlrendszer is srlhet. Ennek oka tbbek kztt az, hogy nem r azonnal minden adatot a merevlemezre,
hanem ideiglenes trolkat, puffereket hasznl a memriban. Ezek tartalmt azonban
mi magunk is kirathatjuk a lemezre a sync parancs hasznlatval.

1.13.2. Tmrts, archivls


Az adatllomnyok mrete s a rendelkezsre ll trhely sajnos gyakran nincs sszhangban. A tmrtoprogramok hasznlatval ez a gond cskkentheto . Fontos adataink
biztonsgos trolsa pedig megkveteli a biztonsgi mentsek ksztst, az archivlst. A Linuxnak ezekre a feladatokra is fejlett eszkzei vannak.
Valsznuleg
a
legrgebben
ltezo
tmrtoprogramok egyike
a
compress/uncompress pros, ami minden UNIX-on megtallhat. Az ltala ksztett llomny a .Z vgzodsrol ismerheto fel a legknnyebben. Manapsg
mr kevsb hasznljk, inkbb utdjt, a gzip csomagot alkalmazzk. Hasznlata egyszeru, legtbbszr csak a tmrts ero ssgi fokt szoktuk megadni, ez egy
1-tol 9-ig (a legnagyobb fok tmrtsig) terjedo skln mozoghat, illetve a tmrtendo llomny nevt. Ellenttben viszont a DOS/Windows alatt jl ismert zip
paranccsal, csak egy fjlt tud egyszerre kezelni. Ezrt szinte elvlaszthatatlan prja
34

a tar, ami annak idejn szalagos egysgekre val archivl programknt szletett
(Tape ARchiver). Nagyon jl kiegsztik egymst, mivel a tar tbb fjlt, akr
egsz knyvtr-struktrkat tud sszefuzni egyetlen fjlba, s ezt mr t lehet adni
a gzip parancsnak. Olyannyira egybepltek a hasznlat sorn, hogy a tar kln
kapcsolval rendelkezik, ami a vgn meghvja a gzip parancsot a tmrtsi lps
vgrehajtsra. Lssuk o ket mukds kzben! Taln mg nem dobtuk a sutba a
fentebb hasznlt jogok/ knyvtrunkat s tartalmt. Ebben elvileg tbb fjl is van,
lpjnk teht be ide, s rjuk be a kvetkezo ket:
[root:~/jogok]>tar cvf archiv.tar *
host1.conf
host.conf
javitas
julius
[root:~/jogok]>gzip -9 archiv.tar
[root:~/jogok]>ls a*
archiv.tar.gz

A tar kapcsoli sorban (figyeljk meg, hogy nem kell a - jel): a c jelzi, hogy
kszteni akarjuk az llomnyt, nem kicsomagolni, a v kicsit b o beszdubb zemmdra
kapcsol (ezrt listzza ki kzben a fjlneveket), az f fjlnv pedig maga az elksztend o
llomny neve. A kiterjeszts megllapods szerint .tar. Mivel mindent be akarunk
csomagolni, ezrt ll a sor vgn a * (s nem *.*, hiszen itt a fjlnvben tbb pont
is lehet). A gzip parancsot aztn a legero sebb fokozatban szabadtjuk r az elkszlt
fjlra, s megkapjuk a .gz kiterjesztsu, immr tmrtett llomnyt. Mindezt megtehetjk sokkal rvidebben is, ha a tar kapcsolit kiegsztjk mg egy z opcival,
megsprolhatjuk a gzip parancs kiadst.
A kicsomagols is tbbflekppen trtnhet:
vagy elo szr a
gunzip archiv.tar.gz, majd a tar xvf archiv.tar parancsok kiadsval, vagy egyszerubben csak a tar zxvf archiv.tar.gz parancs
bersval. A tar termszetesen mego rzi a knyvtrak elrendezst is, erre mindig
figyeljnk kicsomagols elott. Ha bele akarunk kukucsklni egy archvumba, tbbfle
mdon jrhatunk el. Csak a becsomagolt fjlok listjra vagyunk kvncsiak? Hasznljuk a tar ztvf archiv.tar.gz parancsot (listzs)! Van egy nagy mretu
szvegnk, s nem akarjuk kicsomagolni, csak elolvasni? A zcat vagy mg inkbb a
zless parancsnak vesszk hasznt.
A tar lehetosget ad arra is, hogy ha a kicsomagoland fjl nem azon a helyen van,
ahov sznjuk, s meg akarjuk sprolni a msolst, akkor egy -C clknyvtr paramter kzbeiktatsval eloszr belptessk a clknyvtrba, s ott kezdje el a kibontst.
Az Interneten a Linuxos forrsok tbbsge ilyen formtumban tallhat meg, a
.tgz kiterjeszts is ilyen archvumokat takar. Ltezik j ideje egy, a gzip programnl
jobb hatsfok tmrto is, a bzip2. Kezelse nagymrtkben hasonlt elo djre. Az
ltala ksztett llomnyok ismertetojegye a .bz2 kiterjeszts. Az ismert s elterjedt
ZIP-formtum is kpviselteti magt a zip/unzip programokon keresztl. Ezek kzl
foleg a kicsomagolt hasznljuk, fo bb paramterei:
-l kilistzza az archvum tartalmt;
-t teszteli az archvumot;
-d knyvtr a megadott knyvtrba csomagol ki;
-v bobeszdu zemmd bekapcsolsa.
35

1.4. bra. Egy grafikus archvumkezelo , a GnoZip


A szintn nagyon elterjedt ARJ, RAR, jabban ACE, de a rgebbi harcosok kzl
a ZOO, LZH formtumokat is tudjuk kezelni az unarj, unrar stb. programokkal.
Ezek hasznlata szintn nem okozhat gondot.
A Linuxos terjesztsek, disztribcik programcsomagjai ltalban nem gy rhetok el (kivtel azrt van a j reg Slackware szemlyben), hanem ms archivlkat hasznlnak. A Red Hat csomagformtuma, az rpm a cpio programon alapszik.
Ennek alapvetoen hrom zemmdja van: a copy-out becsomagol, a copy-in kicsomagol az archvumbl, a copy-pass pedig egyik helyro l a msikra visz t llomnyokat. Nzznk pldt mindhromra. Maradva a jogok/ knyvtron bell, adjuk ki az
ls | cpio -oF archiv.cpio parancsot. A cpio -o paramtere kapcsolja be
az archivlsi zemmdot, a -F utn kell megadni a ksztend o fjl nevt. A becsomagoland fjlok listjt azonban trkks mdon kell megmutatni neki, most erre az ls
ltszott clszerunek. Az ls kimenett tadva egy szuro n keresztl, mr tudja a cpio,
mivel kell dolgoznia. A kicsomagols a cpio -i < archiv.cpio parancsra trtnne, de ez most nem fog rendben lefutni, mivel ugyanazok a fjlok mr szerepelnek
a knyvtron bell. Vgl pedig a ls | cpio -pd /root/jogok.1 hatsra
az sszes fjl tkerl a jogok.1/ knyvtrba, termszetesen minden tulajdonsgt
(tulajdon- s hozzfrsi viszonyok) mego rizve; ez a tar esetben is gy van.
A Debian .deb csomagjai az ar parancs felhasznlsval kszlnek. ltalnosan
ar kapcsol archvum lista formban hasznlatos, itt a fo bb kapcsolk:
r becsomagols;
x kicsomagols;
t listzs.
36

Gyakorlsul prbljuk ki azt, melyik program a legjobb hatsfok!

1.14. Szvegkezelo parancsok


A szveges adatok fontos szerepro l a szvegszerkesztok kapcsn mr szltunk. Kezelsk, manipullsuk mindennapos feladat. Az erre szolgl fontosabb eszkzk
ttekintse kvetkezzk most.
A szvegfjlok ltrehozsi mdjait, tartalmuk kilistzst mr ismerjk. Ide kvnkozik mg a teljessg kedvrt a strings parancs, ami brmilyen fjlbl ki tudja rni
a nyomtathat karaktereket; ki lehet prblni binris fjlokon is. Nha szksgnk van
annak megllaptsra, hogy hny karakterbo l, szbl vagy sorbl llnak szvegeink.
Erre a wc parancs adhat vlaszt, br nevt ltva elo szr biztos nem erre asszocilunk.
Prbljuk ki egy llomnyon, legyen ez mondjuk a /etc/passwd:
[root:~]>wc /etc/passwd
34
42
1260 /etc/passwd

A fenti fjl jelenleg 34 sort, 42 szt s 1260 karaktert tartalmaz. Ha ezekre egyenknt vagyunk kvncsiak, alkalmazzuk sorban a -l, -w illetve a -c kapcsolkat. Szmoltassuk meg, hny fjl van az aktulis knyvtrunkban! Ehhez nyilvn felhasznljuk
az ls parancsot is, majd az ltala adott szveges kimenetben lv o sorokat megszmolva kapjuk az eredmnyt:
[root:~]>ls | wc -l
39

A szvegek talaktst vgzo parancsok kzl a tr szolgl bizonyos talaktsokra, nevezetesen a bemenetn rkezo karaktersorozatot t tudja alaktani, transzformlni valamilyen szably alapjn. Gyakran alkalmazzuk kis- s nagybetuk cserjre,
mint az albbi pldban is:
[root:~]>echo VegyEs | tr a-z A-Z
VEGYES

Lthatan az sszes kisbetut a-tl z-ig talaktotta a nagybetus megfelel o jre. Ami
mr eleve nagybetus volt, azon persze ezt nem vesszk szre. Nemcsak talaktst,
hanem trlst is krhetnk tole:
[root:~]>echo egyesek | tr -d e
gysk

Ehelytt csak emltst tesznk a sed programrl, ami ennl jval tbbet tud, rszletes ismertetse egy msik fzet clja.
Szvegeink sokszor valamilyen tblzathoz hasonl felptsben fordulnak el o .
Lttunk ilyet pldul a df parancs kimenetnl, a w parancsnl, de rengeteg egyb
helyen is. Nemcsak ilyen, hanem igazndibl tetszo leges szvegbol val kivgsra
szolgl a cut. Megadhat, hogy karaktereket vagy valamilyen jellel elvlasztott mezoket szedjen ki neknk. Pldaknt hasznljuk fel a /etc/passwd fjlunkat. Ez
gy pl fel, hogy egy-egy sorban egymstl ketto sponttal elvlasztva szerepelnek az
egyes felhasznlk nevei, jelszavai majd egyb fontos adatai. Oldjuk meg most azt,
hogy csak a felhasznlk neveit ratjuk ki ebbo l:

37

[root:~]>cut -d: -f1 /etc/passwd


root
bin
daemon
adm
lp
...

A -d utn kvetkezo karakter szerepel a mezok elvlaszt jeleknt, a -f utn pedig az elso mezo sorszmt adtuk meg, gy azt rja csak ki. Ha fix szlessgu oszlopaink vannak, akkor hasznlhatjuk a -c kapcsolt: utna azt kell berni, hogy melyik
karakterpozcitl meddig akarjuk kivgni az adott sorbeli szveget. Szurjk meg ennek segtsgvel a df -h parancs kimenett gy, hogy csak az els o oszlop maradjon,
valamint a szabad helyet feltnteto oszloptl jobbra eso rsz:
[root:~]>df -h | cut -c1-11,34Filesystem Avail Use% Mounted on
/dev/hda2
1.9G 49% /
/dev/hda1
2.1G 47% /mnt/win_c
/dev/hda5
5.9G 47% /mnt/win_d

Itt eloszr az elso s a 11. karakter kztti, majd pedig a 34. karakterpozcitl a
sor vgig terjedo rszt vgtuk.
Szintn szeletelsi muveletet hajt vgre a split, de ez gy mukdik, hogy egy
nagyobb fjlt tbb, ltalunk szablyozhat mretu, kisebb rszre oszt szt. Csinljunk egy munka/ knyvtrat, msoljuk ide a /etc/passwd fjlt, majd alkalmazzuk
a split -l 5 passwd proba parancsot! Ennek hatsra olyan fjlok jnnek
ltre, amelyek maximum 5 sorosak, s nevk eleje proba, majd a program automatikusan ehhez hozzilleszti az aa, ab, ac stb. karaktereket is. Tartsuk meg ezek kzl az
elso kettot, hogy a kvetkezo parancsot is ki tudjuk prblni, illetve, hogy be tudjunk
mutatni egy olyan lehetosget, amire eddig mg nem kerlt sor.
A helyettesto (joker) karakterek kzl mr hasznltuk a csillagot, ami tbbfle s
tbb szm karaktert helyettest. A DOSban megszokott mdon a krd o jel is hasznlhat. Van azonban ezeken kvl ms leheto sg is. Nzzk pontosan, mi is a feladat. Az
sszes probaa kezdetu, de nem a vagy b vgu fjlt kell kijellnnk trlsre. Megoldsknt knlkozik a szgletes zrjelek alkalmazsa: azon karakterek brmelyike
elofordulhat az adott karakterpozcin, amit ebben felsorolunk. Most c-t o l egszen
z-ig engednk meg a fjlok vgn karaktereket, teht a kiadand parancs gy nz ki:
[root:~/munka]>rm -f probaa[c-z]

A terep tiszta a paste parancs alkalmazshoz. Mukdse abban ll, hogy kt


vagy tbb fjl tartalmt egybeillessze oly mdon, hogy a megfelel o sorszm soraikat
egyms mell rakja.Teht a paste probaaa probaab utasts eredmnye olyan
fjl lesz, amiben az elso sor elso fele a probaaa elso sora, msodik fele a probaab
elso sora, s gy tovbb de inkbb nzzk meg, elmondva bonyolultabban hangzik.
Miutn darabolni mr nagyon jl tudunk, fogjunk rendraksba, egszen pontosan
rendezsbe a sort segtsgvel. Feladata ABC sorrendbe rakni a fjlok tartalmt. A
probaaa egyszeru nvsorba rendezshez a felhasznli nevek alapjn nem is kell
ms, csak egy sort probaaa, fordtott sorrendbeli rendezshez pedig egy -r paramter. Ha a karakter felfoghat szmknt is, mint jelen esetben a harmadik mez o beli
User ID, akkor a -n segt. Nem muszj az elso karakter vagy ppen mezo szerint rendezni, erre pldaknt lssuk azt az esetet, amikor fjlunkat a harmadik mez o je alapjn
akarjuk cskkeno sorrendbe rakni. Az eredeti fjlt rassuk ki a cat paranccsal, hogy
ssze tudjuk hasonltani, majd rjuk be:
38

[root:~/munka]>sort -t: +2 -n -r probaaa

Elemezve: a mezoelvlaszt jel a kettospont, ez szerepel a -t utn; a mezo k sorszmozsa itt 0-tl indul, ezrt kell a +2; a -n numerikus rendezst r el o , a -r pedig
megfordtja a sorrendet.
A sort gyakran kzsen hasznlatos a uniq paranccsal: ez a bemenetre rkez o
szvegbol kiszuri az ismtlodoket, s csak egyszer jelent meg minden sort.
Szvegekben val keressre hasznlatos a grep. Mielo tt hasznlatrl beszlnnk,
szt kell ejteni az n. regulris kifejezsekro l, amivel nagyon bonyolult szvegmintkra
is lehet hivatkozni. Tbb szablya van, ezek kzl csak a fontosabbakat ismertetjk:
minden karakter, ami nem a [ ] $ ^ .* \ + karakterek valamelyike, nmagt
jelenti egy regulris kifejezsben, ezt gy is mondjuk, hogy nmagra illeszkedik;
a fenti karaktereket gy lehet megadni sajt, literlisan vett rtelmkben, hogy \
jelet rakunk elbk, teht pldul a \$ jelenti a dollrjelet;
a . (pont) karakter brmely karakterre illeszkedik; emiatt a pist. regulris
kifejezs jelentheti a pista, pisti, pistuka szveget is;
a * karakter az o t megelozo regulris kifejezs 0 vagy tbbszri elo fordulst
jelenti. Emiatt a a pist.* lehet pista, de lehet pistuka is, so t a pist is,
mivel ekkor pontosan 0-szor fordul elo az utols helyen vett karakter;
a szgletes zrjeleken bell felsorolt karakterek brmelyike el o fordulhat az
adott pozcin, kivve, ha a legelso karakter ^;
a regulris kifejezs utn rt $ jel a mintt a sor vgre, mg a kifejezs el rt ^
jel a sor elejre illeszti;
tbb egyms utn rt regulris kifejezs is regulris kifejezs lesz.
Ne ijedjen meg senki, nhny plda utn jval rtheto bb lesz ez a dolog. Lssunk is
hozz! Ksztsnk egy pldafjlt proba nven, s tltsk fel a kvetkez o tartalommal
(a hatodik sor res):
joska
jozsika
jolika
jocika
pist
pista
pistu
pistuka
pistike
juliska

majd adjuk ki a kvetkezo parancsot:


[root:~/munka]>grep pist. proba
pista
pistu
pistuka
pistike

Ha a pist.* regulris kifejezst hasznljuk, kirdik a pist is a fent emltettek


rtelmben. rassuk ki most a j betuvel kezd o do neveket:
39

[root:~/munka]>grep ^j proba
joska
jozsika
jolika
jocika
juliska

Most azokat, amik nem a beture vgzo dnek (itt a szgletes zrjel utn kvetkezo
az o t kveto a betu tagadst jelenti):
[root:~/munka]>grep [^a]$ proba
pist
pistu
pistike

Prbljuk meg azokat a neveket kiratni, amelyek kezdete jo, majd nem c betu
kvetkezik, vge pedig ika:
[root:~/munka]>grep jo[^c]ika proba
jolika

Adjuk meg az res sor sorszmt! Ehhez a -n paramter szksges, ami minden,
a mintnak megfelelo sor el kirja annak sorszmt is. Valamint azt kell tudni, hogy a
^$ kifejezs jelenti az res sort:
[root:~/munka]>grep -n ^$ proba
6:

Vgl rjuk t a szvegben jozsika s jolika nevt nagybetusre, hogy kiprblhassuk azt, amikor nem tesz klnbsget kis- s nagybetu kztt:
[root:~/munka]>grep -i jo.* proba
joska
Jozsika
Jolika
jocika

Mind a regulris kifejezsek, mind a grep rejteget mg jcskn kiprblni valt,


jrjunk utna!

1.15. Folyamatkezelo parancsok


1.15.1. Folyamatkezels
A tbbfeladatos (idegen szval multitaszkos) opercis rendszerekben egy felhasznl
tbb programot is futtathat egyszerre. Br egy processzor egy id o pontban csak egy feladatot tud elltni, a megolds az, hogy a vgrehajts nagyon gyorsan egyik programrl
a msikra kerl t, s ezltal gy tunik, hogy minden prhuzamosan zajlik. A felhasznl ltal elindtott programokat az sszes hozzjuk tartoz adattal kzs nven
processznek vagy folyamatnak hvjuk. Mindegyik rendelkezik egy egyedi azonost
kddal, ennek rvid neve a PID (Process IDentifier). Kso bb ezzel a kddal tudunk a
folyamattal tbb dolgot csinlni, pldul lelltani, de egyb jelzseket is kldhetnk
szmra. Van azonban egy olyan folyamat, nv szerint az init, amit nem szoks gy
lelltani: ez az 1-es PID tulajdonosa, o indul el elsonek a rendszer betltsekor, s
emiatt o t nevezhetjk Minden Processzek Atyjnak. Egy processz szlhet jabbakat is, tipikus plda erre a hjprogramunk, amibo l tovbbi programokat indtunk. Ha
viszont egy ilyen, n. gyermek-folyamat mg nem futott le, de szl o je megszakad, akkor bevett kifejezssel zombiv vlik. Nmely folyamatok nem kt o dnek szorosan egy
40

terminlhoz, ezek valamilyen rendszerszintu feladatot ltnak el. Ide tartoznak pldul
a hlzati kiszolglk (tbbek kztt FTP- vagy WWW-szerverprogramok), ezeket dmonoknak hvjuk. Nemhiba rta egy szakr, hogy ezek a dolgok vltoztatjk vidm
pokoll a UNIX belsejt.
A fut folyamatokrl val tjkozds alapveto eszkze a ps, amivel kilistzhatjuk
ezeket. Nagyon sok kapcsolja van, prat prbljunk ki! El o szr lssuk, jelenleg milyen folyamatok futnak a terminlunkon. Ehhez nem kell kln paramter, ha viszont
tbb helyrol is be vagyunk jelentkezve, akkor krdezzk le valamelyik msikat! A w
megmutatja a terminl kdjt, majd, ha trtnetesen a tty1 szerepel a listn, akkor:
[root:~]>ps -t tty1
PID TTY
TIME CMD
655 tty1
00:00:00 login
663 tty1
00:00:00 bash
719 tty1
00:00:00 xinit
727 tty1
00:00:04 icewm

A pldban lthat, hogy az elso oszlopban tallhatk a folyamatazonostk, s


a vgn a processzek nevei. Egy program processzazonostja knnyebben is lekrdezheto a pidof programnv utastssal. Kvncsiak vagyunk a ms felhasznlk
ltal futtatottak adataira is? Legyen mondjuk ismt pistike a kiszemelt ldozat, leleplezhetjk minden mesterkedst a ps -u pistike kiadsval. A rendszerben fut
sszes folyamatot a ps aux listzza ki, ha kibo vtjk mg a w kapcsolval is, akkor az
esetleges hosszabb parancssorok is lthatv vlnak. Ilyenkor tbb oszlopnyi adatsor
jelenik meg, lthatjuk tbbek kztt a folyamat ltal ignybe vett CPU-id o t, memriaignyt, mikor indult, s milyen llapotban van ppen: fut, bevitelre vr, lellt vagy
netn zombi. Ltvnyos eredmnyt ad a --forest vagy egyszeruen f kapcsol:
[root:~]>ps f -u pistike
PID TTY
STAT
TIME COMMAND
1081 tty2
S
0:00 -bash
1140 tty2
S
0:00 /usr/bin/mc -P
1141 ?
S
0:00 \_ cons.saver /dev/tty2
1142 pts/3
S
0:00 \_ bash -rcfile .bashrc

Amint lthat, ASCII-karakterek segtsgvel igyekszik brzolni a folyamatok


fggosgi viszonyait. A pstree is hasonl clt szolgl, paramter nlkl kiadva az
init processztol kiindulva az sszes fut folyamatot kijelzi.
Arra, hogy folyamatosan figyelhessk a processzek llapott, a top hasznlhat.
Bizonyos idokznknt frissti az adatait, s ezt listzza ki, gy jobban kpben lehetnk
a gpen foly viszonyokrl. Menet kzben egybetus parancsokkal vezrelhet o , hogy
mit s hogyan rjon ki. Ezek kzl csak ketto t rdemes nagyon megjegyezni: a h mutatja meg, milyen parancsok hasznlhatk, a q pedig kilptet. Futs kzbeni llapott
brzolja az 1.5. bra:
A processzek rendelkeznek egy olyan azonostval, ami megmondja az opercis
rendszer feladat-temezoje szmra, hogy milyen fontossg a tbbihez viszonytva,
vagyis milyen prioritssal rendelkezik. Ez az azonost a nice-level nevet viseli, s a
top kimenetben a NI oszlop alatt lthatk az rtkei az egyes folyamatokra. Egy
programot -20-tl 19-ig terjedo nice-szinttel tudunk elindtani. Minl nagyobb a negatv szm, annl nagyobb a priorits, teht annl tbbet s tbbszr foglalkozik vele
a rendszer. Egy programot a nice --20 programnv utastssal tudunk gy elindtani, hogy most ezzel legyen a legjobban elfoglalva a gpnk. Fut folyamatnak
pedig a renice segtsgvel lehet megvltoztatni ezt a jellemzo jt (de erre csak a
rendszergazda, msnven a root kpes). Pldul a renice -10 1124 az 1124-es
processz-azonostj programhoz a -10-es nice-szintet rendeli.
41

1.5. bra. A top mukds kzben


A folyamatok jobb esetben rendben lefutnak, de gyakran van szksg arra, hogy
mukdsket fellbrljuk. Ez ltalban a lellts, fo leg ha lefagyott, rendetlenkedik.
A gyilkosan hangz nevu kill parancs a fegyver a keznkben ilyen esetekre. Ktelezo paramtere egy folyamatazonost, de gyakran kiegsztjk ezt egy olyan paramterrel, ami szablyozza, milyen brutlisan akarunk elbnni a processzel. A legdurvbb
mdszer a -9 kapcsol, ami a SIGKILL nevet viseli (az sszes kiadhat jelzs, szignl
lersa megtallhat a man 7 signal parancsra megjeleno kziknyvben). Vicceljk meg szegny pistikt! Mialatt dolgozik, lo jk ki a parancsrtelmezojt, ez persze
azonnal kilpteti o t a rendszerbol:
[root:~]>ps -u pistike
PID TTY
TIME CMD
1196 tty3
00:00:00 bash
[root:~]>kill -s KILL 1196

A kill -9 1196 parancs is ugyanerre az eredmnyre vezet (mindez persze csak


rendszergazdaknt mukdik). Ezzel a legero sebb fokozattal, ha lehet, csak vgso esetben ljnk lefagyott processz esetn, elo szr mindig prblkozzunk gyengdebb mdszerekkel is.
Feltve, hogy egyszerre tbb azonos nevu programnak szeretnnk jelzst kldeni,
hasznlhat a killall parancs. Azt az esetet nzzk meg, amikor tbb pldny is
fut a gpen az xbill nevu jtkprogrambl, s mindet le szeretnnk lltani. El o szr
megnzhetjk a pidof felhasznlsval, melyek is ezek a processzek, majd takarodt
fjunk nekik:
[root:~]>pidof xbill
1681 1566
[root:~]>killall xbill

42

Amikor elindtunk egy programot, akkor az az elo trben fut, a billentyuzeten adunk
t neki adatokat, o pedig a kpernyon zen vissza. A parancsrtelmezo k lehetosget
adnak azonban arra is, hogy az elindtott programjainkat a httrben futtassuk, ami azt
jelenti, hogy ha nem felttlenl szksges a futshoz az lland beavatkozs, akkor
amg dolgozik, addig mi mssal is tudunk foglalkozni. Az ilyen httrben futtatott
folyamatok elnevezse job vagy feladat. Prbljuk ki azt az esetet, amikor a find
segtsgvel az sszes t betuvel kezdo do nevu fjlt meg akarjuk keresni! Ez ido ignyes
feladat, de az ido pnz, mi addig mst is szeretnnk csinlni. Mi sem egyszerubb: a
find / -name t* & parancs kiadsval a program a httrben indul el, erre az
& karakter utastja, s azonnal visszakapjuk a kszenlti jelet. Illetve el o tte kt kdot
ltunk: az elso, szgletes zrjelben lvo szm a feladat azonostja, mellette pedig a
program processz-azonostja szerepel, hogy a kso bbiekben tudjunk rjuk hivatkozni.
Menetkzben, mivel mshogy nem rendelkeztnk, a find az eredmnyeket kirja a
kpernyore. Ez nha zavar lehet, ilyenkor hasznljunk fjlba val tirnytst. A
jobs parancs kiadsval lthatjuk, ppen milyen llapotban van a feladatunk:
[root:~]>jobs
[1]+ Running

find / -name t* &

vagyis mg javban fut. Amikor lefutott, arrl a


[1]+

Exit 1

find / -name t*

zenet tudst. Indtsuk most el ugyanezt a jobot gy, hogy id o legesen megszaktjuk a
futst. Ez gy rheto el, hogy az indts utn pr msodperccel lenyomjuk a CTRL-Z
billentyukombincit (ilyenkor persze nem rjuk ki a parancssor vgre az & jelet!). A
kvetkezo feliratot kell ltnunk:
[1]+

Stopped

find / -name t*

Most dolgozhatunk valami mson, de a feladat addig nem folytatdik az el o bbi


esettel ellenttben, amg jra az elotrbe nem hozzuk, mgpedig az fg parancs segtsgvel. Ennek paramtere egy szzalkjel utn a job azonostja, ami most 1:
[root:~]>fg %1
find / -name t*

jra kijelezte a parancssort, s ismt ltjuk, hogy dolgozik. A kvetkez o lpsben jra lltsuk meg a CTRL-Z segtsgvel, de most majd azt szeretnnk, hogy az
elso esetben ltottakhoz hasonlan vgezze a httrben a feladatt! Ehhez a bg parancs szksgeltetik, ami ismt csak a feladatazonostval mint paramterrel kiadva
jobunkat a httrbe kldi:
[root:~]>bg %1
[1]+ find / -name t* &

A kijelzett parancsor ugyanaz, mint amit legelo szr kiadtunk. Ne vrjuk vgig
ismt, amg vgez, hanem hozzuk az elo trbe, majd ha a CTRL-C billentyukombincit
hasznljuk, ettol azonnal meg fog llni. Ez egybknt a legtbb programnl hatsos
fegyver, ha meg akarjuk szaktani.
Abban az esetben, ha egy hosszadalmas feladatot szeretnnk mg elindtani, de
nincs tbb idonk a gp elott maradni, jn jl a nohup parancs. Clja az, hogy az
utna rt parancsot akkor is folytassa, ha kilptnk. Prbljuk ki teht, hogy belpnk
a rendszerbe, kiadjuk a
43

nohup find / -name t* > ~/nohup.log &

parancsot, majd egybol ki is lpnk! A keress eredmnye a home knyvtrunkban


keletkezo nohup.log fjlban vr majd bennnket, de elmeno ben mg hallhatjuk,
hogy nem szakad meg a find tevkenysge.
A Linuxban lehetosg van arra, hogy n. futsi szinteket, runleveleket hasznljunk.
Ezek nem msok, mint adott processzek halmazai, amiket elindtva meghatrozott feladatokra lehet rlltani a gpet. Az 1-es futsi szint az egyfelhasznls zemmd, ekkor
csak a rendszergazda tud bejelentkezni a konzolon, s fo leg belltsi, hibajavtsi feladatokat tud elvgezni. A 2-es s a 3-as a szveges md bejelentkezsre alkalmas,
teljes hlzatos zemmd. A 4-est nem nagyon hasznljk, az 5-s a grafikus fellet
automatikus indtsra szolgl (ekkor mr a bejelentkezs is ilyen mdon trtnik), a
0 a HALT, vagyis meglls, a 6 pedig a REBOOT, vagyis jraindts szintje. Indulskor az init program megvizsglja a /etc/inittab fjl tartalmt, ebbo l olvassa
ki az alaprtelmezett runlevel rtkt, s az ezen a szinten meghatrozott programokat
indtja el. Az aktulis futsi szint a runlevel paranccsal krdezhet o le; ha induls utn
adjuk ki, egy N betu s a megfelelo szmrtk ltszik. Menet kzben is lehet vltani
az init processznek tadott kddal, teht az init 5 parancs az 5-s szintre viszi a
gpet: azokat a programokat lelltja, amik ott nem kellenek, s el is indt nhnyat.
Ezek utn a runlevel mutatni fogja az elo zo s a mostani szint rtkt is.

1.15.2. Idoztett parancsvgrehajts


Nha az a clravezeto, hogy bizonyos feladatokat egy adott ido pontban vgezznk el.
Teszem azt egy nagyobb mretu fjl letltse az Internetro l az jszakai rkban vrhatan gyorsabb, mint napkzben, de ha nem vagyunk jjeli o rk, mris gondban vagyunk. Aki viszont ismeri az at parancs leheto sgeit, mris felllegezhet. Ezt felhasznlva egy, a rendszeren fut dmon-programot, az atd-t tudjuk arra utastani, hogy a
megbzsunkbl adott idoben indtson el egy feladatot. Ha ez a feladat sszetettebb,
vagy a parancssora hossz, bonyolult, clszeru ezt berni egy szvegfjlba, majd ezt
tadni neki paramterknt, hogy onnan olvassa ki a teend o ket. Prbljuk ki teht gy,
hogy berjuk egy todo nevu fjlba a mr jl bevlt parancssorunkat, s szeretnnk, ha
jfl elott egy perccel ltna neki:
[root:~]>at 23:59 -f todo
warning: commands will be executed using /bin/sh
job 4 at 2001-07-11 23:59

Az zenet szerint majd egy sh parancsrtelmezo fogja vgrehajtani, 4-es szm


feladatknt a krt idoben. Annak a kilistzsa, hogy milyen feladatokat kell mg elvgezni, hogyan ll a vrakozsi sor, az atq feladata:
[root:~]>atq
4
2001-07-11 23:59 a

Egy feladat van most a sorban, a vgn ll a betu jelzi, hogy mg vrakozik. Ha itt
egy egyenlosgjelet ltunk, akkor az a feladat ppen vgrehajts alatt ll. A vrakozsi
sorbl val kivtelre az atrm szolgl, csak meg kell neki adni a job sorszmt (akr
tbbet is lehet szkzzel elvlasztva).
Az at egybirnt nagyon sokfle formban elfogadja az ido pont megadst, nhny a lehetsges varicik kzl:
noon, midnight dli, illetve jjeli 12 rakor;
44

2pm tomorrow holnap dlutn 2 rakor;


1am Sun vasrnap hajnali egykor;
13:13 01.01.02 2002. janur elsejn 13 ra 13 perckor;
now + 2 minutes (hours, days,weeks) mostantl szmtott 2 perc (ra, nap, ht)
mlva.
Ebbe a csaldba tartozik mg a batch, ami akkor hajtja vgre a feladatot, ha azt
a rendszer terhelse megengedi. A feladat elvgzsro l a felhasznl egy levelet kap,
amibol informcit nyerhet az esetlegesen felmerlo hibk okairl is.
Van, akinek mg ez is kevs, mivel egy feladatot tbbszr, periodikusan akar elvgeztetni. Pldakppen lehet emlteni, hogy a leveleit naponta szeretn egy msik
levelezoszerverrol letltetni a sajt gpre. Neki sem kell a szomszdba mennie megoldsrt, mert a crond dmont erre talltk ki. Ez percenknt felbred, s megnzi
a hivatalosan a /var/spool/cron alatt lvo fjlokat, amiket a felhasznlk egynileg a crontab programmal hozhatnak ltre s mdosthatnak, s amik tartalmazzk
azt, hogy milyen parancsokat s milyen ido kznknt kell vgrehajtania. Ennek a fjlnak a kinzete kttt, s gy pl fel:
esetleges krnyezeti belltsok
perc ra hnap_napja hnap ht_napja parancs

Az elso rszben teht olyan krnyezeti vltozkat adhatunk meg, amik a parancsok
hibtlan lefutshoz esetleg szksgesek. Ugyanis ezeket egy j hjprogramot nyitva,
annak krnyezeti belltsaival futtatja a dmon. Majd kvetkezik az, hogy mikor s
milyen parancsot kell lefuttatni. A percek 0-tl 59-ig, az rk 0-23-ig s a tbbi adat is
rtelemszeruen soroland fel (a ht napjainl a 0 vagy a 7 jelenti a vasrnapot, de lehet
az angol rvidtseket is hasznlni). Nhny pldbl mindez vilgosabb lesz:
0 12 1 * * parancs1 minden hnap elsejn 12 rakor;
30 0,12 * * Wed parancs1 szerdnknt 0:30 s 12:30 rakor;
0-59/20 * * Jul 1-3 parancs1 jliusban minden hten, htfo tol szerdig 20 percenknt
fut le a parancs1.
Lthat, hogy itt is nagyon rugalmasan adhatak meg az id o intervallumok. Teljes
lersuk a man 5 crontab parancs kiadsa utn elrheto . Lssuk a gyakorlatban is
ezt, adjuk ki a crontab -e parancsot, ezzel editlni tudjuk a fjlt (ha az EDITOR
krnyezeti vltoznk nincs msra belltva, akkor a vi programmal), s rjuk bele:
0-59/2 * * * * echo Hello >> ~/hello

majd figyeljk a /hello fjlunkat, akr a tail -f ignybevtelvel! Ktpercenknt


egy jabb Hellonak kell megjelenni mul szemeink elo tt. Arrl, hogy a fjl ne rdjon
fell, hanem mindig hozzcsatolja az jabb szveget a vghez, a >> jelek gondoskodnak, teht nem egyszeru tirnyts, hanem hozzfuzo tirnyts szksges.
Mind az atd mind a crond mukdsrol jlnevelt dmon-programokhoz mltn a /var/log knyvtr alatti naplfjlok tjkoztatjk a rendszergazdt, de ha
gy ltja jnak, brmely felhasznlt.

45

1.16. Hlzati eszkzk kezelse, gyflprogramok


A Linux az Interneten szletett s fejlo dik ma is, nem vletlen teht, hogy igen hatkony eszkzket s lehetosgeket biztost a hlzatokban elo fordul minden problmra. Nemcsak TCP/IP alap, vagy Microsoft Network, Novell Netware hlzatok
aktv rszese, hanem OS/2-t futtat vagy Apple Macintosh gpekkel is jl tud kommuniklni. Egy hlzatba kapcsolt gpen az alapveto belltsokat a rendszergazda vgzi,
de a felhasznlk is tjkozdhatnak ezekro l, s a nyjtott szolgltatsokat is o k lvezik, fussunk t teht ezeken a parancsokon, br csak rint o legesen, hiszen ezzel foleg
egy msik fzet foglalkozik.
Arrl, hogy milyen hlzati eszkzk vannak a gpen, az ifconfig kiadsval
szerezhetnk tudomst. A lo, vagyis loopback, magyarul visszacsatol eszkz mindenkppen szerepelni fog a listn, s Ethernet hlzat esetn, ami a leggyakoribb, egy
vagy tbb ethx eszkz, ahol x ezek sorszma, 0-tl indulva. Mindegyik eszkzr o l
kilistzza annak tpust, IP cmt, az alhlzati maszkot, a broadcast-cmet s egyb
informcikat. A route parancs a gp n. tvlasztsi tblzatnak kiratsra s
mdostsra szolgl; ezen tblzat alapjn tudja azt, hogy a hlzatban az adatokat
merre kell tovbbtani.

1.6. bra. Egy mindentud hlzati belltprogram


A fentieknl jval gyakrabban hasznlatos a ping program, amivel hlzati kapcsolatok mukdokpessgt tudjuk tesztelni. Paramtere ltalban csak egy IP cmmel
vagy teljes domain-nvvel adott gp, aminek olyan zenetet kld, amire az kteles vlaszolni (br ez is letilthat, de ltalban nem szoktk). Ebbo l ltszik a kt gp kzti
adatkapcsolat minosge is, mivel a vlaszidoket is megjelenti. Ha a -c szm paramtert megadjuk, akkor pontosan szm-szor kldi el a rvid kis adatcsomagjt, egybknt a CTRL-C megnyomsig folyamatosan bombzza a clgpet. A traceroute
46

ennl is rdekesebb eredmnyt ad, mivel a kiindulsi helyto l kezdve a megadand clgpig felsorolja azokat az llomsokat, amiken az zenet keresztlmegy. Nagyon jl
hasznlhat arra, hogy lssuk, hol vannak szuk keresztmetszetek a hlzatban.
A netstat segtsgvel a mukdo hlzati kapcsolatokrl lehet felvilgostst
nyerni. Paramter nlkl kiadva valami hasonlt lthatunk:
[pistike:~]>netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address
Foreign Address
State
tcp
0
0 star.valami.hu:1042
king.valami.hu:ftp
ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags
Type
State
I-Node Path
unix 1
[ ]
STREAM
CONNECTED
917
@0000005d
unix 1
[ ]
STREAM
CONNECTED
920
@0000005e
unix 0
[ ]
STREAM
CONNECTED
220
@00000020
unix 1
[ ]
STREAM
CONNECTED
29463 @00000063
...

Itt ppen egy FTP-kapcsolat van a harmadik sor tansga szerint egy
king.valami.hu nevu szerverrel. Az als rszen a hlzati kapcsolatok szmra nyitva
lvo n. socketek lthatk. Ezek a kommunikci vgpontjai a gpen, minden adatcsatorna szmra nylik egy ilyen. A -a paramterrel minden socketet kilistz, mg az
ppen nem aktv, csak figyelo llapotban lvoket is, a -c pedig folyamatos figyelsre szltja fel.
A tcpdump a hlzaton tmeno adatcsomagokat figyeli. Bellthat, hogy ezek
kzl csak bizonyos gpekre, szolgltatsokra, protokollokra vagy a kapcsolat irnyra stb. vonatkoz adatokat szurjn ki szmunkra. Rendszergazdknak ajnlatos beszerezni az iptraf programot is, ami menvezrelt rendszerben, rengeteg szolgltatst
nyjt hasonl tmakrben.
Ms felhasznlkrl val informciszerzsi parancsokat mr lttunk, akad azonban mg nhny. Jelesl, ha valakiro l szeretnnk megtudni, mikor lpett be legutbb a
rendszerbe, akkor a last felhasznlnv gpelendo be, pldul:
[root:~]>last pistike
pistike tty3
pistike tty2
wtmp begins Sun Jul

Tue Jul 10 21:23 - 22:15


Tue Jul 10 21:23 - 22:14

(00:51)
(00:51)

1 19:01:52 2001

A legutols sorban lthat, hogy ezeket az adatokat a rendszer egy


/var/log/wtmp nevu fjlban trolja, aminek indulsi ido pontja is leolvashat, teht
tulajdonkppen csak az azta jegyzett belpseket lthatjuk itt. Ha minden egyes felhasznlrl ltni akarjuk ezeket az adatokat, ahhoz pedig a lastlog parancs kell; ez
csak a legutols belps dtumt adja meg, vagy ha az illeto a /var/log/lastlog
frisstse ta nem lpett be, akkor a Never logged in feliratot.
Nagyon sok informcit kaphatunk valakiro l, aki akr egy tvoli gpen lehet regisztrlt felhasznl, a finger program segtsgvel. Ahhoz, hogy mukdjn azon
a gpen, amin a clszemlynknek van azonostja futnia kell a fingerd dmonnak, de ha ez teljesl, akkor hasonl kp trulhat elnk:
[root:~]>finger root@king.valami.hu
[king.valami.hu]
Login: root
Name: root
Directory: /root
Shell: /bin/bash
On since Wed Jul 16 13:30 (CEST) on tty1
2 seconds idle
(messages off)
No mail.
Plan:
Break the gates!

47

Teht csak az adott szemly e-mail cme kell, s mris sok mindent megtudunk
rla, mg azt is, mit tervez (a Plan: utn lthat, ez az illeto sajt knyvtrban lvo
.plan fjl tartalma). ppen emiatt sok helyen az elso dolga a rendszergazdnak,
hogy a tbbi nem tl biztonsgos vagy felesleges szolgltats mellett ezt is lelltsa a
szervern, mivel a crackerek szmra j kiindulpont lehet.
Nha jlesik pr szt szlni valakihez, mg ha elektronikus formban is. Rvid
zenetet kldhetnk a write parancs felhasznlsval egy velnk egytt bejelentkezett felhasznlnak. Lpjnk be megint pistike nevben, majd rootknt rjuk be:
[root:~]>write pistike
<userinput>hello!!!

s nyomjunk a vgn CTRL-D kombincit (ami tudjuk az adatbevitel vgt jelenti).


Ennek hatsra (hacsak pistike nem tiltotta le az zenetkldst a mesg n paranccsal),
a terminljn megjelenik az zenet, valamint az, hogy ki kldte s mikor, valamint az
EOF, az zenet vge jel. Ez a kommunikci egyirny, ha valban csevegni akarunk egymssal, akkor ezt a talk usernv utastssal kezdemnyezhetjk. Szintn szksges hozz a gpen fut talkd vagy ntalkd nevu dmon. A kivlasztott
felhasznl terminljn olyan tartalm zenet jelenik meg, amiben lthat, ki hvja
csevegsre, s hogyan lehet vele felvenni a kapcsolatot. Ha pldul a rendszergazda
akar velnk beszdbe elegyedni, ne ttovzzunk vlaszolni neki a talk root begpelsvel, ekkor mindkt fl kpernyo jn a Connection established, vagyis a
Kapcsolat ltrejtt lthat. Innento l kezdve amit begpelnk, az a kt rszre osztott
kpernyo felso, mg a partnertol rkezo vlaszok az als rszn olvashatk. Kilpni a
CTRL-C megnyomsval lehet. Vgl, a rendszergazda a minden felhasznlnak szl
zeneteket a wall paranccsal kldheti ki. Pldnak okrt ha az Ideje hozni a sreimet! kell hogy megjelenjen mindenkinl, akkor a teendo je a kvetkezo: a parancs
kiadsa utn egy ENTERt kell nyomni, berni a szveget (minden sor utn ENTERrel),
majd az utols res sort CTRL-Dvel lezrva mr vrhatja is jl megrdemelt jutalmt. . .
Az Internet szolgltatsainak ignybevtelre szolgl programok tmkelege hasznlhat Linux alatt, az egyszeru levelezsto l kezdve a manapsg divatos fjlmegosztsi
programokig. Anlkl, hogy rszletesen ismertetnnk a hasznlatukat, lljon itt mgis
azoknak a fobb programoknak a listja, amiket jrszt minden gpen elrhetnk:
mail, pine, mutt elektronikus levelezsre;
ftp, ncftp FTP szolgltats ignybevtelre;
lynx web-bngszsre karakteres zemmdban;
tin, rtin, trn a newsgroupok, hrcsoportok olvassra;
telnet, ssh tvoli gpek elrsre;
irc az Internet Relay Chat, vagyis vilgmretu csevegs ignybevtelre;
wget WWW- s FTP-szerverek tartalmnak rekurzv letltsre, tkrzsre.

1.17. Kernel s program pts, kernel modulok


A Linux s alkalmazsai, szabad forrskd rendszer lvn, teljes egszben hozzfrhetok az Interneten olyan formban, hogy a programozk knnyen tudjk mdostani,

48

javtani. Ezek a forrsnyelvu llomnyok az esetek tbbsgben .tar.gz vagy jabban .tar.bz2 kiterjesztssel forgalomba kerlo archvumok, amelyek kezelst mr
ismerjk. Kicsomagolsuk utn rendelkezsnkre ll az adott program kdja azon a
programnyelven, amin megrtk. Ez dnto tbbsgben a C vagy C++, br nha mellkelik a binris, lefordtott vltozatot is. Ezek utn mindig olvassuk el a mellkelt
README illetve INSTALL fjlokat, mert ezek rjk le a pontos teleptsi menetet: milyen egyb programok, trgykdknyvtrak meglte szksges a futshoz, hova kerl
telepts utn a program, hogyan kell indtani, valamint esetlegesen azt, hogy milyen
szolgltatsokat lehet a fordtsnl engedlyezni vagy tiltani. A kvetkez o lps, hogy
ha van a forrsfban egy configure nevu llomny, akkor annak a lefuttatsa. Ez
ugyanis vgignzi a gp aktulis belltsait, sszegyujti a szksges adatokat, s ezek
alapjn kszti el az n. Makefile nevu llomnyt, ami alapjn a fordts menett
vezrlo program, a make dolgozni tud. A programok kdja nagyon ritkn rkezik
egyetlen fjlban, a legtbbszr rengeteg rszbo l ll, ezek a .c illetve a .h kiterjesztst
viselik (ez utbbiak az n. header-fjlok, amik a programrszekben tbb helyen is el o fordul, felhasznlt konstansokat, deklarcikat hordozzk). A make feladata, hogy a
programot a megfelelo sorrendben a megfelelo programokkal lefordttassa. Ezek lehetnek a gcc, a Linux C-fordtja, az as assemblerprogram, a strip, ami a ksz binrisbl a nyomkvetshez szksges informcikat tvoltja el, vagy az install, ami a
vgn a megfelelo helyre msolja a lefordtott programot s komponenseit, s mg tbb
ms segdprogram is. Amikor teht a configure szkript elkszlt a Makefile ltrehozsval, utna a legtbbszr csak egy make, majd egy make install parancs
szksges ahhoz, hogy telepljn a program, leginkbb a /usr/local/ alatti knyvtrfn bell.
Van, amikor ez nem megy ilyen egyszeruen, ennek oka legtbbszr az, hogy hinyzik egy olyan programcsomag, amire az j alkalmazsnak szksge van. Ekkor
azt is be kell szereznnk, lefordtanunk, s remlheto leg ezek a fggosgi problmk
megszunnek. Ha egy olyan programot szereztnk, ami eleve binris formtumban volt,
s szeretnnk meggyozodni arrl, hogy minden hozzval megvan-e a gpnkn, akkor adjuk ki az ldd program parancsot, ez a dinamikusan szerkesztett programrl
megjelenti a hozz szksges trgykdknyvtrak neveit, mint az albbi pldban is:
[root:~]>ldd /bin/sh
libreadline.so.4.1 => /lib/libreadline.so.4.1 (0x40020000)
libhistory.so.4.1 => /lib/libhistory.so.4.1 (0x40048000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x4004f000)
libdl.so.2 => /lib/libdl.so.2 (0x40053000)
libc.so.6 => /lib/libc.so.6 (0x40057000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Abban az esetben, ha a teleptendo program tartalmaz ilyen j trgykdknyvtrakat, s a teleptoje nem gondoskodna errol, adjuk ki az ldconfig parancsot rendszergazdaknt! Ennek hatsra frissl az az adatbzis, amiben a rendszer trolja a libek
elrhetosgeit, ez a /etc/ld.so.cache llomnyban tallhat.
Nzzk most vgig az opercis rendszer lelkt kpezo rendszermag, vagyis a kernel jrafordtsnak s teleptsnek menett. Erre a lpsre akkor van szksg, ha
a gyrilag rkezo kernelben nincsenek, vagy nem megfelelo en vannak meg azok a
szolgltatsok, amik neknk kellenek, j leheto sgeket ptettek be, biztonsgi rseket kell betmni vagy egyszeruen csak szeretnnk jobban kzben tartani a rendszernket. A kernel fejlesztse folyamatosan zajlik, mgpedig kt fo szlon: van egy fejlesztoi g, amelyen a legfrissebb, de emiatt mg nem kiprblt technolgik, j vagy
javtott szolgltatsok plnek be, s van az les felhasznlsra sznt stabil verzik
ga; ide akkor kerl j verzi, ha mr valamennyi ideig teszteltk. Jelen pillanatban
49

(2002. janur kzepn) a 2.4.17 a legfrissebb stabil verzi, ezt fogjuk a pldban hasznlni. A verzik szmozsra egybknt az a szably, hogy az els o a foverziszm,
ez most a 2, utna pros szm kvetkezik ha stabil, pratlan, ha fejleszt o i vltozatrl van sz (mg nem llt le a 2.2.x szria fejlesztse sem), a vgn pedig az ezen
belli sorszm tallhat. A forrs hivatalosan az ftp://ftp.kernel.org/ szerverr o l tltheto le, de van magyar tkroldala is, pldul az ftp://ftp.kfki.hu/ kiszolgln. A fjl
neve linux-2.4.17.tar.gz, ezt msoljuk be a /usr/src/ al, majd adjuk ki a
tar zxvf linux-2.4.17.tar.gz utastst a kicsomagolshoz. Ezek utn csak
egy linux nevu knyvtr keletkezik, de clszerubb (amennyiben tbb kernelverzit
is o rznk itt), hogy tnevezzk a verziszmnak megfelel o en, majd ksztnk r egy
szimbolikus linket linux nven. Ezek utn teht hasonlt kell ltnunk:
[root:/usr/src]>ls -l
total 164
lrwxrwxrwx
1 root
drwxr-xr-x
17 root
drwxr-xr-x
14 1046

root
root
utmp

11 Dec 21 20:07 linux -> linux-2.4.17/


4096 Apr 29 14:35 linux-2.2.17/
4096 Dec 21 20:39 linux-2.4.17/

Lpjnk mg be a ./linux/include alknyvtrba, s elleno rizzk, hogy vane asm nevu alknyvtr, ami a gp kiptsnek megfelelo en PC-n az asm-i386
knyvtrra mutat. Ha megvan, kvetkezhet a konfigurls, de el o tte szedjk ssze
minden ismeretnket a gp hardverre vonatkozan, mert szksg lesz r! lljunk
be teht a /usr/src/linux knyvtrba, s adjuk ki a make mrproper parancsot. Ez nem letbevg, de rdemes hasznlni, mivel utna tiszta lappal indulhatunk
neki a belltsoknak, illetve olyan alapveto problmk is kiderlhetnek, hogy pldul nincs is teleptve a make. Kvetkezhet a make config, de inkbb hasznljuk
a make menuconfig, vagy make xconfig parancsokat, mindegyik a belltsi
lpseken val vgigvezetst szolglja.
Arany kzputat vlasztva a make menuconfig kezelst trgyaljuk. Ez szveges mdban, a nylbillentyuk s az Enter hasznlatval kezelhet o . Tbb egyms alatti
menponton keresztl frnk hozz az egyes konfigurlhat elemekhez, mivel nagyon
sok van belolk, csak a fobb pontokat nzzk t:
Code maturity level options ezen bell vlasszuk ki a Prompt for... kezdetu
sort, ekkor tbb olyan belltsi leheto sget is elrnk majd ksobb, amit a fejlesztok mg nem tltek 100 szzalkosan biztonsgosnak s mukd o nek. A
belltst egy * karakter jelzi.
Loadable module support rdekes s hasznos leheto sge a kernelnek, hogy bizonyos rszei n. modulokba fordthatk. Ezek lehetnek olyan hardvereszkzk
meghajti, amik csak idolegesen hasznlatosak, vagy ritkbban ignybe vett
szolgltatsok kdjai. A memriba csak akkor tlto dnek be, ha valban szksg van rjuk, ezrt nagyon gazdasgos a hasznlatuk. Most engedlyezzk o ket!
Ezek utn majd sok eszkznl felknlja a program a modulba val fordts lehetosgt is.
Processor type and features a kzponti egysg pontos tpusa adhat meg itt. Gyorsthatja a gp mukdst, ha kihasznljuk az jabb processzorok adta lehet o sgeket. Itt kell a tbbprocesszoros rendszerekhez is a kernel tmogatst engedlyezni.
General setup legyen-e hlzati tmogats (mindig vlasszuk ki!), PCI, EISA, MCA
eszkzk tmogatsa, milyen programkd-formtumokat ismerjen a kernel (lltsuk be mindig fixen az ELF-et!).
50

1.7. bra. A make xconfig eredmnye


Parallel port support prhuzamos port s paramtereinek belltsa.
Plug and Play support a magtl mukdo eszkzk kezelsnek leheto sge.
Block devices tbbek kztt a hasznos loopback s ramdiszk eszkzk beptsi lehetosge. Fordtsuk ezeket modulba, ehhez egy m betut kell nyomni az adott
eszkz sorban, vagy a szkzt lenyomni prszor, amg az M betu meg nem jelenik.
Multi-device support a szervereken alkalmazott RAID s LVM technikk tmogatsa.
Networking options a hlzati mukdssel kapcsolatos, rendszerszintu belltsok,
amik kzl a TCP/IP mindig legyen bekapcsolva.
ATA/IDE/MFM/RLL support a felsorolt tpus adathordozk, s bizonyos alaplapi chipset-ek tmogatsa.
SCSI support nmagrt beszl. . .
Network device support a hlzati krtya tpusnak megadsa tallhat ezen bell.
Ha nem tudjuk pontosan, prblkozhatunk az NE2000 kompatibilis tpussal, a
legtbb krtya ismeri ezt a szabvnyt.
Character devices a virtulis terminlok belltsai, valamint a nem soros porti egerek tmogatsa.

51

File systems a klnbzo fizikai s hlzati fjlrendszerek tmogatsa. lltsuk be


a vfat s msdos tpusokat, clszeru mg a minixet is, ha Linuxos floppykat hasznlunk, de az ext2 fix belltst sose feledjk! A hlzati rszen az smbfs jhet
jl Samba, illetve ncpfs Netware fjlkiszolglk hasznlata esetn.
Sound a hangkelto eszkzk tmogatsa.
A tbbi menpont leginkbb a klnleges eszkzk (ISDN, USB- s infraport, FireWire, stb.) tmogatsnak belltsra hasznlhat. Elmenthetjk az gy elkszlt
konfigurcit egy kln llomnyba is, majd az Exit gomb segtsgvel kilpve, a
.config fjlban rgztodnek a beltsok. Kvetkezhet a program rszei kztti fggosgek megllaptsa (make dep), majd utna egy kis takarts a make clean
kiadsval, s aztn a tulajdonkppeni fordts a make bzImage parancs segtsgvel. Ennek hatsra a forrsknyvtr arch/i386/boot alknyvtrban kapjuk
majd meg a kernelt, mint egy bzImage nevu fjlt. Hiba remlheto leg nem fordul kzben elo, a gptol fggoen pr perc (ra. . . ) alatt vgez is ezzel a rszvel a dolognak. Ha rendben lefutott, ltjuk, hogy mekkora mretu lett, ltalban 6700 kB-nyi a szoksos. Folytassuk a make modules parancs kiadsval, ez azokat a rszeket fordtja le, amiket modulba sznunk. Sikeres lefuts esetn kell mg a
make modules_install is, ezzel a teleptsk is lezajlik, mgpedig rendszerint
a /lib/modules/kernelverzi knyvtrba kerlnek az ezen belli megfelelo
alknyvtrakba sztosztva, .o kiterjesztssel.
Mr csak az van htra, hogy ezzel a kernellel tudjuk indtani a gpet. Ehhez a lilo
programot hasznljuk fel, ami a Linux betltsvezrlo je, bootmanagere. A kernel fjlt
elobb a /boot knyvtrba kell msolni, majd a /etc/lilo.conf llomnyt szerkeszteni. Ebben a meglvo kernelt (mint biztonsgi msolatot) mindenkppen hagyjuk
meg eloszr, teht msoljuk le a r vonatkoz rszt, ami valahogy gy nzhet ki:
image=/boot/vmlinuz
label=linux
root=/dev/hda1
read-only

majd javtsuk t gy, hogy hasonl legyen ehhez:


image=/boot/bzImage
label=linux
root=/dev/hda1
read-only
image=/boot/vmlinuz
label=old
root=/dev/hda1
read-only

Vgezetl a /etc knyvtrban llva adjuk ki a lilo parancsot, ez elkszti az


j konfigurcit, s ki is rja, milyen leheto sgek kzl vlaszthatunk majd a rendszerindtskor, ha a megjeleno LILO boot: feliratnl a TAB billentyut nyomjuk le;
ekkor ugyanis kirja az indthat rendszerek cmkit, teht ott kell ltnunk az old s a
linux feliratot is, ezek kzl alaprtelmezs szerint a linux tlto dik be, remlhetoleg minden gond nlkl. Termszetesen mindez csak akkor igaz, ha a f o betltsvezrlo
a lilo. Ha nem ez a helyzet, akkor a lilo.conf fjlban nem a boot=/dev/hda
feliratot ltjuk, hanem pldul a boot=/dev/hda1 sort, de a fent lertakra ez gyakorlatilag nincs hatssal: ha mr a lilo megkapta valahogy a vezrlst, be tudja tlteni
az j kernelt is.

52

A modulokat menet kzben, alapelvknek megfelelo en betlthetjk/eltvolthatjuk


az insmod/rmmod prossal, feltve, ha semelyik ms modul mukdst nem srti,
ami velk kapcsolatban van (ugyanis itt is megfigyelheto egymsrapls). A
modprobe szintn a beillesztshez hasznlhat, igyekszik az sszes olyan modult
is beilleszteni a kernelbe, ami annak mukdshez szksges. Mindhromnak egy paramtere van, az adott modul neve. Az lsmod pedig a betlttt modulokat listzza
ki. Megemltendo mg a /etc/modules.conf konfigurcis llomny, amelyben
a modulok paramtereit lehet megadni. Ha kernelnkben megtallhat a kerneld
(vagy az jabb nevn kmod) dmon tmogatsa, akkor pedig mindezen feladatokat automatikusan elvgzi. Teht ha pldul egy zeneprogramot indtunk, beilleszti a hangkrtya meghajtit. Sot miutn a modulokra mr nincs szksg (tbb mint egy percig
nem hasznlja o ket semmi), akkor el is tvoltja o ket.

1.18. A hjprogramozs segdeszkzei


Sz volt rla, hogy a bash (s persze a tbbi parancsrtelmezo is) nagyon jl programozhat, sajt programnyelve segtsgvel. Kicsit mlyedjnk el ezekben a lehet o sgekben!
A hjprogramok vagy shell-szkriptek mind olyan szveges llomnyok, amiknek
vgrehajtsi jogot adva nllan is futtathatk, de a shell segtsgvel is megoldhat a
vgrehajtsuk. Kezdjk egy egyszeru pldval, aztn majd bonyoltsuk kicsit: rja ki a
programunk a Halih! szveget! Ehhez gpeljk be a progi nevu szvegfjlba a
kvetkezot:
#!/bin/bash
echo "Halih!"
exit 0

Az elso sor rtelmezse: a # jel utn kvetkezo rszt a parancsrtelmezo megjegyzsknt kezeli, kivve, ha egybo l a felkiltjel kvetkezik utna, mert akkor azzal a programmal prblja meg vgrehajtatni a szkriptet, ami ezutn ll. A msodik sor ismeros, a harmadikban lvo kddal pedig gy lpnk ki a vgrehajtsbl,
hogy egy n. visszatrsi rtket is belltunk. A legtbb program lefutsa utn bellt egy ilyet, s ezt egy programmal lekrdezve megtudhatjuk, hogy vgz o dtt a parancs. A 0 rtk ltalban azt jelenti, hogy rendben lefutott. Adjunk ennek a fjlnak a
chmod +x progi utastssal mindenki szmra vgrehajtsi jogot, majd futtassuk
a ./progi kiadsval! Ez mg gy nem tl ltvnyos, ezrt bo vtsk gy, hogy elotte
kpernyot trlnk, s az dvzlo szveg utn kirjuk, hogy Most ra:perc van.! A
program msodik sora legyen teht a clear, az utols elo tti pedig:
echo -n "Most "date +%T; echo " van."

Itt tbb jdonsg is elobukkant. Eloszr is, a -n paramter hatsra az echo


nem emel sort a kirs vgn, teht majd a " van" nem kerl j sorba. A pontos
ido beillesztse a szvegbe a date feladata lesz, s ezt most gy oldjuk meg, hogy
fordtott aposztrfok kztt adjuk meg a parancsot. Ennek hatsra futskor a bash
be fogja helyettesteni a megfelelo rtket, s azt fogja kirni; vagyis a date kimenett
begyaztuk egy msik parancssorba! Ezt nagyon sok helyen ki lehet hasznlni, pldul
talljuk ki, mi lesz az eredmnye a
echo "Most w -h | wc -l felhasznl van bejelentkezve."

53

parancsnak?
A programokban szinte mindig vannak elgazsok, logikai dntshozatalok. Valamely vltoz rtke befolysolhatja, hogyan folytatdjon a vgrehajts. A test
programnak nagy szerep jut ilyenkor, mivel megvizsgl bizonyos dolgokat, s az el o bb
emlegetett visszatrsi rtkek segtsgvel rtest annak eredmnyr o l. El tudja dnteni, hogy kt (szmszeru vagy szveges) rtk hogyan viszonyul egymshoz, egy adott
llomny ltezik-e s milyen tpus, mretu, s ezeket felhasznlva sok hasznos dolgot tehetnk. Nzzk meg prbakppen, hogy ltezik-e a /home/kispista nevu
knyvtr:
[root:~]>test -d /home/kispista && echo van || echo nincs
nincs

A -d kapcsolval teht azt vizsgljuk, van-e ilyen. Kt eset lehetsges: ha van,


akkor 0 a visszatrsi rtk, nincs hiba, ekkor a && jelek utn kvetkez o parancs fog
lefutni. Kedvezotlen esetben azonban a visszatrsi rtk eltr nulltl, ekkor viszont
a || jelek utni parancs indul el. Ilyen egyszeru, kt kimenetelu elgazst teht mr
tudunk is kszteni. Ugyanezt nzzk meg gy is, ahogy inkbb hasznlni szoktuk
hjprogramokon bell:
[root:~]>if [ -d /home/kispista ]; then echo van; else echo nincs; fi
nincs

A programozsban jrtasak ismerik mr az if-then-else (magyarul ha-akkorklnben) szerkezetet, itt is ezt ltjuk viszont, egyes rszei egymstl a pontosvessz o vel vannak elvlasztva, s a fi kulcssz zrja le. De mit jelent a szgletes zrjel,
s hova tunt a test? Nos, a [ egy szimbolikus link a test llomnyra, ami figyel
ilyenkor arra is, hogy legyen zr ] jel is. Most teszteljk le, hogy nagyobb-e nullnl
a /etc/motd mrete:
[root:~]>if [ -s /etc/motd ]; then echo nagyobb; else echo zerus; fi
zerus

Ezen a gpen teht ppen a klnben g futott le, mivel a -s akkor ad IGAZ
eredmnyt, ha a vizsglt fjl ltezik, s mrete nagyobb mint zrus. Vizsgljuk most
meg, hogy pistike User ID-je nagyobb-e 500-nl! Ehhez els o lpsknt az rtket
beillesztjk egy krnyezeti vltozba, majd ezt adjuk t a test parancsnak:
[root:~]>export pistiid=id -u pistike
[root:~]>echo $pistiid
502
[root:~]>if [ $pistiid -gt 500 ]; then echo nagyobb; fi
nagyobb

Lthat, hogy a parancsok kimenetnek begyazsval is lehet krnyezeti vltozt feltlteni rtkkel, s ezt a jelen esetben szmszeru rtket a -gt (Greater Than,
nagyobb mint. . . ) kapcsol segtsgvel vetettk ssze az 500-as szmmal.
A bash programokon bell hasznlhat vezrlo szerkezetek az if-then-elsen kvl
mg a tbbg elgaztatst vgzo case, a ciklusok ltrehozsra szolgl for, while,
until s select. Ezek kzl most csak a lpteto tpus for ciklusra lljon itt egy plda:
[root:~]>for i in *.mp3; do mpg123 "$i"; done

Ennek hatsra az aktulis knyvtrban lvo minden .mp3 kiterjesztsu fjlt le fogja
jtszani az mpg123 nevu program, mg akkor is, ha szkz van a nevkben. Az i

54

ciklusvltoz tulajdonkppen egy szveges krnyezeti vltozknt viselkedik, rtkei


sorban jnnek ltre, majd azokat olvassa ki az mpg123.
A sleep parancsot is gyakran hasznljuk fel hjprogramokban, ha id o ztsi problmk lpnek fel. Az utna rt szm s kd jelenti azt az ido tartamot, ameddig vr s
nem csinl semmit: teht a sleep 5 hatsra a program 5 msodpercig vrakozik,
csak utna fut tovbb. Megadhat mg az m uttag a percben, a h az rban s a d a
napban mrt idotartamokhoz.
A programba val adatbevitelre szolgl a read vltoz utasts. A billentyuzetrol vett rtket a krnyezeti vltozban trolja. Ha ennl kicsit ltvnyosabb mdot
akarunk a felhasznlnak biztostani, akkor a dialog programot hasznljuk. Ennek
klnbzo tpus, adatbekrshez hasznlt elemek a fo paramterei, nevezetesen az
adatbeviteli mezo, a jellongyzet, rdigomb, lista, stb. A hasznlata ezek miatt bonyolultabb, de valban szp s knnyebben hasznlhat felhasznli felletet tudunk
kialaktani a segtsgvel (1.8. bra).

1.8. bra. Nhny dialog-gal kszlt program

1.19. Az X Window rendszer alapparancsai


A UNIX rendszerek nagyon jl hasznlhat grafikus fellettel is rendelkeznek, amit X
Window Systemnek hvnak. Ezt a rendszert hlzati alkalmazs cljra fejlesztettk ki,
emiatt olyan trkkket lehet vele csinlni, amit egy hagyomnyos PC-s krnyezett o l
nem szokhattunk meg. Mukdsre az jellemzo , hogy a grafikus megjelentovel rendelkezo gpen fut egy n. X szerver, aminek annyi a dolga, hogy a grafikus hardver
kpessgeit messzemenokig kihasznlva a kpernyore rajzolja mindazt, amit a hozz
kapcsold kliensek maguk a programok krnek to le. A kliensnek nem muszj a
55

helyi gpen futnia, sot megoldhat az is, hogy a dologba egy harmadik gpet is bevonnak: egy nagy kapacits gpet kr meg az egyikk (a kliens) arra, hogy elvgezze a
bonyolult szmtsokat ignylo muveletet, s az eredmnyt grafikus formban kldje
t egy harmadik (az X szervert futtat) gp kpernyo jre. . .
A Linux alatt ingyenesen hozzfrheto X verzi az XFree86, ami nemrg esett t
egy nagyobb verzivltson. Jelenleg a 4-es fo verziszm kiadsok a legjabbak, de
mg sok videokrtyhoz jobban hasznlhatk a rgi, 3.3.x verzi specilisan hozzjuk
rt szerverei (pldul az S3 krtyacsaldhoz). Az itt felsorolt parancsok mukdnek
mind az j, mind a rgebbi verzikban.
Mielott nekiltnnk az X fellesztsnek, pontos adatokkal kell rendelkeznnk a
videokrtynk s a monitorunk kpessgeiro l s azokrl a jellemzokrol, amik nlkl
nem tudjuk teljes egszben kihasznlni a kpessgeiket. A videokrtyk legfontosabb
jellemzoi a felbonts s a sznmlysg valamint a videomemria mrete, a monitor
pedig a vzszintes s a fggoleges kpfrisstsi frekvencia.
A videokrtya paramtereinek lekrdezsre hasznlhat a SuperProbe program, ami igyekszik kitallni a belltshoz szksges adatokat. A krtya gyrtjra
s a tpusra utal chipset meghatrozsa ltalban sikerl neki, de az mr nem mindig, hogy mennyi a videomemria mrete. Viszont ha teljesen tancstalanok vagyunk
ezekkel kapcsolatban, akkor valamit ez is segt.
A konkrt belltshoz tbbfle program is hasznlhat, a Linux terjesztsek is
sokfle megoldst knlnak, ezek tbbsgvel ma mr knnyen bel o heto az X. Meg
kell emlteni itt a Red Hat-beli XF86Setup programot, a SuSE disztribci SaX, illetve SaX2 nevu alkalmazst, vagy a Mandrakeben ismert XFdrake programot. Van
azonban egy olyan eszkz, ami mindegyiknek rsze, s a legrgebben hasznlatos, ez
pedig az xf86config. A programon vgighaladva elo szr a digitalizl eszkzt kell
belltanunk, ez nagyrszt valamilyen egr. Majd a billentyuzet kvetkezik, itt hasznlhatunk tbbfle kiosztst is, az jabb megolds az n. XKB hasznlata. A monitor
vzszintes frisstsi frekvencijt kell ezutn kivlasztani, itt mr szksg lehet a fent
emltett pontos adatokra, mert nagyobb rtk megadsa, mint amit br, krosthatja a
monitort. Ugyangy kell kivlasztani a fggo leges frekvencit is, majd lehet egy nevet adni a monitorunknak, hogy kso bb, a konfigurcis fjl esetleges szerkesztsekor
knnyebben megtalljuk.
Kvetkezhet a videokrtya kivlasztsa. Ha nem szerepelne a mink a hossz listn, akkor sem kell feladni, egy SVGA szerverrel nagy valsznusggel menni fog. Meg
kell adnunk a videomemria mrett, s a krtynak is egy azonost szveget. A sznmlysg belltsval azt adjuk meg, hogy egy-egy kppont, pixel hnyfle sznt vehet
fel: ajnlott legalbb 16 bites vagy annl nagyobb rtket megadni, ha szp kpet akarunk. Vgl pedig a rgi verzinl rkrdez arra, hogy elksztse-e azt a szimbolikus
linket, ami a /usr/X11R6/bin knyvtron bell a kivlasztott X szerverre mutat s
X a neve. Az j verziban egyetlen X szerver van, gy itt ez a lps kimarad. Vgl
pedig felajnlja az XF86Config konfigurcis fjl mentst, ez legtbbszr a /etc
knyvtrban vagy annak X11 alknyvtrban tallhat.
Ha jl dolgoztunk, mris indthatjuk a felletet a startx parancs kiadsval. Ez
egy hjprogram, s tulajdonkppen az xinit programot hvja meg a megfelel o paramterekkel. J esetben elindul az X szerver, az esetlegesen automatikus futsra belltott egyb programok, s vgl az n. ablakkezelo . X alatt ugyanis az a helyzet, hogy
nem maga a szerver gondoskodik az ablakok kinzetro l, dekorcijrl, hanem egy
erre szakosodott program, az ablakkezelo . Ilyenbol nagyon sokfle ltezik, kezdve a
nagyon egyszeru, de villmgyors fajtktl (icewm) a kzpkategrin t (Windowmaker, Afterstep) egszen a csillog-villog, de nagyon ero forrsignyes verzikig, amik
56

inkbb mr teljes ablakoz rendszernek nevezendo k. Jelenleg ezekbol kt nagyon j


vltozat van, a KDE s a Gnome. Vgl kapunk egy munkafelletet, amin elkezdhetnk dolgozni, de a j reg szveges konzolokrl sem kell lemondanunk, mert a CTRLALT-Fx kombincikkal tvlthatunk rjuk, vissza a grafikus felletre pedig az ALT-F7
billentyukkel. Megjegyzendo mg a CTRL-ALT-PLUSZ s CTRL-ALT-MINUSZ billentyuhrmas, ezekkel a felbontst lehet vltani, valamint a CTRL-ALT-BACKSPACE,
amivel vszhelyzetben gyorsan lellthat az X szerver. Elso futtatskor szksg lehet
az xvidtune programra, aminek a segtsgvel a monitoron megjelen o kpet lehet
korriglni, pldul mind a ngy irnyba elcssztatni. A belltsokhoz tartozik az is,
hogy a billentyuzet jl mukdjn, erre ha nem az XKB tpus billentyuzetkezelst
vlasztottuk az alapszintu konfigurlsnl az xmodmap program hasznlhat. A
loadkeys parancsnl ltott mdon X alatt is minden billentyuhz tartozik egy kd,
de ezeket mshogy rtelmezi, viszont itt is szabadon tkonfigurlhat a kioszts, lementheto egy fjlba, s ezt kell megadni paramterknt az xmodmap szmra.
Az xset s az xsetroot parancsok segtsgvel szintn belltsokat vgezhetnk. A msodik az egyszerubb, mert a szerepe csak az, hogy a httrablak, az n.
root-window sznt vagy ppensggel a rajta megjeleno kpet szablyozza, belltsa.
Az xset viszont jval tbb mindent llt: a hibajelzs csipogsnak hangerejt, az
energiatakarkos zemmd ki-bekapcsolst a monitorra, a megjelentett kperny o fontok elrsi tjnak szablyozst, a kpernyo vdo paramtereit mind-mind el lehet
vele rni.
Az X hasznlata kzben ablakban fut terminlokat is nyithatunk, ezekb o l tbb
tpus ltezik, ltalban mindenhol jelen van az xterm (1.9. bra). Sokfle mdon
konfigurlhat a megjelense s a viselkedse, akr menet kzben is, ha az ablaka fltt
a CTRL billentyut lenyomva tartva kattintunk az egr gombjaival, s az gy megjelen o
menkbol vlasztunk. A tbbi terminlemulcis program kzl szerepeljen mg itt
az rxvt, ami szintn elg sok helyen fellelheto .
Sokszor ezeket a programokat mr a rendszer indtsa utn egyszerre szeretnnk
hasznlni, ekkor mg az ablakkezelo elindulsa elott kell o ket futtatni. Ez gy oldhat
meg, hogy a felhasznl a sajt knyvtrban lvo .xinitrc llomnyt szerkeszti.
Ennek tartalma pldul gy nzhet ki:
imwheel &
xterm &
xmodmap ~/xmodmap.hu
exec icewm

Az elso sorban elindtjuk az imwheel programot, ami grgo vel elltott egerekhez
nyjt tmogatst. Az & jel most azrt kell, hogy elindulsa utn ne lpjen ki azonnal,
hanem vgig fusson a httrben. Indtunk mg egy xterm programot s az xmodmap
segtsgvel magyar billentyukiosztst tltnk be. Vgl pedig az ablakkezel o program
az utols sorban szerepel.
A fut programok ablakairl az xwininfo ad informcit, fo leg a mretkrol s
elhelyezkedskrol a kpernyon. Az xmag felnagytja a kpernyo egy rszt, foleg
nagy felbontsnl lehet hasznos. Az xkill pedig mris sejtheto , mire j: azt a programot, amire rkattintunk a megjeleno kurzorral, azonnal lelltja, kilvi.
Vgl nzzk meg az xhost program alkalmazst, amivel az X szerverhez val hozzfrs szablyozhat. A + jel (mint paramter) utn felsorolt gpeket hozzadja, a - utniakat leveszi arrl a listrl, amin azok szerepelnek,
amiken a fut programok hasznlhatjk adataik megjelentsre a szervert. Lssuk, mi a teendo, ha a star.valami.hu gpen fut az X, ez elo tt lnk, de a

57

1.9. bra. Klnbzo terminlprogramok


king.valami.hu gpen akarunk futtatni egy programot, aminek grafikus kimenett a mi gpnkn szeretnnk ltni! Elo szr is nyissunk egy xterm ablakot,
s adjuk ki benne az xhost +king.valami.hu parancsot, ezzel megengedtk neki, hogy a monitorunkra rhasson. Ezutn lpjnk be a king.valami.hu
gpre telnet vagy ssh segtsgvel, s ott adjuk ki a kvetkezo utastst:
export DISPLAY="star.valami.hu:0". Ez arra szolgl, hogy az azon a gpen futtatott programjaink tudjk, hova kell kldeni az adataikat, egsz pontosan a
DISPLAY krnyezeti vltoz ltal meghatrozott gp elso X szerverre (mivel egy gpen tbb is futhat, s az elsonek 0 a sorszma). Vgl mr csak egy grafikus programot
kell indtani, s lthat is az eredmny!

1.20. Csomagok kezelse


A Linux terjesztsek, disztribcik rengeteg programot tartalmaznak, amik a kernel
kr plve alkotnak egysges opercis rendszert. Ezek az alkalmazsok a binris
programokkal, dokumentcival s minden egyb szksges alkotelemkkel egytt
rkeznek, ezrt sszefoglal nven csomagoknak hvjuk o ket. A csomagok egymsra
is plnek, mivel nmely csomagot addig nem rdemes (vagy nem is lehet egyltaln) hasznlni, amg egy msik nincs teleptve. A csomagon bell ezrt nemcsak a
programok alkotrszei, hanem olyan informcik is megtallhatk, amik ezeket a
fggosgi informcikat tartalmazzk. Valamint olyan hjprogramok is, amik teleptsk/eltvoltsuk elott s utn bizonyos belltsokat tudnak vgezni.
Az egyes disztribcik ms csomagformtumokat hasznlnak, de van kt f o tpus,
ami a legtbben megtallhat. Az egyik a Red Hat cg ltal kifejleszett RPM formtum

58

(Red Hat Package Management), ami a SuSE, Caldera, Mandrake, BeroLinux s egyb
ms terjesztsekben is hasznlatos. A msik pedig a Debian ltal hasznlt, .deb kiterjesztsrol knnyen felismerheto csomagformtum, amit tbbek kztt mg a Corel
terjesztse is hasznl. Nzzk meg rviden ezek kezelst!
Az RPM csomagokkal val munka megknnytsre ma mr sokfle, legtbbszr
grafikus program is hasznlhat, de az alapprogram rpm nvre hallgat. F o bb zemmdjai a telepts (install), frissts (upgrade), trls (erase), lekrdezs (query), s
csomagkszts (build). A kvetkezo kben egy valami.i386.rpm nevu fjlon keresztl mutatjuk be ezeket.
Teljesen j csomag teleptse az rpm -ih valami.i386.rpm parancs kiadsval trtnik, itt a -i az installlsra utal, a -h hatsra pedig ketto skeresztek jelennek meg a telepts sorn mint folyamatjelzo k. Ilyenkor mindig trtnik fggo sgellenorzs is, s ha valami hinyzik azok kzl, amikre a program pl, az rpm megtagadja a teleptst. A --force kapcsolval azonban kiero szakolhatjuk, hogy mgis
msolja fel a csomagot, a --nodeps pedig kikapcsolja ezt az elleno rzst (ezekhez
csak vgso esetben folyamodjunk). Mr meglvo , de rgebbi verzij csomag frisstshez az rpm -Uvh valami.i386.rpm hasznlhat, itt mg egy -v paramterrel
egsztettk ki, ami bobeszdubb zemmdra kapcsol. A program eltvoltsa biztonsgosan az rpm -e valami.i386.rpm kiadsval trtnik, ekkor is tkzhetnk
abba az zenetbe, hogy bizonyos programok mg ignyelnk ennek a jelenltt, de
a --force itt is vgleges megoldst knl. A csomagok lekrdezsre szolgl az
rpm -q valami (teht csak a neve kell!), de ez gy nmagban csak arra j, hogy
megtudjuk, egyltaln teleptve van-e. A -q utn rt kapcsolk tovbb b o vtik a lehetosgeket, pldul a -qa megjelenti az sszes teleptett csomag nevt, a -ql kilistzza a
teleptett csomagban tallhat sszes fjlt, a -qf /valahol/valami megmondja,
hogy az adott fjl melyik csomag rsze, a -qi a csomagrl szl informcikat (rvid
lers, mret, verzi, stb.) adja, ha pedig mindezek mell mg a p paramtert is betesszk, akkor a mg nem teleptett csomagokrl is krhetnk informcit. Vgl, ha
egy eddig csak forrsnyelven elrheto programot szeretnnk RPM csomagg alaktani,
akkor eloszr is ksztennk kell egy n. spec-fjlt, az ebben foglalt utastsok alapjn az rpm elobb lefordtja az alkalmazst, megnzi, milyen fggo sgeket kell majd
elorni, s vgl elkszti a binris csomagot, mgpedig a cpio kzremukdsvel.
A Midnight Commander segtsgvel az rpm csomagok kezelse egyszeru, csak Entert kell nyomni a csomag nevn, gy belenzhetnk, elolvashatjuk az informcikat,
s telepthetjk/frissthetjk is.
A Debian csomagok is hasonlan igyekeznek knnyebb tenni a rendszergazdk
lett. A .deb csomagok kezelsre tbb program is hasznlhat. Az alapvet o a
dpkg, ami parancssori kapcsolkkal vezrelheto , de ltezik hozz egy mens elo ttprogram a dselect szemlyben. A dpkg fo bb zemmdjai: installls a belltsok elvgzsvel (-i), kicsomagols belltsok nlkl (--unpack), jrakonfigurls
(--configure), eltvolts (-r), a rendelkezsre ll csomagok listjnak frisstse
(--update-avail). Az utols eset kivtelvel termszetesen meg kell adni a teleptendo csomag nevt is, mint paramtert. A dselect ht ponton keresztl vezet vgig
a fobb lpseken. Elsoknt az Access menpontban meg kell adni, milyen mdszer
szerint frhetnk hozz a csomagokhoz: NFS vagy FTP-szerverr o l, hajlkonylemezekrol vagy ms mdiumrl. Itt a leggyakrabban az APT (Advanced Package Tool) mdszer szerinti hozzfrst vlasztjuk. Az Update menponton bell a rendelkezsre
ll csomagok listjt frissthetjk. A Select ponton bell vlaszthatjuk ki a teleptendoket. A program figyeli a fggosgeket is, teht azokat is felknlja teleptsre,
amik kellhetnek a mukdshez. Az Install vlasztsval indul el a tulajdonkp59

peni telepts. A Config a teleptett, de mg nem konfigurlt csomagokon vgzi el a


belltsokat, a Remove pedig eltvoltja a flslegeseket. Vgl a Quit lptet ki a
programbl.
A msik lehetosgnk az jabb fejlesztsu APT mdszer szerinti csomagkezels,
amihez az apt-get parancs a legfobb eszkz. Szintn parancssori kapcsolkkal vezreljk az apt-get opcik parancs csomagnv formban. A parancsok
kzl a legfontosabbak:
upgrade
a
legfrissebb
verzira
val
frissts,
felhasznlva
a
/etc/apt/sources.list fjlban fellelheto forrsokat, amik kztt
lehetnek Internetes szerverek is, so t, ez az egyik legjobb lehetosge.
install telepts.
remove eltvolts.
source a csomagok nemcsak binris formban ltezhetnek, hanem mg forrsnyelvi
llapotban is, ilyenek letltshez szksges ez az opci.
check ellenorzs.
clean a letlttt csomagfjlok trlse.
Az opcik kzl a -b szolgl arra, hogy a letlttt forrsokbl ksz csomagot
lltsunk elo.

1.21. Egyb parancsok


Az eddigiekben felsorolt parancsokon kvl vannak mg olyanok, amik nem maradhatnak emlts nlkl. Ide sorolhatk azok a programok, amik matematikai feladatok
megoldst segtik, mint a bc, amivel a ngy alapmuveleten fell jval bonyolultabb
dolgokat is kiszmolhatunk. Indtsuk el, majd a megjeleno res sorba gpeljk be:
a=4^2+3^2
print sqrt (a)

Az eredmny 5 lesz a Pitagorasz-ttel alapjn. Itt a ^ a hatvnyozs jele, az sqrt


fggvny pedig a gykvonst vgzi. Hagyomnyos szmolgpet kapunk ezen fell az
xcalc grafikus program szemlyben.
A watch segtsgvel egy program kimenett figyelhetjk. Prbljuk ki gy, hogy
egy knyvtrban, ahol kevs fjl van, kiadjuk a watch ls -l parancsot, majd egy
msik terminlon belpve (clszeru mindezt X Window alatt csinlni) ltrehozunk ott
egy fjlt. A watch alaprtelmezs szerint 2 msodpercenknt frissti a kperny o jt,
teht kisvrtatva ltjuk, hogy megjelenik az j fjl. Ha most runk hozz valamit, akkor
a mretvltozs is meg fog jelenni hamarosan.
Multimdis fjlok kezelsre is sok program van. Kpek nzegetsre a konzolon
is hasznlhat a zgv. Ha van hangkrtynk, akkor a WAV hangfjlok lejtszshoz a
playwave, a MIDI fjlokhoz a playmidi hasznlhat, a npszeru MP3 formtumhoz pedig az mpg123 vagy az mp3blaster. Audio CD-k lejtszshoz is sokfle
alkalmazs tallhat, illetve le lehet szedni rluk a zenei adatokat digitlis formban,
ezt hvjk grab-belsnek, erre tbbek kztt a cdparanoia szolgl.

60

1.22. Zrsz
A Linux a felsoroltakon kvl mg nagyon sok kisebb-nagyobb alkalmazst tartalmaz,
ha mindet fel akarjuk trkpezni, nagyon sok szabadido vel kell rendelkeznnk. Az
itt megemltett parancsok azonban remlheto leg j keresztmetszett adtk annak, mi
mindenre s hogyan is hasznlhat a rendszer, s kiindulsi pontknt szolgltak ahhoz,
hogy jobban megrtsk a mukdst, nem utolssorban hasznlni is tudjuk. Mint emltettem az elejn, itt mindegyik parancs vzlatosan, sokszor csak az emlts szintjn
szerepelt, ezrt mindenkppen javasolt a kziknyvoldalak s a rluk fellelhet o mindenfajta informci ttanulmnyozsa. Ezenfell pedig a gyakorls, a kiprbls vihet
elore. Ezrt is igyekeztem minl tbb helyen kiprbland dolgokat beiktatni, hogy
legalbb az elso lpseket megknnytsem, s mert sok lersbl hinyoznak az alkalmazsi pldk. Pedig ha egy-kt ilyet lt az ember, knnyebben megrti a sokszor
szraz, s csak a lnyegre szortkoz dokumentcikat is. Teht abban a remnyben,
hogy ez a fzet valamelyest hasznos volt, bztatok mindenkit a Linux hasznlatra, s
ha elsore nem sikerl valami, akkor se adjuk fel, ksrletezznk, egyszercsak r fogunk
jnni a megoldsra. Vgezetl lljon itt egy olyan idzet, amit vlaszthatunk jelmondatunknak is: Egy pingvinre gyakorlatilag lehetetlen haragosan nzni!

61

GNU Szabad Dokumentcis


Licensz 1.1 verzi, 2000 mrcius
Copyright c 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
Jelen licensz sz szerinti sokszorostsa s terjesztse brki szmra megengedett, vltoztatni rajta ugyanakkor nem lehet.

0. ELOSZ
Jelen Licensz clja egy olyan kziknyv, tanknyv, vagy effajta rott dokumentum megalkotsa, mely a sz szoros rtelmben szabad: annak rdekben, hogy mindenkinek
biztostsa a szveg sokszorostsnak s terjesztsnek teljes szabadsgt, mdostsokkal, vagy anlkl, akr kereskedelmi, akr nem-kereskedelmi ton. Msfel o l, e
Licensz megorzi a szerzo, vagy kiad munkja elismershez fuzo do jogt, s egyttal
mentesti o t a msok ltal beiktatott mdostsok kvetkezmnyei all.
Jelen Licensz egyfajta etalonnak tekintheto , ami nem jelent mst, mint hogy a
dokumentumbl szrmaztatott munkk maguk is szabad min o stst kell, hogy kapjanak. E dokumentum egyben a GNU ltalnos Felhasznli Licensz kiegszt o jeknt
is szolgl, mely egy a szabad szoftverekre vonatkoz etalon licensz.
E Licenszet a szabad szoftverek kziknyveiben val hasznlatra alkottuk, hiszen a
szabad szoftver egyben szabad dokumentcit is ignyel: egy szabad programot olyan
kziknyvvel kell elltni, mely ugyanazon szabadsgokat biztostja, mint maga a program. Jelen Licensz, mindazonltal, nem korltozdik pusztn kziknyvekre; felttelei
tetszoleges trgykru rott dokumentumra alkalmazhatk, fggetlenl attl, hogy az
knyvformban valaha megjelent-e. Mindamellett e Licenszet f o knt olyan munkkhoz ajnljuk, melyek elsodleges clja az tmutats, vagy a tjkoztats.

1. ALKALMAZHATSG S DEFINCIK
E Licensz minden olyan kziknyvre, vagy ms jellegu munkra vonatkozik, melyen
megtallhat a szerzoi jogtulajdonos ltal feltntetett figyelmeztets, miszerint a dokumentum terjesztse jelen Licensz felttelei alapjn lehetsges. A Dokumentum
albb brmely ilyen jellegu kziknyvre, vagy egyb munkra vonatkozik. A lakossg
minden tagja potencilis licensztulajdonosnak tekintheto , s mindegyikk megszltsa egyarnt n.

62

A Dokumentum Mdostott Vltozata brmely olyan munkra vonatkozik, mely


tartalmazza a Dokumentumot, vagy annak elemeit akr sz szerint, akr mdostsokkal, s/vagy ms nyelvre lefordtva.
A Msodlagos Szakasz egy egyedi nvvel br fggelk, esetleg a Dokumentum
egy megelozo szakasza, mely kizrlag a kiadknak, vagy az alkotknak a Dokumentum tfog trgykrhez (vagy kapcsold tmkhoz) fuz o do viszonyrl szl, s nem
tartalmaz semmi olyat, ami kzvetlenl ezen tfog tmakr al eshet. (Ha pldul a
Dokumentum rszben egy matematika tanknyv, gy a Msodlagos Szakaszban nincs
lehetosg matematikai trgy magyarzatokra.) A fenti kapcsolat trgya lehet a tmakrrel, vagy a kapcsold tmkkal val trtnelmi viszony, illetve az azokra vonatkoz jogi, kereskedelmi, filozfiai, etikai, vagy politikai felfogs.
A Nem Vltoztathat Szakaszok olyan specilis Msodlagos Szakasznak szmtanak, melyek ilyetn val meghatrozst az a kzlemny tartalmazza, miszerint a
Dokumentum jelen Licensz hatlya alatt lett kiadva.
A Bortszvegek olyan rvid szvegrszek, melyek Cmlap-szvegknt, illetve
Htlap-szvegknt kerlnek felsorolsra abban a kzlemnyben, miszerint a Dokumentum jelen Licensz hatlya alatt lett kiadva.
A Dokumentum tltsz pldnya olyan gppel-olvashat vltozatot jell, mely
a nyilvnossg szmra hozzfrheto formtumban kerl terjesztsre, tovbb melynek
tartalma szokvnyos szvegszerkeszto -programokkal, illetve (pixelekbo l ll kpek
esetn) szokvnyos kpmegjelento -programokkal, vagy (rajzok esetn) ltalnosan
hozzfrheto rajprogramok segtsgvel azonnal s kzvetlenl megtekinthet o , vagy
mdosthat; tovbb olyan formtumban mely alkalmas a szvegszerkeszt o kbe val
bevitelre, vagy a szvegszerkeszto k ltal kezelt formtumokba val automatikus talaktsra. Egy olyan, egybknt tltsz formtumban kszlt pldny, melynek markupja gy lett kialaktva, hogy megakadlyozza, vagy eltntortsa az olvaskat minden
tovbbi mdoststl, nem tekintheto tltsznak. A nem tltsz pldnyok az
tltszatlan megnevezst kapjk.
Az tltszsg kritriumainak megfelelo formtumok kztt megtallhat pldul
a markup nlkli egyszeru ASCII, a Texinfo beviteli formtum, a LATEX beviteli formtum, az SGML vagy az XML egy ltalnosan hozzfrheto DTD hasznlatval, s
a standardnak megfelelo, emberi mdostsra tervezett egyszeru HTML. Az tltszatlan formtumok kz sorolhat a PostScript, a PDF, a szabadalmaztatott s csak fizet o s
szvegszerkesztokkel olvashat formtumok, az olyan SGML vagy XML, melyhez a
szksges DTD s/vagy egyb feldolgoz eszkzk nem ltalnosan hozzfrhet o k, s
az olyan gpileg-generlt HTML formtum, melyet egyes szvegszerkeszt o k hoznak
ltre, kizrlag kiviteli clra.
Egy nyomtatott knyv esetben a Cmlap magt a cmlapot, illetve brmely azt
kiegszto tovbbi oldalt jell, amely a jelen Licenszben definilt cmlap-tartalmak
kzzttelhez szksges. Az olyan formtum munkknl, melyek nem rendelkeznek effajta cmlappal, a Cmlap a munka cmhez legkzelebb es o , m a szveg
trzst megelozo szvegrszeket jelli.

2. SZ SZERINTI SOKSZOROST S
nnek lehetosge van a dokumentum kereskedelmi, vagy nem-kereskedelmi jellegu
sokszorostsra s terjesztsre, brmely mdiumon keresztl, feltve, hogy jelen Licensz, a szerzoi jogi figyelmeztets, tovbb a Dokumentumot jelen Licensz hatlya
63

al rendelo kzlemny minden pldnyban egyarnt megjelenik, s hogy e feltteleken


kvl semmi mst nem tesz hozz a szveghez. Nem alkothat olyan technikai korltokat, melyek megakadlyozhatjk, vagy szablyozhatjk az n ltal terjesztett pldnyok elolvasst, vagy sokszorostst. Mindazonltal elfogadhat bizonyos sszeget a
msolatok fejben. Amennyiben az n ltal terjesztett pldnyok szma meghalad egy
bizonyos mennyisget, gy a 3. szakasz feltteleinek is eleget kell tennie.
A fenti kritriumok alapjn klcsnbe adhat egyes pldnyokat, de akr nyilvnosan is kzzteheti a szveget.

3. SOKSZOROST S NAGYOBB MENNYISGBEN


Amennyiben 100-nl tbb nyomtatott vltozatot tesz kzz a Dokumentumbl, s annak Licensze felttell szabja a Bortszvegek megltt, gy minden egyes pldnyt
kteles elltni olyan bortlapokkal, melyeken a kvetkez o Bortszvegek tisztn s
olvashatan fel vannak tntetve: Cmlap-szvegek a cmlapon, illetve Htlap-szvegek
a htlapon. Mindkt bortlapra egyrtelmuen s olvashatan r kell vezetnie a kiad,
vagyis jelen esetben az n nevt. A cmlapon a Dokumentum teljes cmnek jl lthatan, tovbb minden egyes sznak azonos szedsben kell megjelennie. Ezen fell,
beltsa szerint, tovbbi rszleteket is hozzadhat a bortlapokhoz. Amennyiben az
esetleges mdostsok kizrlag a bortlapokat rintik, s feltve, hogy a Dokumentum cme vltozatlan marad, tovbb a bortlapok megfelelnek minden egyb kvetelmnynek, gy a sokszorosts etto l eltekintve sz szerinti reprodukcinak mino sl.
Abban az esetben, ha a bortlapok brmelyikn megkvetelt szvegrszek tl
hossznak bizonyulnnak az olvashat kzzttelhez, gy csak az els o knt felsoroltakat kell feltntetnie (amennyi jzan belts szerint elfr) a tnyleges bortn, a tovbbiak pedig tkerlhetnek a kvetkezo oldalakra.
Amennyiben 100-nl tbb tltszatlan pldnyt tesz kzz, vagy terjeszt a Dokumentumbl, gy kteles vagy egy gppel-olvashat tltsz pldnyt mellkelni minden egyes tltszatlan pldnyhoz, vagy lerni minden egyes tltszatlan pldnyban
egy a mdostatlan tltsz pldnyt tartalmaz nyilvnos hozzfrsu szmtgphlzat elrhetosgt, ahonnan brki, anonim mdon, trtsmentesen letltheti azt,
egy kzismert hlzati protokoll hasznlatval. Ha az utbbi lehet o sget vlasztja,
kteles gondoskodni arrl, hogy attl a naptl kezdve, amikor az utols tltszatlan
pldny is terjesztsre kerlt (akr kzvetlenl n ltal, akr kiskereskedelmi forgalomban), a fenti helyen kzztett tltsz pldny mg legalbb egy vig hozzfrhet o
legyen a felhasznlk szmra.
Megkrjk, mde nem ktelezzk nt arra, hogy minden esetben, amikor nagyobb
pldnyszm terjesztsbe kezd, mr jval ezt megelo zoen lpjen kapcsolatba a Dokumentum szerzoivel, annak rdekben, hogy megkaphassa to lk a Dokumentum esetleges feljtott vltozatt.

4. MDOST S
nnek lehetosge van a Dokumentum Mdostott Vltozatnak sokszorostsra s terjesztsre a 2. s 3. szakaszok fenti rendelkezsei alapjn, feltve, hogy a Mdostott

64

Vltozatot kizrlag jelen Licensz feltteleivel sszhangban teszi kzz, ahol a Mdostott Vltozat a Dokumentum szerept tlti be, ezltal leheto sget biztostva annak
terjesztsre s mdostsra brkinek, aki csak hozzjut egy pldnyhoz. Mindezen
fell, a Mdostott Vltozat az albbi kvetelmnyeknek is meg kell, hogy feleljen:
A Cmlapon (s ha van, a bortkon) tntessen fel egy a Dokumentumtl, illetve
brmely korbbi vltozattl eltro cmet (melyeknek, ha vannak, a Dokumentum Elozmnyek szakaszban kell szerepelnik). Egy korbbi vltozat cmt
csak akkor hasznlhatja, ha annak szerzo je engedlyezte azt.
A Cmlapon szerzokknt sorolja fel a Mdostott Vltozatban elvgzett vltoztatsokrt felelos szemlyeket, vagy entitsokat, tovbb a Dokumentum f o szerzoi kzl legkevesebb tt (vagy mindet, ha nincsenek ten).
A Cmlapon a Mdostott Vltozat kzzttelrt felelo s szemlyt tntesse fel
kiadknt.
A Dokumentum sszes szerzoi jogi figyelmeztetst hagyja rintetlenl.
Sajt mdostsaira vonatkozan is tegyen kzz egy szerz o i jogi megjegyzst,
a tbbi ilyen jellegu figyelmeztets mellett.
Rgtn a szerzoi jogi figyelmeztetseket kvetoen tntessen fel egy kzlemnyt,
az albbi Fggelk mintjra, melyben engedlyezi a Mdostott Vltozat felhasznlst jelen Licensz felttelei alapjn.
A fenti kzlemnyben hagyja rintetlenl a Nem Vltoztathat Szakaszok s a
szksges Bortszvegek jelen Dokumentum licenszben el o rt teljes listjt.
Mellkelje jelen Licensz egy eredeti pldnyt.
Az Elozmnyek szakaszt, illetve annak cmt szintn hagyja rintetlenl,
emellett adjon hozz egy j elemet, amely minimlisan tartalmazza a Mdostott Vltozat cmt, kiadsi vt, tovbb az j szerzo k, illetve a kiad nevt,
a Cmlapon lthatkhoz hasonlan. Amennyiben a Dokumentum nem tartalmaz
semmifle Elozmnyek elnevezsu szakaszt, gy hozzon ltre egyet, mely tartalmazza a Dokumentum cmt, kiadsi vt, tovbb a szerz o k, illetve a kiad
nevt, a Cmlapon lthatkhoz hasonlan; majd ezt kveto en adjon hozz egy j,
a Mdostott Vltozatra vonatkoz elemet, a fentiekkel sszhangban.
Ne tegyen vltoztatsokat a Dokumentumban megadott tltsz pldny nyilvnos hlzati elrhetosgt (ha van ilyen) illetoen, vagy hasonlkpp, a Dokumentum alapjul szolgl korbbi vltozatok hlzati helyre vonatkozan. Ezek az
Elozmnyek szakaszban is szerepelhetnek. Csak abban az esetben hagyhatja el
egyes korbbi vltozatok hlzati elrheto sgt, ha azok legkevesebb ngy vvel
a Dokumentum elott kszltek, vagy ha maga az alkot engedlyezi azt.
Brmely Ksznetnyilvnts, vagy Ajnlsok szakasz cmt hagyja rintetlenl, tovbb gondoskodjon arrl, hogy azok tartalma s hangvtele az egyes
hozzjrulkat, s/vagy az ajnlsokat illeto en vltozatlan maradjon.
A Dokumentum sszes Nem Vltoztathat Szakaszt hagyja rintetlenl, gy
cmket, mint tartalmukat illetoen. A szakaszok szmozsa, vagy brmely azzal
egyenrtku jells nem tartozik a szakaszcmek kz.
65

Trljn minden Jvhagys elnevezsu szakaszt. Effajta szakaszok nem kpezhetik rszt a Mdostott Vltozatnak.
Ne nevezzen t semmilyen ltezo szakaszt Jvhagys-ra, vagy olyasmire,
mely cmben a Nem Vltoztathat Szakaszokkal tkzhet.
Ha a Mdostott Vltozat j megelozo szakaszokat tartalmaz, vagy olyan fggelkeket, melyek Msodlagos Szakasznak mino slnek, m nem tartalmaznak a Dokumentumbl szrmaz anyagot, abban az esetben, beltsa szerint, e szakaszok nmelyikt,
vagy akr az sszeset nem vltoztathatknt sorolhatja be. Ehhez nem kell mst tennie,
mint felsorolni a szban forg cmeket a Mdostott Vltozat licensznek Nem Vltoztathat Szakaszok listjban. E cmeknek hatrozottan el kell klnlnie minden egyb
szakaszcmtol.
Jvhagys elnevezsu szakaszt csak akkor adhat a Dokumentumhoz, ha az kizrlag a Mdostott Vltozatra utal megjegyzseket tartalmaz pldul msok recenziira vonatkozan, vagy hogy egy szervezet a szveget egy standard mrvad defincijaknt ismerte el.
Cmlap-szveg gyannt egy legfeljebb t szbl ll szvegrszt adhat meg, a
Htlap-szveg esetn pedig 25 szt fuzhet a Mdostott Vltozat Bortszvegeinek
vghez. Brmely entits csak s kizrlag egy Cmlap- s egy Htlap-szvegrszt
adhat (akr kzvetton keresztl) a Dokumentumhoz. Ha a dokumentum mr eleve
rendelkezik Bortszveggel, akr azrt, mert azt korbban n adta hozz, vagy mert
valaki ms nn keresztl gondoskodott erro l, abban az esetben nincs leheto sg jabb
Bortszveg hozzadsra; a rgit mindazonltal lecserlheti, abban az esetben, ha
annak kiadja egyrtelmuen engedlyezi azt.
A Dokumentum szerzoje/i s kiadja/i jelen Licensz alapjn nem teszik leheto v
nevk nyilvnos felhasznlst egyetlen Mdostott Vltozat tmogatsa, vagy tmogatottsga rdekben sem.

5. KOMBINLT DOKUMENTUMOK
nnek lehetosge van a Dokumentum egyb, e Licensz hatlya alatt kiadott dokumentumokkal val kombinlsra a 4. szakasz mdostott vltozatokra vonatkoz rendelkezsei alapjn, feltve, hogy a kombinci mdosts nlkl tartalmazza az eredeti
dokumentumok sszes Nem Vltoztathat Szakaszt, s hogy azok mind Nem Vltoztathat Szakaszknt kerlnek felsorolsra a kombinlt munka licenszben.
A kombinlt munknak jelen Licensz mindssze egy pldnyt kell tartalmaznia, az egymssal tfedsben lvo Nem Vltoztathat Szakaszok pedig kivlthatk
egy sszegzett pldnnyal. Amennyiben tbb Nem Vltoztathat Szakasz szerepelne
ugyanazon cmmel, m eltro tartalommal, gy alaktsa t minden egyes szakasz cmt
olyan mdon, hogy mgrja zrjelben az eredeti szerzo s kiad nevt (ha ismeri),
vagy egy egyedi sorszmot. Ha szksges, a Nem Vltoztathat Szakaszok cmeivel is
vgezze el a fenti mdostsokat a kombinlt munka licenszben.
A kombinlt munkban az eredeti dokumentumok sszes El o zmnyek elnevezsu szakaszt ssze kell olvasztania, miltal egy sszefgg o Elozmnyek szakasz
jn ltre; hasonlkpp kell eljrnia a Ksznetnyilvnts, illetve az Ajnlsok szakaszok tekintetben. Ugyanakkor minden Jvhagys elnevezsu szakaszt trlnie
kell.

66


6. DOKUMENTUMGYUJTEMNYEK
nnek lehetosge van a Dokumentumbl, illetve brmely egyb, e Licensz hatlya alatt
kiadott dokumentumbl gyujtemnyt ltrehozni, s az egyes dokumentumokban tallhat licenszeket egyetlen pldnnyal kivltani, feltve, hogy a gyujtemnyben szerepl o
sszes dokumentum esetn minden ms tekintetben kveti jelen Licensz feltteleit,
azok sz szerinti sokszorostsra vonatkozan.
Tetszse szerint ki is emelhet egy meghatrozott dokumentumot a gyujtemnyb o l,
tovbb terjesztheti azt jelen Licensz felttelei alapjn, feltve, hogy a szban forg dokumentumhoz mellkeli e Licensz egy pldnyt, s minden egyb tekintetben betartja
jelen Licensz elorsait a dokumentum sz szerinti sokszorostsra vonatkozan.

7. SSZEFUZS
FGGETLEN MUNKKKAL
A Dokumentum s annak szrmazkainak klnll, vagy fggetlen dokumentumokkal, illetve munkkkal val sszefuzse egy kzs trolsi, vagy terjesztsi egysgen,
egszben nem tekintheto a Dokumentum Mdostott Vltozatnak, feltve, hogy az
sszefuzs nem lesz szerzoi jogvdett. Az effajta sszefuzs eredmnyeknt sszegzs jn ltre, m jelen Licensz nem rvnyes az abban a Dokumentummal egytt
szereplo nll munkkra, hacsak azok nem a Dokumentum szrmazkai.
Amennyiben a 3. szakasz Bortszvegekre vonatkoz rendelkezsei alkalmazhatk a Dokumentum e pldnyaira, s a Dokumentum a teljes sszegzsnek kevesebb,
mint egynegyedt teszi ki, gy a Dokumentum Bortszvegeit olyan mdon is el lehet helyezni, hogy azok csak magt a Dokumentumot fogjk t. Minden ms esetben
a teljes sszegzs bortlapjain kell feltntetni a fenti szvegeket.

8. FORDT S
A fordts egyfajta mdostsnak tekintheto , gy ht a Dokumentum lefordtott pldnyai a 4. szakasz rendelkezsei alapjn terjesztheto k. A Nem Vltoztathat Szakaszok
lefordtsa kln engedlyt ignyel a szerzo i jogtulajdonostl, mindazonltal kzzteheti a lefordtott vltozatokat is abban az esetben, ha az eredeti Nem Vltoztathat
Szakaszokat is belefoglalja a munkba. E Licensz lefordtsra ugyanezek a felttelek
rvnyesek, vagyis a lefordtott vltozat csak akkor jelenhet meg, ha mellette ott van
az eredeti, angol nyelvu Licensz szvege is. Amennyiben eltrs mutatkozna az eredeti vltozat, illetve a fordts kztt, gy a Licensz angol nyelvu eredetije tekintend o
mrvadnak.

9. MEGSZUNS
A jelen Licenszben egyrtelmuen kijellt kereteken kvl tilos a Dokumentum brminemu sokszorostsa, mdostsa, allicenszelse, vagy terjesztse. Minden ezzel
szembeni sokszorostsi, mdostsi, allicenszelsi, vagy terjesztsi ksrlet a jelen Licenszben meghatrozott jogok automatikus megszunst vonja maga utn. Azok a fe-

67

lek, ugyanakkor, akik nn keresztl jutottak msolathoz, vagy jogosultsgokhoz, nem


vesztik el azokat, amg maradktalanul betartjk e Licensz elo rsait.

10. JELEN LICENSZ JVOBENI


JAVT SAI
Megtrtnhet, hogy a Szabad Szoftver Alaptvny ido rol idore fellvizsglt s/vagy j
verzikat bocst ki a GNU Szabad Dokumentcis Licenszbo l. E verzik szellemisge hasonl lesz jelen vltozathoz, m rszleteikben eltrhetnek, j problmk, j
agglyok felmerlse okn. V.: http://www.gnu.org/copyleft/
A Licensz minden vltozata egyedi verziszmmal van elltva. Ha a Dokumentum jelen Licensz egy konkrt, szmozott verzijra, vagy brmely jabb verzira
hivatkozik, gy nnek a szban forg vltozat, vagy brmely jabb a Szabad Szoftver
Alaptvny ltal (nem vzlatknt) publiklt verzi feltteleinek kvetsre lehet o sge
van. Ha a Dokumentum nem ad meg semmilyen verziszmot, gy brmely a Szabad
Szoftver Alaptvny ltal valaha (nem vzlatknt) publiklt vltozat megfelel.

FGGELK: A Licensz alkalmazsa sajt dokumentumaira


Ha e Licenszet egy n ltal rt dokumentumban kvnja hasznlni, akkor mellkelje
hozz a Licensz egy pldnyt, tovbb vezesse r az albbi szerz o i jogi s licensz
kzlemnyeket, rgtn a cmlapot kveto en:
Copyright c V AZ N NEVE.
E kzlemny felhatalmazst ad nnek jelen dokumentum sokszorostsra, terjesztsre s/vagy mdostsra a Szabad Szoftver Alaptvny ltal
kiadott GNU Szabad Dokumentcis Licensz 1.1-es, vagy brmely azt kveto verzijnak felttelei alapjn. A Nem Vltoztathat Szakaszok neve
SOROLJA FEL A CMKET , a Cmlap-szvegek neve LISTA, a Htlapszvegek neve pedig LISTA. E licensz egy pldnyt a GNU Szabad Dokumentcis Licensz elnevezsu szakasz alatt tallja.
Ha a szvegben nincsenek Nem Vltoztathat Szakaszok, gy rjon nincs Nem
Vltoztathat Szakasz-t, ahelyett, hogy egyenknt felsoroln azokat. Ha nincsenek
Cmlap-szvegek, akkor rjon nincs Cmlap-szveg-et, ahelyett, hogy a Cmlapszvegek neve LISTA, s hasonlkpp jrjon el a Htlap-szvegek esetben is.
Amennyiben a dokumentum halad programkd-pldkat is tartalmaz, gy azt javasoljuk, hogy e pldkat egy vlasztsa szerinti szabad szoftver licensz alatt kzlje
mint pldul a GNU ltalnos Felhasznli Licensz , hogy lehet o v tegye a kdok
szabad szoftverekben val alkalmazst.

68

Htlapszveg
Ezen dokumentum eredetije kszlt 2001-2002-ben a Linux-Felhasznlk
Magyarorszgi Egyeslete gondozsban a MEH IKB pnzgyi tmogatsval. A dokumentum szabadon terjesztheto s msolhat a GNU Szabad
Dokumentcs Licensz felttelei alapjn.

69

You might also like