Você está na página 1de 231

1

Bagoly Zsolt, Papp Gbor


Bevezets a UNIX rendszerekbe
egyetemi jegyzet
informatikus zikus szakos hallgatknak
1993-1994, ELTE, Budapest
2
Tartalomjegyzk
1. A UNIX kialakulsnak trtnete 13
2. UNIX alapok 15
2.1. A UNIX rendszerek elrse . . . . . . . . . . . . . . . . . . . . . 16
2.1.1. Bejelentkezs a UNIX rendszerbe . . . . . . . . . . . . . 16
2.1.2. Jelsz hasznlata . . . . . . . . . . . . . . . . . . . . . . 17
2.1.3. Kijelentkezs . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.4. A hasznlt shell belltsa (chsh parancs) . . . . . . . . . 18
2.2. A UNIX shell parancsok . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1. A parancs vgrehajtsnak megszaktsa . . . . . . . . . 19
2.2.2. A parancsok javtsa . . . . . . . . . . . . . . . . . . . . 20
2.2.3. Az utastsok kapcsoli . . . . . . . . . . . . . . . . . . . 20
2.2.4. Az utastsok argumentumai . . . . . . . . . . . . . . . . 22
2.2.5. A man parancs . . . . . . . . . . . . . . . . . . . . . . . 22
3. llomnyok hasznlata 23
3.1. A UNIX llomnyok . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1. Az llomnyok tpusai . . . . . . . . . . . . . . . . . . . 24
3.1.2. llomnyok ltrehozsa . . . . . . . . . . . . . . . . . . 24
3.2. llomnyok kilistzsa . . . . . . . . . . . . . . . . . . . . . . . 25
3.3. llomnyok tartalmnak megjelentse . . . . . . . . . . . . . . . 27
3.3.1. A cat parancs . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.2. Nagyobb llomnyok megjelentse . . . . . . . . . . . . 29
3.4. llomnyok msolsa, tnevezse s trlse . . . . . . . . . . . . 31
3.4.1. llomnyok msolsa . . . . . . . . . . . . . . . . . . . 31
3.4.2. llomnyok tnevezse (mv) . . . . . . . . . . . . . . . . 32
3.4.3. llomnyok trlse . . . . . . . . . . . . . . . . . . . . . 32
3.5. Szveg keresse: a grep parancs . . . . . . . . . . . . . . . . . . 33
3
4 TARTALOMJEGYZK
3.6. llomnyok sorbarendezse a sort utasts . . . . . . . . . . . . 33
3.7. A UNIX helyettest o karakterei . . . . . . . . . . . . . . . . . . . 34
3.8. Knyvtrak hasznlata . . . . . . . . . . . . . . . . . . . . . . . 37
3.8.1. Abszolt s relatv tvonal . . . . . . . . . . . . . . . . . 39
3.8.2. A knyvtrrendszer hasznlata . . . . . . . . . . . . . . . 39
3.8.3. llomnyok msolsa, mozgatsa s linkelse . . . . . . . 40
3.8.4. Knyvtrak ltrehozsa s trlse . . . . . . . . . . . . . 41
3.8.5. llomny megkeresse a knyvtrstruktrban . . . . . . 41
3.9. llomnyok vdelmnek belltsa . . . . . . . . . . . . . . . . . 42
4. llomnyok szerkesztse 45
4.1. A vi editor hasznlata . . . . . . . . . . . . . . . . . . . . . . . 45
4.2. A MicroEMACS szerkeszt o . . . . . . . . . . . . . . . . . . . . 46
5. llomnyok nyomtatsa 49
5.1. A printer llapotnak lekrdezse . . . . . . . . . . . . . . . . . . 50
5.2. A nyomtatsi krs megszaktsa . . . . . . . . . . . . . . . . . . 51
6. Ki- s bemenetek tirnytsa, klnleges shell parancsok 53
6.1. Parancs kimenetnek tirnytsa . . . . . . . . . . . . . . . . . . 53
6.2. Bemenet tirnytsa . . . . . . . . . . . . . . . . . . . . . . . . 54
6.3. A cs o (pipe) hasznlata . . . . . . . . . . . . . . . . . . . . . . . 56
6.4. Parancs eredmnynek tovbbhasznlata . . . . . . . . . . . . . . 56
6.5. Parancsllomnyok ltrehozsa . . . . . . . . . . . . . . . . . . . 57
7. Programok futtatsa 59
8. Kommunikcis programok 63
8.1. Prbeszdes kapcsolat . . . . . . . . . . . . . . . . . . . . . . . . 63
8.1.1. A write utasts . . . . . . . . . . . . . . . . . . . . . . 63
8.1.2. A talk parancs . . . . . . . . . . . . . . . . . . . . . . . 64
8.1.3. A mesg utasts . . . . . . . . . . . . . . . . . . . . . . . 65
8.2. Elektronikus levelezs . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.1. A mail levelez o program . . . . . . . . . . . . . . . . . . 65
8.2.2. Az elm levelez o program . . . . . . . . . . . . . . . . . . 68
8.3. Hlzat hasznlata . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.3.1. A telnet parancs . . . . . . . . . . . . . . . . . . . . . 70
8.3.2. Az ftp utasts . . . . . . . . . . . . . . . . . . . . . . . 71
TARTALOMJEGYZK 5
8.3.3. A finger parancs . . . . . . . . . . . . . . . . . . . . . 74
8.4. A tin elektronikus jsg . . . . . . . . . . . . . . . . . . . . . . . 75
8.5. A gopher elektronikus adatkeres o program . . . . . . . . . . . . 78
9. A Korn shell 83
9.1. A krnyezetvltozk . . . . . . . . . . . . . . . . . . . . . . . . 84
9.2. A parancsok kirtkelse a shellben . . . . . . . . . . . . . . . . 84
9.3. Vd okarakterek . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.4. Parancssor szerkeszts . . . . . . . . . . . . . . . . . . . . . . . 86
9.5. Visszatrsi rtkek . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.6. A Korn shell kapcsoli . . . . . . . . . . . . . . . . . . . . . . . 87
9.7. A Korn-shell beptett parancsai . . . . . . . . . . . . . . . . . . 87
9.8. A fggvnyek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.9. Feltteles kifejezsek . . . . . . . . . . . . . . . . . . . . . . . . 89
9.10. Specilis parancsok . . . . . . . . . . . . . . . . . . . . . . . . . 91
9.11. Aritmetikai Kifejezsek . . . . . . . . . . . . . . . . . . . . . . . 97
9.12. Parancs eredmnynek helyettestse . . . . . . . . . . . . . . . . 97
9.13. llomnynv helyettests . . . . . . . . . . . . . . . . . . . . . 98
9.14. Ki- s bemenetek tirnytsa . . . . . . . . . . . . . . . . . . . . 98
9.15. Helyettest o nevek (alias) . . . . . . . . . . . . . . . . . . . . . 99
9.16. A tilde helyettests . . . . . . . . . . . . . . . . . . . . . . . . . 100
9.17. Paramter helyettests . . . . . . . . . . . . . . . . . . . . . . . 100
10. llomnyok feldolgozsa 107
10.1. A grep parancs ismertetse . . . . . . . . . . . . . . . . . . . . . 107
10.2. A sed pipe szerkeszt o . . . . . . . . . . . . . . . . . . . . . . . . 110
10.2.1. A sed parancsai . . . . . . . . . . . . . . . . . . . . . . . 111
10.3. A uniq utasts . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
10.4. Az awk programnyelv . . . . . . . . . . . . . . . . . . . . . . . . 117
10.4.1. Az adatllomny feldolgozsa . . . . . . . . . . . . . . . 118
10.4.2. Az awk programnyelv . . . . . . . . . . . . . . . . . . . 118
10.4.3. A kiterjesztett regulris kifejezs . . . . . . . . . . . . . . 118
10.4.4. Az sszehasonltsok . . . . . . . . . . . . . . . . . . . . 120
10.4.5. A mintk kombincija . . . . . . . . . . . . . . . . . . . 120
10.4.6. A BEGIN s END kifejezsek . . . . . . . . . . . . . . . . 121
10.4.7. Vltozk . . . . . . . . . . . . . . . . . . . . . . . . . . 121
10.4.8. Az awk utastsai . . . . . . . . . . . . . . . . . . . . . . 123
10.4.9. Pldk . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6 TARTALOMJEGYZK
10.5. llomnyok sorrendbe rendezse: a sort utasts . . . . . . . . . 127
11. Archivls s archv llomnyok hasznlata 133
11.1. Knyvtrak archivlsa . . . . . . . . . . . . . . . . . . . . . . . 134
11.1.1. A tar parancs . . . . . . . . . . . . . . . . . . . . . . . 134
11.1.2. A dd adatkonvertl utasts . . . . . . . . . . . . . . . . 135
11.1.3. Mgnesszalagos egysgek . . . . . . . . . . . . . . . . . 137
11.1.4. Pldk archivlsra . . . . . . . . . . . . . . . . . . . . . 138
11.2. Tmrt o programok . . . . . . . . . . . . . . . . . . . . . . . . 140
11.2.1. A compress eljrs . . . . . . . . . . . . . . . . . . . . . 140
11.2.2. A pack eljrs . . . . . . . . . . . . . . . . . . . . . . . 141
11.3. Kdolsi eljrsok . . . . . . . . . . . . . . . . . . . . . . . . . 141
11.3.1. Az uuencode/uudecode parancs . . . . . . . . . . . . . . 141
11.3.2. A btoa/atob eljrs . . . . . . . . . . . . . . . . . . . . 142
11.3.3. llomnyok sztdarabolsa . . . . . . . . . . . . . . . . 142
12. Programok fordtsa s futtatsa 145
12.1. A UNIX C Fordt (cc) . . . . . . . . . . . . . . . . . . . . . . . 146
12.2. A UNIX FORTRAN fordt (f77) . . . . . . . . . . . . . . . . . 148
12.3. A Pascal fordt . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
12.4. A UNIX fordti knyvtrkezelse (ar, ranlib) . . . . . . . . . 150
12.5. A futtathat program sszeszerkesztse: az ld parancs . . . . . . 152
12.6. Programok futtatsa . . . . . . . . . . . . . . . . . . . . . . . . . 155
12.6.1. A batch parancs . . . . . . . . . . . . . . . . . . . . . . 158
12.6.2. Feladatok rendszeres futtatsa: a crontab parancs . . . . 158
12.7. Hibakeress s ellen orztt futtats (dbx) . . . . . . . . . . . . . . 160
12.8. Programok jrafordtsa: a make parancs . . . . . . . . . . . . . . 166
12.8.1. Kiterjesztsek . . . . . . . . . . . . . . . . . . . . . . . . 167
12.8.2. Makrk . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
12.8.3. A make kapcsoli . . . . . . . . . . . . . . . . . . . . . . 169
13. A vi editor hasznlata 173
13.1. zemmdok a vi-ban . . . . . . . . . . . . . . . . . . . . . . . . 173
13.2. A vi editor klnbz o belltsai . . . . . . . . . . . . . . . . . . 174
13.3. A vi parancsai . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
13.3.1. Mozgs az llomnyban . . . . . . . . . . . . . . . . . . 177
13.3.2. String keress . . . . . . . . . . . . . . . . . . . . . . . . 178
13.3.3. A szvegrs zemmd . . . . . . . . . . . . . . . . . . . 178
TARTALOMJEGYZK 7
13.3.4. Szvegvltoztats a parancs mdban . . . . . . . . . . . . 179
13.3.5. Msols s mozgats . . . . . . . . . . . . . . . . . . . . 180
13.3.6. Visszallts s parancs-ismtls . . . . . . . . . . . . . . 180
13.3.7. Szvegrsz helyettests . . . . . . . . . . . . . . . . . . 181
13.4. llomnykezels . . . . . . . . . . . . . . . . . . . . . . . . . . 181
13.5. A shell elrse a vi-bl . . . . . . . . . . . . . . . . . . . . . . . 182
13.6. Makrk s parancsok denilsa . . . . . . . . . . . . . . . . . . 183
14. A MicroEMACS szvegszerkeszt o lersa 185
14.1. A legfontosabb MicroEMACS parancsok . . . . . . . . . . . . . 185
14.2. Mozgs az llomnyban . . . . . . . . . . . . . . . . . . . . . . 186
14.2.1. Trls s beszrs . . . . . . . . . . . . . . . . . . . . . 187
14.3. Keress s helyettests . . . . . . . . . . . . . . . . . . . . . . . 187
14.3.1. llomnykezels . . . . . . . . . . . . . . . . . . . . . . 188
14.3.2. Buffer s ablak kezels . . . . . . . . . . . . . . . . . . . 189
14.4. Specilis utastsok . . . . . . . . . . . . . . . . . . . . . . . . . 190
15. A mail program m ukdse 193
15.1. A mail felptse . . . . . . . . . . . . . . . . . . . . . . . . . . 193
15.2. Parancsok levl kldse kzben . . . . . . . . . . . . . . . . . . 195
15.3. A mailbox alparancsok . . . . . . . . . . . . . . . . . . . . . . . 196
16. Az elm rszletes hasznlata 203
16.1. Az elm alaputastsai . . . . . . . . . . . . . . . . . . . . . . . . 204
16.2. A postaldk . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
16.3. Aliasok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
16.4. A kongurcis le (elmrc) . . . . . . . . . . . . . . . . . . . . 208
17. Hlzati alapismeretek s egyb programok 209
17.1. TCP/IP alapok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
17.1.1. A TCP/IP protokollok ltalnos felptse . . . . . . . . . 210
17.1.2. A TCP szint . . . . . . . . . . . . . . . . . . . . . . . . . 211
17.1.3. Socketek s applikcik . . . . . . . . . . . . . . . . . . 212
17.1.4. Egyb protokollok: UDP, ICMP s ARP . . . . . . . . . . 213
17.1.5. Repeaterek, bridge-ek s routerek . . . . . . . . . . . . . 214
17.2. Az rlogin s rsh utastsok . . . . . . . . . . . . . . . . . . . . 215
17.2.1. Az rlogin utasts . . . . . . . . . . . . . . . . . . . . . 216
17.2.2. Az rsh utasts . . . . . . . . . . . . . . . . . . . . . . . 216
8 TARTALOMJEGYZK
17.3. Anonymous ftp hasznlata . . . . . . . . . . . . . . . . . . . . . 217
18. A tin elektronikus jsg rszletes lersa 219
18.1. A rovatok kivlasztsa . . . . . . . . . . . . . . . . . . . . . . . 220
18.2. Cikkek elkldse . . . . . . . . . . . . . . . . . . . . . . . . . . 221
18.3. A tin krnyezete . . . . . . . . . . . . . . . . . . . . . . . . . . 222
18.4. A tin parancsai . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
El osz
Knyvnket tbb tanfolyam s a mindennapi let tapasztalatai alapjn kt rszre
osztottuk: az els o rszt a teljesen kezd o, a UNIX (ejtsd junix) rendszerrel is-
merked o felhasznlknak szntuk. Ennek megfelel oen az egyes fejezetekben az
adott tma (program) hasznlatrl csak a legfontosabb tudnivalkat foglaltuk
ssze. Megtlsnk szerint ez az egyes segdprogramokrl szl nhny oldal
elegend o az elindulshoz s a legegyszer ubb hasznlathoz (a szerz ok tapasztalata
szerint az egy oldalt meghalad lersokat senki sem olvassa el
1
...).
Az els o rszben ismertetett parancsok s programok rszletes lerst a knyv
msodik felben trgyaljuk. Ezt a rszt azoknak szntuk, akik jobban meg sz-
eretnk ismerni az egyes programokat s/vagy a rendszer rszletesebb m ukdst.
Ebben a rszben tbb olyan fejezet is tallhat, amely mr programozsi alapis-
mereteket is felttelez (pl. a programok fordtsrl s futtatsrl szl rsz).
Mivel a knyv a fentiek rtelmben kt rszre oszlik, a kereszthivatkozsokat A
kereszthivat-
kozsokat
tipograilag
kln is
jelltk a
margn.
tipograilag kln is jelltk a margn.
A hivatkozott UNIX parancsokra s programokra kln bet utpus hvja fel
a gyelmet. A parancsok ismertetsnl [ ] kztt jelltk az esetlegesen megad-
hat paramtereket, ilyenkor a paramterek megadshoz a [ ] jeleket nem kell
berni. Amennyiben a paramtereket | vlasztja el. akkor kzlk csak egyet
lehet kivlasztani. A d olt bet ukkel kiemelt parancsrszeket nem kell (nem sza-
bad) bet u szerint berni, ezeket mindig rtelemszer uen helyettesteni kell az ak-
tulis rtkekkel. Ugyangy d olt bet u emeli ki a pldknl a magyarzatokat:
termszetesen ezeket sem kell (szabad) begpelni.
A gyakorlst segt o pldkra egy msik jel hvja fel a gyelmet a margn. A
pldkban a felhasznl ltal berand szvegrszt gy jelltk. A pldk klnbz o
shellek (parancs rtelmez o programok) alatt mskppen m ukdnek: mi a Korn-
shell (ksh, l. a 9. fejezetet) hasznlatt felttelezzk. Trekedtnk arra, hogy a
pldk (szinte) minden UNIX rendszerben m ukdjenek. Tekintve, hogy nagyon
1
A szerz ok sem olvassk el!
9
10 TARTALOMJEGYZK
sok, rszben klnbz o UNIX rendszer ltezik, ezrt el ofordulhat, hogy az egyes
parancsoknl megadott paramterek nmelyike nem, vagy nem gy m ukdik,
mint az a knyvben szerepel.
Mivel a UNIX nyelve az angol, ezrt megtartottuk a parancsok eredeti angol
kiejtst (pl. vi ejtsd vj). A szmtstechnikban a kznapitl eltr oen hasznlt
kifejezsek s az idegen szavak magyarzatt a knyv vgn, a ??. oldalon adjuk
meg.
I. Alapismeretek
11
1. fejezet
A UNIX kialakulsnak trtnete
A UNIX opercis rendszert a Bell Laboratriumban (AT&T) fejlesztettk ki a
60-as vekben, eredetileg egy DEC PDP-7 tpus szmtgpen. Az opercis
rendszer szorosan kapcsoldik a C programozsi nyelvhez, maga a rendszer dn-
t oen ezen a nyelven rdott s csupn minimlis, a processor tpustl fgg o gpi
kd rszt tartalmaz. Mivel a legtbb szmtgpre ma mr ltezik Cfordt, ezrt
a UNIX opercis rendszer knnyen tvihet o ezekre a gpekre. Ez sszecseng a
UNIX eredeti cljaival. A fejleszt ok, Dennis Ritchie s Brian W. Kernighan olyan
opercis rendszert akartak ltrehozni, amely:
- "hordozhat"
- eszkzfggetlen llomnyrendszert tartalmaz
- modulrendszer u
- tbbfelhasznls
- tbb programot prhuzamosan futtat
Rugalmassga kvetkeztben a UNIX opercis rendszer gyors fejl odsnek
indult, s egyre jabb verzii jelentek meg. Ugyanakkor egymstl fggetlen fej-
lesztsek kvetkeztben megjelentek a klnbz o UNIX vltozatok. 1979-ben az
AT&T fejlesztst felhasznlva a Berkeley Egyetemen egy nmileg ett ol eltr o
UNIX vltozatot dolgoztak ki (BSD UNIX), s manapsg ennek a kt f ognak a
fejlesztse prhuzamosan folyik. Remlhet oleg azonban az eltr o vltozatok a
szabvnyostsi tendencik kvetkeztben a POSIX szabvnyban egyeslni fog-
nak. A legismertebbek:
13
14 FEJEZET 1. A UNIX KIALAKULSNAK TRTNETE
- AT&T System V R4
- BSD UNIX 4.4 (Ez a Berkeley University fejlesztse)
- AIX 3.2 (IBM)
- SCO UNIX (Santa Cruz Operation), INTERACTIVE UNIX (Kodak), Co-
herent UNIX, 386BSD (Ezek IBM PC kompatibilis gpeken futnak)
- SUNOS 4.1, SOLARIS 2.1 (SUN)
- ULTRIX 4.4, OSF/1 (DEC)
- HP-UX (Hewlett-Packard)
- IRIX 4.0 (Silicon Graphics)
- UNICOS (Cray)
2. fejezet
UNIX alapok
A UNIX alapvet o sajtsga az n. multitasking. Ez azt jelenti, hogy minden
feladatot kln eljrsknt kezel, s minden ms feladattl fggetlenl tudja azt
vgrehajtani. gy egyid oben (pl. a DOS rendszerrel ellenttben) a gp tbb kln-
bz o programot is futtathat. Az opercis rendszer msik jellegzetessge, hogy
igen nagy szabadsgot ad a programok bemen o s kimen o adatainak kezelsben.
Ennek keretben tbb fut feladat ki s bemenete ssze is kapcsolhat (pipe), il-
letve a bemenet s kimenet tetsz oleges eszkzre tirnythat.
A UNIX opercis rendszer egyszerre tbb felhasznlt is ki tud szolglni
egyid oben, akr gy is, hogy mindegyik felhasznl egyszerre tbb feladatot fut-
tat alatta. A rendszer rugalmassghoz tartozik, hogy mindegyik felhasznlhoz
kln "mretre is szabhat", mivel bejelentkezs sorn egy n. shell (burok)
alakul ki a felhasznl krl, melynek paramtereinek egy rsze szabadon l-
lthat. Shellekb ol tbbfajta is van egy UNIX rendszeren, de a gyakorlott fel-
hasznlk akr maguk is rhatnak ilyen burkokat.
A modulrendszer kvetkeztben igen sok UNIX parancs van (300 fltt).
Radsul mindegyiknek vannak kapcsoli, melyekkel egy-egy parancs hatst
lehet mdostani. Ilyen nagyszm parancs hasznlata mr igen krlmnyes,
s nem tarthat fejben, ezrt a UNIX rendszer rsze egy beptett kziknyv (l. a
man parancsot a 22. oldalon). A UNIX rendszer taln a legnagyobb hasonlsgot
a DOS rendszerrel mutatja.
1
1
Pontosabban az llts fordtva igaz: a DOS eredetileg a UNIXs a VMS opercis rendszerek
keresztezsb ol s teljes lecsupasztsbl szletett...
15
16 FEJEZET 2. UNIX ALAPOK
2.1. A UNIX rendszerek elrse
2.1.1. Bejelentkezs a UNIX rendszerbe
A belpshez felhasznli nvvel s jelszval(kulcssz,password) kell rendelkez-
nnk a megadott gpen. A felhasznli nv egy ltalban 8 bet unl rvidebb
sz, amivel a rendszer azonostja a felhasznlkat (ez lehet a csald- vagy
keresztnv, becenv, stb.). A kulcssz a felhasznli nevet vdi: csak a megfe-
lel o jelszval lehet a rendszerbe bejelentkezni. A jelsz gy megvd minket s
llomnyainkat az illetktelen behatolktl. A felhasznlkat a rendszer csopor-
tokba osztja: mindenki egy vagy tbb csoporthoz tartozhat. Ennek a hozzfrsi
jogoknl lehet szerepe: pl. bizonyos llomnyokat csak egy adott csoport tagjai
rhetnek el, stb.
AUNIXa felhasznli nv s jelsz alapjn dnti el, hogy jogosultak vagyunk-
e a gp hasznlatra. Felhasznli nevet s kezdeti jelszt a gp rendszergazdjtl
lehet kapni. A bejelentkezs a kvetkez o lpsekb ol ll:
- ellen orizzk, hogy be van-e kapcsolva a terminl vagy PC.
- hlzat hasznlata esetn futtassuk le a megfelel o kommunikcis progra-
mot (pl. telnet ludens.elte.hu, amennyiben a ludens.elte.hu gpre
szeretnnk bejelentkezni). Vrjunk, amg a bejelentkezsi prompt meg nem
jelenik (ezt megel ozheti egy rvid, pl. a gp nevt s tpust tartalmaz
informci).
- A login: promptnl gpeljk be a felhasznli nevnket.
- Ha a felhasznli nvhez jelsz tartozik, akkor azt a rendszer a Password:
prompt megjelentsvel kri. A jelsz biztonsgi okokbl begpelskor
nem jelenik meg a kperny on. (Egyes esetekben bizonyos felhasznli
nevek esetn nincs jelsz. Ilyenkor ltalban csak korltozott felhasznlst
engedlyez az opercis rendszer).
Ha rossz felhasznli nevet, vagy jelszt adtunk meg, err ol a rendszer hi-
bazenettel rtest minket. Ilyenkor a kvetkez o promptnl korriglhatunk. l-
talban bizonyos szm hibs bejelentkezs utn a gp bontja a hlzati kapcso-
latot. A UNIX opercis rendszer megklnbzteti a kis s nagy bet uket, ezrt
nagyon gyeljnk, hogy a felhasznli nevnkben, illetve jelszavunkban milyen
bet uk fordulnak el o.
2.1. A UNIX RENDSZEREK ELRSE 17
Plda:
A kvetkez o bejelentkezsben a felhasznli nv: Joska, a jelsz pedig: 2pistA.
A helyes bejelentkezsi eljrs:
login: Joska Enter
Password: 2pistA Enter ez termszetesen nem ltszik a kperny on
$ ez mr a shell promptja, bejelentkeztnk
Helytelen bejelentkezs a kvetkez o (a kis- s nagybet ut megklnbzteti a rend-
szer):
login: joska Enter
Password: 2pistA Enter
You entered an invalid login name or password.
login:
A jogosulatlan belpsi prblkozsok ellen ktflekppen vdekezik a rend-
szer: egyrszt rtesti a felhasznlt, hogy mikor s melyik terminlrl prbltak
meg sikertelenl belpni a felhasznli azonostjval, msrszt a rendszergazda
szmra ezeket az informcikat egy llomnyban trolja, aki szksg esetn en-
nek alapjn megfelel o ellenintzkedseket tehet.
2.1.2. Jelsz hasznlata
A jelsz megvltoztatsra a UNIX rendszerben a passwd parancs szolgl. Az
el obbi plda jelszavt a kvetkez okppen vltoztathatjuk meg:
$ passwd Enter
Changing password for "Joska"
Joskas Old password: 2pistA Enter ez nem jelenik meg
Joskas New password: 3juli Enter ez sem jelenik meg
Re-enter Joskas new password: 3juli Enter a msodik bers a vletlen
eltst vdi ki
A fenti pldbl lthat, hogy a jelszavakat csak a korbbi ismeretben vltoz-
tathatjuk, ilyen mdon is vdve vagyunk az idegen beavatkozstl. Amennyiben
hibsan gpeltk be a jelszavunkat, vagy az j jelsz ktszeri begpelse nem
egyezik meg, hibazenetet kapunk s a vltoztats nem kvetkezik be.
A nevnket hasznl jogosulatlan belpsek megakadlyozshoz tartsuk be
a kvetkez oket:
- A jelsz nagyon fontos biztonsgi eszkz a UNIX rendszerben, tartsuk jel-
szavunkat titokban!
18 FEJEZET 2. UNIX ALAPOK
- Ne hasznljuk jelszknt nyilvnval szavakat, pl. keresztnv, gyermek
neve, stb.! Illessznk a bet uk kz szmo(ka)t is!
- A rendszergazda bellthatja, hogy a jelsz egy adott id o mlva rvnyt
vesztse. Ha ez mr kszbn ll, meg kell vltoztatni jelszavunkat. Gyakori,
hogy j felhasznlknt az els o belpskor a rendszer felszlt minket a jel-
sz azonnali megvltoztatsra, amit ezutn mr a rendszergazda semismer.
- Amennyiben elfelejtettk a jelszt, vagy ms ok miatt nem tudunk belpni,
akkor keressk fel a rendszergazdt, aki vagy j jelszt ad ki a szmunkra,
vagy kitrli a jelszt. Ilyenkor clszer u azonnal megvltoztatni az j jelszt.
2.1.3. Kijelentkezs
Mindig jelentkezznk ki a gpb ol, brmilyen rvid id ore is hagyjuk azt szabadon.
Kijelentkezni tbbflekppen lehet a rendszerb ol. Lehet az exit paranccsal, a
Ctrl s D billenty uk egyidej u lenyomsval, illetve bizonyos esetekben a logout
utastssal
2
.
Plda:
$ logout Enter
login:
vagy
$ exit Enter
You have stopped jobs a rendszer gyelmeztet, hogy a httrben mg
programjaink futnak
$ exit Enter a kilpshez meg kell ismtelni a parancsot
login:
A kijelentkezs utn a rendszer azonnal felkszl a kvetkez o bejelentkezsre.
2.1.4. A hasznlt shell belltsa (chsh parancs)
A bejelentkezs utn egy n. burok fogad minket. A rendszergazda tbb kln-
bz o program kzl vlasztja ki az j felhasznl kezdeti burkt. Ha ez neknk
nem felel meg, a chsh paranccsal tllthatjuk ezt. A parancs felsorolja a rend-
szerben tallhat burkokat, kirja, hogy ppen melyiket hasznljuk. Ezutn meg-
krdezi, hogy meg akarjuk-e vltoztatni. Amennyiben igen, meg kell adnunk az
j shell teljes nevt (pl. /bin/ksh). Az j shell a kvetkez o bejelentkezst ol l.
Megjegyezzk, hogy ltalban ezt a parancsot csak ritkn szksges kiadni. Egy
shellt a chsh helyett kzvetlen futtatssal (nevnek bersval) prbljunk ki!
2
Ezt akkor kell hasznlnunk, ha a csh -t, vagy hasonl burkot futtatunk.
2.2. A UNIX SHELL PARANCSOK 19
2.2. A UNIX shell parancsok
A UNIX shell egy olyan interaktv program, amely egyszerre tlti be a parancs
rtelmez o (command interpreter) s az adatkzvett o szerept. A klnbz o rend-
szerszolgltatsokat, pldul nyomtats, msols, megjelents, keress, szerkesz-
ts, sorballts, trls, kommunikci, stb. a shellnek eljuttatott parancsokkal
valsthatjuk meg.
A shell promttal jelenkezik be, ami ltalban a $ jel, ez utn lehet a paran-
csokat begpelni. A parancsokat ltalban egy sorban adjuk be: el oszr a paran-
csot, majd az esetleges mdost kapcsolkat s argumentumokat. A parancsot az
Enter billenty uvel zrjuk.
Vigyzzunk, mert a UNIX rendszer megklnbzteti a nagy s kisbet uket!
A parancsok nagy rszt kisbet uvel kell rni.
Pldaknt vegyk a who parancsot, amely kilistzza az sszes bejelentkezett
felhasznlt, a hozzjuk tartoz terminllal, valamint a bejelentkezsi id opontjuk-
kal egytt:
$ who Enter
Joska tty2 Jan 02 10:02
root console Jan 02 07:56
Zoli ttyp4 Jan 22 22:45
Ha a shell parancs kiadsa kzben lenyomjuk az Enter billenty ut, akkor a
rendszer vagy hibazenettel, vagy megkezdett idz ojelek esetn egy n.
msodlagos prompttal (ez ltalban a > jel) jelzi. A msodlagos prompt esetn a
rendszer vrja annak lezrst. A msodlagos promptnl befejezhetjk a paran-
csot, de meg is szakthatjuk azt a Ctrl - C billenty uk lenyomsval. Hibazenet
esetn a begpelt parancs elveszik.
Pldul az echo paranccsal kirhatjuk a kperny ore az idz ojelek kztt sze-
repl o szveget:
$ echo "Ennyi az Enter lenyomjuk az Enter -t mg miel ott vgeznnk
>egesz" Enter befejezzk a parancsot
Ennyi az
egesz
$
2.2.1. A parancs vgrehajtsnak megszaktsa
Bizonyos esetekben szksg lehet a parancs lelltsra annak futsa kzben: pl-
dul ha egy parancs mr tl hossz ideje fut, vagy kzben esznkbe jut, hogy nem
20 FEJEZET 2. UNIX ALAPOK
ezt az utastst akartuk futtatni.
A parancs lelltsra a Ctrl s C billenty uk egyidej u lenyomsa szolgl.
Ezzel megszaktjuk a parancs futst, s visszakapjuk az eredeti shell promptot.
A parancs futst amikor az adato(ka)t krdez be a Ctrl s D egyidej u
lenyomsval is megszakthatjuk. A Ctrl-D a UNIX opercis rendszerben az
adatllomny vgt jelzi. Parancssorban alkalmazva a rendszer befejezi az adott
parancssorozat vgrehajtst, azaz gy kilpnk a rendszerb ol.
3
Ha egyms utn
tbbszr alkalmazzuk ezt a mdot, akkor el oszr a fut programot, aztn a shellt
lltja le a rendszer.
2.2.2. A parancsok javtsa
Ha a parancsot hibsan gpeltk be, akkor a UNIX rendszer nem tudja vgrehaj-
tani s hibazenetet kld. Pldul:
$ whoa Enter
whoa: not found a shell vlasza: nincs ilyen parancs
$
A gpelsi hiba kijavtsra a Backspace billenty u (esetleg a Ctrl - H kom-
binci, vagy a Delete felirattal elltott gomb) szolgl. Ez trli a kurzor
el ott ll karaktert. Bizonyos esetekben (pl. PC-s hlzati programnl) clszer u
az ltalunk hasznlt trl ogomb belltsa. Ezt pl. a Backspace gombra a
$ stty erase Backspace Enter
utastssal tehetjk meg.
A kurzort mozgat gombok a UNIX rendszerben ltalban csak klnleges
shell programok (pl. tcsh, bash) esetn hasznlhatk a parancsok javtsra!
Az egsz parancssor trlsre a Ctrl - U billenty uk szolglnak. Ezt akkor
hasznljuk, ha tl sokat hibztunk a parancs bersakor.
2.2.3. Az utastsok kapcsoli
A kapcsolk az alaputasts vgrehajtst mdostjk. Szinte minden utasts ren-
delkezik kapcsolval. A kapcsolkat az utasts utn a mnusz (-) vagy ritkbban
a plusz (+) jellel elvlasztva adjuk meg. A kapcsolk ltalban egy bet ub ol llnak.
A UNIX opercis rendszer itt is megklnbzteti a kis- s nagybet uket!
3
Ez nem mindig van gy, pl. csh vagy tcsh shell esetn esetn az ignoreeof krnyezeti
vltoz rtkt ol fgg oen m ukdik.
2.2. A UNIX SHELL PARANCSOK 21
A kapcsolkat az utaststl illetve annak argumentumaitl szkz(k) v-
lasztjk el. Ha az egyes kapcsolkat kln-kln adjuk meg, akkor azok kz
szintn szkz(k) kellenek.
A kvetkez o pldkban egy felttelezett felhasznli knyvtrban nzzk az
llomnyok listjt
4
:
Az ls parancs az aktulis knyvtrban lev o llomnyok felsorolst adja:
$ ls Enter
choice cm kocsi log test Mail
A -l kapcsol mdostja az ls utasts alaprtelmezst, s llomnyok rszletes
listjt rja ki (ami oszloponknt a kvetkez ot tartalmazza: vdelmi (hozzfrsi)
sttusz, link szm, a le birtokosa (felhasznl s csoport), mret byte-ban, az
utols vltoztats ideje s a le neve):
$ ls -l Enter
total 20
-rw-w--w-- 2 galahad lovag 3910 Oct 26 1992 choice
-rw-w--w-- 1 galahad lovag 21 Oct 26 1992 cm
-rw-w--w-- 1 galahad lovag 198 Oct 26 1992 kocsi
-rw-w--w-- 1 galahad lovag 5 Dec 05 1992 log
-rwxr-xr-x 1 galahad lovag 31 Oct 26 1992 test
drwx--x--x 2 galahad lovag 512 Jul 06 1992 Mail
A -a-l kapcsol rszletesen kilistzn a knyvtrban lev o sszes llomnyt (be-
lertve a .-tal ponttal kezd od oeket is
5
), ha az ls -a-l helyett az ls -a -l
(vagy az ezzel azonos az ls -al) parancsot rtunk volna, azaz
$ ls -a-l Enter
bad switch
helyett a kvetkez o a helyes:
$ ls -a -l Enter
total 32
drwxr-xr-x 3 galahad lovag 512 Dec 05 1992 .
drwxr-xr-x 9 galahad lovag 1024 Mar 05 11:45 ..
-rw-r--r-- 1 galahad lovag 166 Nov 02 1992 .index
4
Amennyibenezeket a parancsokat sajt knyvtrunkbankiprbljuk, az eredmnyekltalban
nem fognak megegyezni az itt szerepl okkel.
5
Ezek ltalban specilis llomnyok, ezrt nem listzza ki oket az ls alaprtelmezsben.
22 FEJEZET 2. UNIX ALAPOK
-rw-w--w-- 1 galahad lovag 3910 Oct 26 1992 choice
-rw-w--w-- 1 galahad lovag 21 Oct 26 1992 cm
-rw-w--w-- 1 galahad lovag 198 Oct 26 1992 gral
-rw-w--w-- 1 galahad lovag 5 Dec 05 1992 log
-rwxr-xr-x 1 galahad lovag 31 Oct 26 1992 test
drwx--x--x 2 galahad lovag 512 Jul 06 1992 Mail
rdekes kivtel a kvetkez o parancs:
$ who am i Enter
galahad tty2 Jan 02 10:02
amely kirja az ppen aktulis felhasznli nevnket (ez nem is olyan felesleges
pl. tbb gp egyszerre val hasznlatakor).
2.2.4. Az utastsok argumentumai
A kapcsolk mellett a UNIX opercis rendszer utastsainak nagy rsze param-
tereket is elfogad. Amg a kapcsolk mdostjk az adott parancs hatst, addig
a paramterek hatrozzk meg, hogy mire vonatkozik az utasts. A parancs utn
el oszr a kapcsol(ka)t, majd a paramtereket adjuk meg szkzkkel elvlasztva.
ltalban tbb paramter is megadhat. A mr korbban is emltett echo parancs
pldul az argumentumt jelenti meg a kperny on:
$ echo haliho Enter parancs s paramter
haliho az echo parancs ltal megjelentett paramter
2.2.5. A man parancs
A UNIX opercis rendszerben a parancsokrl rszletes (angol nyelv u) lerst
kaphatunk a man (manual) parancs hasznlatval. A man parancs utn megadva
a krdses utasts nevt a Szkz billenty ure laponknt, Enter -re soronknt
rja ki az informcit a rendszer. Ha abba akarjuk hagyni, a q billenty ut nyomjuk
meg. Ha egy Kulcsszt szeretnnk keresni a kziknyvben, akkor a
$ man -f Kulcssz
utastssal azoknak a fejezeteknek a rvid listjt kapjuk meg, amiben ez a kulcs-
sz szerepel.
Pldul az ls parancs lerst a
$ man ls Enter
utastssal kaphatjuk meg.
3. fejezet
llomnyok hasznlata
3.1. A UNIX llomnyok
A szmtgpeken az informcit le-ban (llomnyban) troljuk. Az informci
lehet szveg, adat, kp vagy akr hang is. llomnyban trolja a rendszer a fut-
tathat programokat is. A UNIX opercis rendszerben az llomnyok maximlis
mrett ltalban a rendszergazda korltozza. A zikai eszkzk trolkapacitsa
szintn hatrt szab az llomnyokban trolhat informciknak.
A UNIX opercis rendszer az llomnyokra a nevkkel hivatkozik. Az l-
lomnyok nevt bizonyos minimlis megktsekkel s fenntartott nevek kivtel-
vel szabadon vlaszthatjuk meg. A pont (.) kezdet u leneveket a burok (shell)
ill. az egyik leggyakrabban hasznlt parancs, az ls klnlegesen kezeli. Ezek
ltalban n. inicializl llomnyok, s hacsak kln nem krjk nem lt-
szdnak listzskor.
Minden llomny valamelyik felhasznlhoz tartozik, aki ltalban az, aki
ltrehozta a llomnyt. Az llomnyok tipikusan a merevlemezen helyezkednek
el, de hajlkony mgneslemezen, optikai lemezen, vagy mgnesszalagon is lehet-
nek. A UNIX opercis rendszer feljegyzi minden le utols mdostsnak s
utols hasznlatnak idejt.
A UNIX rendszerekben az llomnytrlssel felszabadtott helyet a rendszer
akr azonnal is lefoglalhatja, gy itt nincsen undelete tpus parancs a trlt l-
lomny visszalltsra. A trls a UNIX-ban VGLEGES!
23
24 FEJEZET 3. LLOMNYOK HASZNLATA
3.1.1. Az llomnyok tpusai
Hromfajta llomny ltezik a UNIX opercis rendszerben:
a kznsges llomnyok tartalmazhatnak szvegeket, adatokat, adat-
bzisokat, de akr futathat programokat is. ltalban ezeket az llom-
nyokat hasznljuk.
az n. specilis llomnyok az opercis rendszer szmra tartalmaznak
informcit. Ezek ltalban egy rendszer adott hardware eszkzeinl hasz-
nlatosak. Az tlagos felhasznl csak ritkn hasznlja ezeket.
a knyvtrllomnyok segtik az llomnyok rendszerezst (a UNIXknyv-
trrendszerr ol a 37. oldalon tallhat rszletes lers).
A rendszer knyvtrai a / (gykr) knyvtrbl indulnak ki, s fa-struktrt
alkotnak. A felhasznl sajt maga alakthatja ki sajt knyvtrllomnyait
(ltalban csak a bejelentkezsi knyvtra alatt, de bizonyos estekben (pl.
scratch disk
1
) mshol is hozhatunk ltre knyvtrat).
3.1.2. llomnyok ltrehozsa
A legegyszer ubb mdon a (a ks obbiekben trgyaland) cat parancsot hasznl-
hatjuk llomnyok ltrehozshoz. Aks obbi pldkhoz hozzuk ltre a gyakorlas
llomnyt a kvetkez o parancssorozattal (csak a vastagbet us rszt kell begpel-
nnk, a szkzkkel egytt):
$ cat > gyakorlas <<ALLJ Enter
> Ez egy proba sor ami csak betuket tartalmaz Enter
> Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42 Enter
> Ebben a sorban nehany furcsa karakter van % @ ! Enter
> Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 ! Enter
> A sorban a UNIX metakarakterei is itt szerepelnek $> es a * Enter
> Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42 Enter
> ALLJ Enter
Ellen orzskppen rassuk ki az llomnyt:
$ cat gyakorlas Enter
Ez egy proba sor ami csak betuket tartalmaz
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
1
A scratch disken az llomnyok ltalban csak nhny napig (esetleg htig) maradnak meg,
utna a rendszer trli oket.
3.2. LLOMNYOK KILISTZSA 25
Ebben a sorban nehany furcsa karakter van % @ !
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
Ugyangy hozzuk ltre a rovidfile llomnyt is
$ cat > rovidle "ALLJ" Enter
> Ez egy egyszeru szovegle, ami semmire sem jo, Enter
> csak hogy tanuljuk vele a UNIX operacios rendszer Enter
> hasznalatat. Enter
> ALLJ Enter
3.2. llomnyok kilistzsa
Az llomnyok kilistzsra az ls parancs szolgl. A lista formtumt sokfle
kapcsolval mdosthatjuk.
Pldk:
Hat le van az adott knyvtrban: choice, cm, kocsi, log, test s a Mail:
$ ls Enter
choice cm kocsi log test Mail
Leellen orizzk, hogy az adott choice le megtallhat-e az adott knyvtr-
ban:
$ ls choice Enter
choice
Ha az adott le nincs benne az adott knyvtrban, akkor hibazenetet kapunk:
$ ls rossz-szoveg Enter
rossz-szoveg: No such file or directory
A parancs a -s kapcsol hatsra kirja a llomnyok nevt, s diszkblokkok-
ban
2
mrt mrett:
$ ls -s Enter
2
Ez a helyi rendszert ol fgg, lehet 512 byte, de lehet 1, 2 s ot 4 kbyte is.
26 FEJEZET 3. LLOMNYOK HASZNLATA
total 1475
1 cm 1 log 1 Mail
4 choice 1 cm 1 test
A parancs a -l kapcsol hatsra kirja az llomnyok, ill. knyvtrak (knyv-
tr esetn az els o bet u d, mg kznsges llomnynl -) hozzfrsi jogait (lsd
ks obb), a rjuk vonatkoz kapcsolatok szmt, a tulajdonosuk nevt s felhaszn-
li csoportjt
3
, a hosszt byte-okban, az utols mdostsuk idejt, vgl a nevt:
$ ls -l Enter
total 5
-rw-w--w-- 1 galahad lovag 3910 Oct 26 1992 choice
-rw-w--w-- 1 galahad lovag 21 Oct 26 1992 cm
-rw-w--w-- 1 galahad lovag 198 Oct 26 1992 gral
-rw-w--w-- 1 galahad lovag 5 Dec 05 1992 log
-rwxr-xr-x 1 galahad lovag 31 Oct 26 1992 test
drwx--x--x 2 galahad lovag 512 Jul 06 1992 Mail
A Mail knyvtr, minden llomnynak galahad a tulajdonosa, valamint minden
llomny a lovag csoportba tartozik, a gral hossza 198 byte s 1992. oktber
26-n volt utoljra mdostva.
A parancs a -a kapcsol hatsra kirja az aktulis knyvtrban lev o sszes
le-t, belertve a bizonyos szempontbl rejtett, ponttal kezd od o llomnyokat is:
$ ls -a Enter
. .. .index choice Mail
cm gral log test
A -F kapcsol hasznos lehet akkor, ha meg szeretnnk llaptani az aktulis
knyvtrban lev o llomnyok tpust:
$ ls -F Enter
cm gral log choice Mail/ test*
A le neve utn ll / arra utal, hogy a bejegyzs knytr, a * pedig arra, hogy az
vgrehajthat program.
Hasznos az llomnyok elnevezsekor a kvetkez okre gyelni:
- llomnyok ltrehozsnl gyeljnk arra, hogy a lenv egyedi legyen egy
adott knyvtron bell, klnben fellrjuk az adott nv alatt mr ltez o
llomnyt. Klnbz o knyvtrakban termszetesen lehetnek azonos nev u
3
BSD alap rendszerekben ehhez esetleg a -g kapcsolt is hasznlni kell.
3.3. LLOMNYOK TARTALMNAK MEGJELENTSE 27
llomnyok. Pldul, ha ltrehoztuk a /usr/galahad/test s a /usr/galahad/Mail
knyvtrakat, akkor mind a kett oben tarthatunk egy-egy proba nev u l-
lomnyt, melyek tartalma klnbz o.
- Vlasszunk beszdes neveket, hogy a ks obbiekben is tudjuk, mit tartalmaz
az adott le.
- Hasznlhatunk kis- s nagybet uket, illetve ezek kombincijt is az llo-
mnynevek megadsakor. gyeljnk arra azonban, hogy a UNIX opercis
rendszer megklnbzteti a kis- s nagybet uket, gy az llomnynvre val
hivatkozskor ezeket helyesen kell begpelni.
- Az llomny nevben a bet ukn, szmokon kvl brmelyik ASCII karak-
ter hasznlhat, kivve az ASCII 0, s a / karaktereket. A specilis karak-
terek kzl leggyakrabban a pont (.), az alhzs (_), valamint a kt ojel (-)
hasznlatos.
FIGYELEM! Ne kezdjk az llomny nevt kt ojellel (-), mert ez zavar
lehet a burok (shell) szmra, s kapcsolknt rtelmezi az utna jv o karak-
tereket.
- Ne hasznljunk llomnynvben olyan specilis karaktereket, mint a vessz o
(,), az idz ojelek ( vagy "), mivel ezek klnleges jelentssel brnak a
shellekben.
- Az llomnynv minimum egy, maximum 256 karakter hossz lehet (a
maximumot bizonyos llomnyrendszerekben 14-16 karakterre korltoz-
zk).
- hasznos lehet a ugyanolyan vgz odsek hasznlata az llomnynevekben.
Pldul a levlllomnyoknak a .lev vgz odst adhatjuk, gy pl. a galahad
nev u felhasznltl kapott levelet a galahad.lev llomnyra keresztelhetjk
el.
- nhny program automatikusan generl vgz odseket. Pldul a C fordt-
program ltrehoz egy n. object llomnyt, amit a .o vgz odssel lt el.
A forrskd programokat a kialakult szoks szerint az adott programozsi
nyelvre utal vgz odssel ltjuk el. gy pldul a C nyelv u programok a .c,
a FORTRAN nyelv u programok a .f vgz odst kaphatjk.
3.3. llomnyok tartalmnak megjelentse
Sokszor szksgnk van az llomnyok tartalmnak megjelentsre a kperny on.
Erre a clra ugyan szvegszerkeszt oket is hasznlhatunk (pl. vi-t), de sokszor
28 FEJEZET 3. LLOMNYOK HASZNLATA
hatkonyabb a cat, a pg vagy a more parancsok hasznlata. A cat parancsot
clszer u rvidebb llomnyok esetn hasznlni, melyek tartalma elfr egy kp-
erny ooldalon, mg hosszabb llomnyok megjelentsre inkbb a pg s a more
parancs a clszer u.
A pg s a more parancsokat csak szvegllomnyokra adjuk ki. A nem szveg
tpus (binris vagy knyvtr tpus) llomnyokbl ilyen mdon nem nagyon
lehet informcit kiolvasni, s ot a binris llomnyokban tallhat specilis karak-
terek elllthatjk terminlunkat.
3.3.1. A cat parancs
Kisebb llomnyok megjelentsre a UNIX opercis rendszerben a cat paran-
csot hasznljuk az llomny(ok) nevvel, mint paramterrel. Egyszerre tbb llo-
mnynv is megadhat, ilyenkor a rendszer a megadott sorrendben jelenti meg az
llomnyok tartalmt. A paramterlistban hasznlhatjuk a burok (shell) helyet-
test o karaktereit, a csillagot (*), amely egy tetsz oleges stringet helyettest, vagy a
krd ojelet (?), amely egy tetsz oleges bet ut helyettest (ezekr ol a 3.7 fejezetben, a
34. oldalon. tallhat b ovebb magyarzat).
Pldk:
A 24. oldalon lthat mdon, a gyakorlas llomnyhoz hasonlan a rovidfile
llomny tartalmt gy rathatjuk ki :
$ cat rovidle Enter
Ez egy egyszeru szovegfile, ami semmire sem jo,
csak hogy tanuljuk vele a UNIX operacios rendszer
hasznalatat.
Kt (vagy tbb) llomnynvvel a megadott sorrendben, elvlaszts nlkl
rdnak ki az llomnyok:
$ cat gyakorlas rovidle Enter
Ez egy proba sor ami csak betuket tartalmaz
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Ebben a sorban nehany furcsa karakter van % @ !
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
Ez egy egyszeru szovegfile, ami semmire sem jo,
3.3. LLOMNYOK TARTALMNAK MEGJELENTSE 29
csak hogy tanuljuk vele a UNIX operacios rendszer
hasznalatat.
3.3.2. Nagyobb llomnyok megjelentse
Nagyobb llomnyok megjelentsekor hasznos a pg vagy a more parancs, mi-
vel ezek formzva jelentik meg az llomnyok tartalmt. Egyszerre csak egy
kperny ooldalnyi anyag jelenik meg az llomnybl, s utna a pg, ill. a more
parancs megkrdezi, hogy mit csinljon. Lehet tovbb olvasni az llomnyt, be-
fejezni az llomny olvasst, de akr visszafel is mozoghatunk az llomnyban.
A hossz llomnyok tartalmnak megjelentsre ltalban rendelkezsre ll
a less parancs is, amely a more program kib ovtett vltozatnak tekinthet o. Az
llomnyok elejnek megtekintssre a head parancsot, vgnek megtekintssre
a tail parancsot hasznlhatjuk, amelyek alaprtelmezsben 10 sorra vonatkoz-
nak.
A pg utasts
Az llomny megjelentsre a pg parancs paramtereknt a megjelentend o l-
lomny(ok) nevt kell megadni. Az els o kperny ooldal utn a kperny o aljn egy
kett ospont (:) prompt jelenik meg.
Pldul nzzk meg a gyarolas llomnyt:
$ pg gyakorlas Enter
Ez egy proba sor ami csak betuket tartalmaz
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Ebben a sorban nehany furcsa karakter van % @ !
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
:
Az esetleges kvetkez o lap megjelentshez nyomjuk le az Enter billenty ut.
tugorhatunk egyszerre tbb lapot is, ha a (:) promptnl a plusz (+) billenty ut
s egy szmot nyomuk le. A szm rtke mondja meg, hogy hny lapot haj-
tunk tugrani. Pldul hrom lap tugrshoz +3-at gpelnk be, majd letjk az
Enter -t.
30 FEJEZET 3. LLOMNYOK HASZNLATA
Visszalapozni az el oz ohz hasonlan a mnusz (-) utastssal tudunk. Pldul
kt oldalt a -2 Enter betsvel lapozunk vissza.
A megjelents befejezst a q Enter begpelsvel rjk el. Ezutn a shell
promptnak kell megjelennie. Ha az llomny vgre rnk, a pg parancs befejezi
a megjelentst, s visszatr a shellbe.
Apg parancs mg szmos, egyb lehet osget is knl, pldul keress a szveg-
ben, le m uveletek, parancsok vgrehajtsa a shellben, amelyeket a : promptnl
bert h Enter (help) informci lekrsvel nzhetnk meg.
A more utasts
A pg parancshoz hasonlan m ukdik a more parancs is:
$ more gyakorlas Enter
Ez egy proba sor ami csak betuket tartalmaz
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Ebben a sorban nehany furcsa karakter van % @ !
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
--More-(99%)
A parancs megjelenti a le tartalmt a kperny on, s a kperny o legals
sorban a kperny on mr ltott llomnyrsz hosszt jelzi szzalkban.
A Szkz billenty u letsvel laponknt, az Enter letsvel soronknt
tudunk haladni az llomnyban.
Az el ore lapozst az f , a visszafel lapozst pedig a b billenty u letsvel
is vgezhetjk. Itt is a q billenty u letsvel szakthatjuk meg a more futst.
A more, a pg parancshoz hasonlan szmos egyb funkcival is rendelke-
zik (keress, shell parancsok), amit a h (help) billenty u letsvel (help) kapott
tblzatban nzhetnk meg.
Egy rdekes s sokszor hasznos lehet osge a more parancsnak, hogy a v
billenty u letsvel a vi editort lehet meghvni. Ekkor a vi-t hasznlhatjuk a le
kezelsre, s akr t is szerkeszthetjk az llomnyt.
Itt hvjuk fel a gyelmet arra, hogy br ez rendszerr ol rendszerre eltr o
lehet a man parancs (manul) leggyakrabban szintn a more-t hasznlja a szveg
megjelentsre.
3.4. LLOMNYOK MSOLSA, TNEVEZSE S TRLSE 31
3.4. llomnyok msolsa, tnevezse s trlse
3.4.1. llomnyok msolsa
llomnyokrl msodpldny ksztssre a cp parancs szolgl. Pldul a
$ cp gyakorlas masolat Enter
a gyakorlas llomny tartalmt tmsolja a masolat nev u llomnyba.
Amennyiben ltezhet olyan nev u llomny, amelyikre r akarunk msolni,
hasznljuk a -i kapcsolt. Ez meger ostst kr minden olyan llomnynl, ame-
lyet fell kellene rni. Vigyzzunk a cp parancs haszlatakor, mivel a msols
sorn egy rgebbi llomnyra val msolssal knnyen megsemmisthetnk
adatokat ha nem hasznljuk ezt a kapcsolt!
Adjuk ki jra az el oz o plda parancst a -i kapcsolval
$ cp -i gyakorlas masolat Enter
overwrite masolat? y Enter
A rendszer ilyenkor megkrdezi, hogy fellrja-e a masolat llomnyt. Ameny-
nyiben erre y-nal (yes) vlaszolunk, akkor fellrja, egybknt a msols nem
trtnik meg.
A cp parancsnak egyszerre tbb llomnynevet is megadhatunk, s ot a shell
n. kifejt o mechanizmusa rvn helyettest o karaktereket is hasznlhatunk (l. 34.
oldal). A parancs gy hasznlhat pl. egy knyvtr tartalmnak tmsolsra egy
msik knyvtrba
4
(kivve a .-al kezd od o llomnyokat). Pldul a
$ cp * masik Enter
tmsolja az aktulis knyvtrban lev o sszes llomnyt a masik nev u alknyv-
trba. A parancs a knyvtrakat nem msolja.
Knyvtrakat a teljes alknyvtrrendszerkkel egytt a -r kapcsol
5
segt-
sgvel msolhatunk t. Pldul a
$ cp -r /usr/user /u/user/tmp Enter
tmsolja a /usr/user knyvtr sszes llomnyt s az abbl nyl sszes al-
knyvtrat a /u/user/tmp knyvtrba. Ezltal a teljes /usr/user knyvtrban
lv o llomnystruktra megjelenik a /u/user/tmp knyvtrban is.
A cp utasts ugyangy, mint a tbbi llomnykezel o parancs hibajelzssel
ll meg, ha nincs engedlynk arra, hogy az adott helyre rjunk (l. a 3.9 fejezetet,
a 42. oldalon).
4
A UNIX knyvtrrendszerr ol a 37. oldalon tallhat rszletes lers.
5
Bizonyos UNIX rendszereknl ez a kapcsol nem m ukdik.
32 FEJEZET 3. LLOMNYOK HASZNLATA
3.4.2. llomnyok tnevezse (mv)
llomnyok tnevezsre vagy tmozgatsra az mv parancs szolgl. A parancs
krdezs nlkl fellrja a mr ltez o llomnyokat, de ennek elkerlsre hasznl-
hatjuk a cp parancsnl mr emltett -i kapcsolt.
Ha meg szeretnnk tartani a le eredeti nevt ms knyvtrba val msolsnl,
akkor elegend o, ha az mv utasts cljaknt a knyvtrat adjuk meg. Pldul a
$ mv level /u/user/test Enter
tmozgatja a level llomnyt az aktulis knyvtrbl a /u/user/test knyv-
trba az eredeti level nven.
Az mv parancsnak a cp parancshoz hasonlan tbb llomnynevet is
megadhatunk, de ilyenkor a legutols argumentumnak (a clnak) knyvtrnak kell
lennie.
3.4.3. llomnyok trlse
llomnyokat az rm paranccsal trlhetnk. Egyszerre tbb llomnyt is megad-
hatunk, s ot a shell kifejt o mechanizmusa rvn helyettest o karaktereket is hasznl-
hatunk. Az rm parancs krdezs nlkl trl minden megadott llomnyt. A -i
kapcsolval a trls el ott a cp-hez hasonlan az rm rkrdez, s trlsi
meger ostst vr minden egyes llomnyra. Amennyiben biztostani szeretnnk
magunkat a vletlen trlsek ellen, akkor az
alias rm="rm -i"
parancssort kell a $HOME/.profile llomnyba berni. Ekkor a rm automatikusan
hasznlni fogja a -i kapcsolt.
Az rm parancsnak egyszerre tbb llomnynevet is megadhatunk, s ot a shell
n. kifejt o mechanizmusa rvn helyettest o karaktereket is hasznlhatunk.
A -r kapcsol rekurzv trlst eredmnyez, azaz a megadott knyvtrtl lefel
a teljes alknyvtr rendszerben sor kerl a trlsre, az utasts mg a knyvtrakat
is kitrli. A
$ rm -r * Enter
a UNIX egyik leghatsosabb parancsa, az adott knyvtrtl kezdve felszmolja
a teljes llomnystruktrt, s mg az alknyvtrakat is kitrli! Csak akkor adjuk
ki, ha valban trlni akarunk mindent! A UNIX rendszerekben az llomnytr-
lssel felszabadtott helyet a rendszer akr azonnal is lefoglalhatja, gy itt nincsen
undelete tpus parancs a trlt llomny visszalltsra!
3.5. SZVEG KERESSE: A GREP PARANCS 33
3.5. Szveg keresse: a grep parancs
A grep paranccsal gyorsan megkereshetnk egy adott szveget (karaktermintt) grep
rszletes
lersa a 107.
oldalon
az llomnyokban. A keresett minta lehet egy sz, vagy bet uk s szmok valami-
fle csoportja. Ha a grep parancs megtallja a mintt, akkor a mintt tartalmaz
sort kirja a kperny ore. A parancs hasznlathoz meg kell adni a keresett karak-
tersort s azt az llomnyt (vagy llomnyokat), amely(ek)ben keresni akarunk.
Ha a karaktersor tbb szbl ll, vagy szkz(ke)t tartalmaz, akkor aposztrfok
kz kell tenni (nem tvedhetnk, ha mindig aposztrfok kz tesszk a keresett
szt).
Pldk:
$ grep ebben gyakorlas Enter
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
A parancs kilistzza azt a sort a gyakorlas nev u le-bl, amelyben a ebben
sz szerepel. Termszetesen a grep parancs is megklnbzteti a keresett karak-
tersorban a kis s nagybet uket, ezt a klnbsgttelt azonban a -i kapcsolval
kikapcsolhatjuk:
$ grep -i ebben gyakorlas Enter
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Ebben a sorban nehany furcsa karakter van % @ !
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
A grep parancs alapesetben kirja a kperny ore az llomnyok azon sorait,
amelyekben a keresett karaktersorozatot megtallta. Amennyiben a -n kapcsolt
megadjuk, a sorok el ott azok sorszma is megjelenik.
Nha arra van szksg, hogy csak a llomnyok nevt kapjuk meg, amelyek-
ben ez a minta el ofordul. Ilyenkor a -l (list) kapcsolt hasznljuk:
$ grep -l egy * Enter
gyakorlas
rovidfile
3.6. llomnyok sorbarendezse a sort utasts
Nha szksgnk van arra, hogy egy llomny tartalmt valamilyen mdon sorba sort
rszletes
lersa a 127.
oldalon
rendezzk: erre a sort parancs szolgl.
34 FEJEZET 3. LLOMNYOK HASZNLATA
A sort utasts minden sor legels o karaktere szerint m ukdik. Ha az els o
karakterek megegyeznek, akkor a msodik, harmadik, stb. karaktereket hasonltja
ssze. A sorbaraks a szoksos ASCII kdok esetn az rsjelek szmok nagy-
bet uk kisbet uk sorrend szerint trtnik. A -r kapcsolval a rendezsi sorrendet
teljesen megfordthatjuk.
Az llomny sorai nha oszlopokba rendezett adatok mez oit tartalmazzk. A
mez ok kztt valamilyen hatrol vagy elvlaszt jelnek kell llnia, ez alapeset-
ben a szkz vagy a tabultor. Ha sort parancsot a +Szm kapcsolval hasznljuk,
a Szm ltal meghatrozott mez ot kihagyva vgzi a sorbarendezst. A -Szm ha-
tsra a rendezs a Szmnl megadott mez onl r vget.
Pldul rendezzk sorba a korbban ltrehozott gyakorlas (l. 24. oldalon)
llomnyt :
$ sort gyakorlas Enter
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Ebben a sorban nehany furcsa karakter van % @ !
Ez egy proba sor ami csak betuket tartalmaz
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
A kvetkez o parancs a sorbarendezst az tdik mez on (az tdik sznl)
kezdi el, s a hetedik mez onl fejezi be:
$ sort +4 -7 gyakorlas Enter
Ez egy proba sor ami csak betuket tartalmaz
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
Ebben a sorban nehany furcsa karakter van % @ !
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
3.7. A UNIX helyettest o karakterei
A UNIX opercis rendszerben lehet osg van arra, hogy a parancsokban szerepl o
egyes konkrt kifejezseket (pl. llomnyneveket), illetve bizonyos stringeket fel-
sorols helyett egy mintval val azonossg alapjn adjuk meg.
llomnyokra val hivatkozskor a krd ojel (?) az llomny nevben egy
3.7. A UNIX HELYETTEST

O KARAKTEREI 35
karaktert helyettesthet, ennek helyn a nvben brmilyen karakter (de csak egy)
llhat, kivve a nvkezd o .-ot. A csillag (*) karakter az llomny nevben min-
den bet usorozattal (nem csak egy karakterrel) helyettesthet o. Egy adott karak-
terhalmazt a [] jelek kztt felsorolva a kifejezs a halmaz brmelyik tagjval
megegyezik. Egy tartomnyt kijellhetnk a kt vgkarakter kz tett mnusz -
jellel.
Szvegben a pont (.) egyezik meg egy brmilyen karakterrel, mg a csillag (*)
az ot megel oz o karakter tetsz oleges szm (akr nulla) ismtl odsvel egyezik
meg. A ^ a sor elejvel, a $ a sor vgvel egyezik meg. Szvegekben a egy
adott karakterhalmazt az llomnyneveknl emltett mdon, a [] jelekkel tudunk
kijellni.
A helyettest o karakterek hasznlatakor a shell el oszr kifejti a karaktereket
s a kapott le listt adja tovbb a parancsnak. Ha a helyettest o karaktereket
tovbb akarjuk adni paramterknt egy parancsnak, akkor azokat macskakrm
(") vagy aposztrf () jelek kz kell zrni. Az aposztrf minden specilis karak-
tert megvd, mg a macskakrm nem vdi a $, \ s a
\
(visszafel aposztrf)
karaktereket
6
. Specilisan az n. backslash (\) megvdi a kifejtst ol a kzvetlenl
utna jv o karaktert.
Az elmondottakat a kvetkez o pldkon rthetjk meg:
A kvetkez o parancs kilistzza az sszes a-val kezd od o kt bet us llomnyt a
/bin knyvtrban
$ ls /bin/a? Enter
/bin/ar /bin/as
A kvetkez o utasts kilistzza az sszes a-val kezd od o le nevet:
$ ls /bin/a* Enter
/bin/acledit /bin/aclput /bin/adfutil /bin/as
/bin/aclget /bin/adb /bin/ar /bin/awk
A kvekez o parancs kilistzza az sszes le-t, aminek nevben az ar karak-
terek el ofordulnak:
$ ls /bin/*ar* Enter
/bin/ar /bin/sysdumpstart /bin/xargs
/bin/startsrc /bin/tar
6
Ezek rszletes magyarzatt a 83. oldalon, a Korn shell lersban tallhatjuk meg.
36 FEJEZET 3. LLOMNYOK HASZNLATA
A grep parancsnl is hasznlhatjuk a helyettest o karaktereket. Az el oz o grep
pldkat folytatva a kvetkez o parancs kirja a ma + egy karakter kifejezst tartal-
maz sorokat:
$ grep ma. gyakorlas Enter
Ez egy proba sor ami csak betuket tartalmaz
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
Ha az sszes, szmot tartalmaz sorra kvncsiak vagyunk, akkor a kvetkez o
kifejezs a clszer u:
$ grep [0123456789] gyakorlas Enter
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
Az el oz o utasts helyett hasznlhatjuk a kvetkez o tmrebb kifejezst is:
$ grep [0-9] gyakorlas Enter
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
Az sszes soreleji Ebb kifejezst a kvetkez o utasts keresi meg:
$ grep ^Ebb gyakorlas Enter
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Ebben a sorban nehany furcsa karakter van % @ !
A kvetkez okben specilis karaktert keresnk:
$ grep * gyakorlas Enter
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
Hasznlhatjuk a \-t is:
$ grep \* gyakorlas Enter
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
Ha a
$ grep $ gyakorlas Enter
3.8. KNYVTRAK HASZNLATA 37
parancsot adjuk ki, ez minden sort kir (minden sornak van vge!):
Ez egy proba sor ami csak betuket tartalmaz
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Ebben a sorban nehany furcsa karakter van % @ !
Itt mar szamok is vannak a furcsa karakterekkel egyutt 1 % @ 42 !
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
ezrt $ karaktert csak levdve kereshetnk:
$ grep \$ gyakorlas Enter
A sorban a UNIX metakarakterei is itt szerepelnek $ > es a *
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
3.8. Knyvtrak hasznlata
A knyvtrak olyan specilis llomnyok, amelyek ms llomnyok szervezsre
s csoportostsra hasznlatosak. A UNIX opercis rendszer knyvtrai egy
hierarchikus fastruktrt alkotnak. Pldul egy elkpzelt rendszerben a kvetkez o
oldalon lthat struktra alakulhat ki.
A UNIX knyvtr-rendszernek tetejn helyezkedik el a gykr knyvtr,
amit a / jel jell. Innen kiindulva minden le elrhet o a rendszerben. Az elrsi
utat path-nak (svny, tvonal) hvjuk. A knyvtrak ms knyvtrakat vagy llo-
mnyokat tartalmazhatnak. Minden knyvtrnak van parent ("szl o") knyvtra,
amelyik a struktrban felette ll knyvtr. Az egyedli kivtel a gykr (/)
knyvtr.
A felhasznl HOME knyvtra s a hozz tartoz le-ok s az alknyvtr-
rendszer csak egy kis rszt alkotja a UNIX teljes knyvtrrendszernek. A HOME
knyvtr az a knyvtr, amibe a felhasznl bejelentkezs utn automatikusan
bekerl. Az el oz o pldban pl. galahad HOME knyvtra a /u/lovag/galahad,
mg a sirrobin a /u/lovag/sirrobin. A HOME knyvtr alatt a felhasznl
ltrehozhatja sajt knyvtrrendszert.
Az ppen hasznlt knytrat aktulis munkaknyvtrnak nevezzk (CWD, cur-
rent working directory). Ezt kirathatjuk, ill. a gykr knyvtrhoz viszonytott
tvonalat lekrdezhetjk a
$ pwd Enter
/u/lovag/galahad
38 FEJEZET 3. LLOMNYOK HASZNLATA

tty0 rst1

elevel test gral proba artur


Mail
dev bin u
/
lovag local
galahad sirrobin bin
incoming

Knyvtr
Specilis (hardver) le
Kznsges le

`
`
`
`
`
`
`
`
`

`
`
`
`
`
`
`
`
'
'
'
'

>
>
>
>
>
>
>
>
`
`
`
`

\
\
\
\
/
/
/
/
/ ` `
`
`
`
`


Egy elkpzelt UNIX llomnyrendszer struktrja.
3.8. KNYVTRAK HASZNLATA 39
paranccsal. A parancs informcija szerint pl. most a galahad felhasznl HOME
knyvtrban vagyunk
7
(az egyms alatti alknyvtrakat a / jel vlasztja el egy-
mstl).
AUNIXrendszerben brhol, ahol llomnynevet adhatunk meg, hasznlhatjuk
az llomnyt az elrsi tvonallal egytt. Azaz ha az el oz o pldban megadott
knyvtrban vagyunk a test llomnyt a
/u/lovag/galahad/test nven is megadhatjuk. A /u/lovag/galahad/test
nevet brmelyik knyvtrbl hasznlhatjuk, ez mindig erre az llomnyra hi-
vatkozik.
3.8.1. Abszolt s relatv tvonal
Az tvonal megadsnl ktfle lerst hasznlhatunk. Az abszolt tvonal-nv
megadsakor a gykr (/) knyvtrbl indulunk s lerjuk a teljes tvonalat. Ilyen
tvonal lehet pl. a /u/local/bin.
A relatv tvonal-nv az ppen aktulis knyvtrbl adja meg az elrsi tvo-
nalat. Pldul ha a galahad felhasznl a HOME knyvtrban van benn, akkor a
Mail/incoming adja meg a Mail alknyvtrbeli incoming llomny elrst.
Minden knyvtrban hasznlhatjuk a .. jellst, ami egy olyan specilis l-
lomny, ami az egy szinttel feljebb lev o knyvtrra mutat. Amennyiben a felet-
tnk lev o knyvtrbl nyl alknyvtrra akarunk hivatkozni, akkor a ../ utn
rjuk be az alknyvtr nevt. Pldul, ha a /u/lovag/galahad/Mail knyvtrban
vagyunk benn, akkor a ../../../sirrobin/artur adja meg a /u/lovag/sirrobin
knyvtrbeli artur llomny elrst.
A .. jelhez hasonlan lehet hasznlni a . jellst, ami az ppen aktulis
munkaknytrra hivatkozik.
3.8.2. A knyvtrrendszer hasznlata
A knyvtrak kztt a cd paranccsal lehet mozogni. Ha egy knyvtrbl annak
egy Alknyvtrba mozgunk akkor elg a
cd Alknyvtr
parancsot kiadni. Ha ms knyvtrba mozgunk, ki kell rni a teljes elrsi tvona-
lat. Kt szinttel feljebb pl. a
$ cd ../.. Enter
paranccsal juthatunk.
7
Termszetesen sajt gpnkn valamilyen ms eredmnyt kapunk.
40 FEJEZET 3. LLOMNYOK HASZNLATA
3.8.3. llomnyok msolsa, mozgatsa s linkelse
Msolni s mozgatni llomnyokat a mr emltett cp ill. mv paranccsal tudunk.
Az el oz o pldknl maradva a
$ cp /u/lovag/sirrobin/artur .
parancs az aktulis knyvtrba msolja az artur llomnyt. A
$ mv /u/lovag/sirrobin/* .
parancs az sszes, a /u/lovag/sirrobin knyvtrban lv o llomnyt tmoz-
gatja az aktulis knyvtrba
8
. Ekkor mivel az eredeti helyr ol az llomnyok
kitrl odnek termszetesen trlsi jogunknak kell lennie a /u/lovag/sirrobin
knyvtrban (l. a chmod parancsot a 42. oldalon).
A UNIX egyik rdekes lehet osge az n. linkek ltrehozsa: ekkor egy l-
lomnynak (ami akr knyvtr is lehet) tbb neve is lehet. A legegyszer ubb ilyen
link, az n. szimbolikus link egy mutatt jelent csak, amin keresztl ms nv alatt
is elrhetjk a megadottllomnyt
9
. Pldnknl maradva a
$ ln -s /u/lovag/sirrobin/artur elevel
parancs a /u/lovag/sirrobin/artur llomnyt elevel nven is elrhet ov teszi:
$ ls -ltr elevel
lrwxrwxrwx 1 galahad lovag 13 May 1992 elevel -> /u/lovag/sirrobin/artur
A szimbolikus kapcsolat csak egy mutatt jelent, gy az llomny mindkt
nven rhat, olvashat (s esetleg futtathat). Azonban ha az elevel llomnyt
kitrljk, akkor az maga az /u/lovag/sirrobin/artur llomny nem tr-
l odik, de az adatokat mr nemtudjuk elrni elevel nven. Az /u/lovag/sirrobin/artur
llomny trlsekor viszont a csak a link marad meg, az adatok az /u/lovag/sirrobin/artur
llomnnyal egytt elvesznek.
Szimbolikus linket knyvtrak kztt is ltrehozhatunk:
$ ln -s /u/local/bin bin
Aparancs eredmnyeknt pl. a /u/local/bin/gnuplot llomnyt a bin/gnuplot
nv alatt is elrhetjk.
10
8
Kivve a .-tal kezd od o llomnyokat.
9
Lehet osg van n. hard link ltrehozsra is, de ez nha knyelmetlen.
10
Vigyzzunk a knyvtrak szimbolikus linkjeivel a csh tpus shellek esetn, mivel ezek kife-
jtik a linkek rtkt, s az eredmnyt lltjk be az aktulis munkaknyvtrnak. Ez az jelenti, hogy
ha egy alknyvtrba belpnk, majd onnan a cd .. paranccsal visszalpnk, egszen mshol
talljuk magunkat. (Ez egy ritkn vrt feature ...)!
3.8. KNYVTRAK HASZNLATA 41
3.8.4. Knyvtrak ltrehozsa s trlse
Knyvtrakat a mkdir paranccsal hozhatunkltre. Argumentumknt akr tbb
knyvtrnevet is megadhatunk. Pldul a:
$ mkdir test test/artur /u/lovag/galahad/tmp Enter
ltrehozza az aktulis knyvtrbl nyl test, az abbl nyl artur, valamint a
bejelentkezsi knyvtr (itt a /u/lovag/galahad) alatti tmp knyvtrakat.
Termszetesen nemhozhatunk ltre knyvtrat egy "normlis" le alatt. Ugyan-
gy sikertelen a parancs, ha nincs engedlynk alknyvtr ltrehozsra (beler-
sra) az adott knyvtrban.
Ha egy id o utn nem lesz tbb szksg egy Knyvtrra, s clszer u azt
kitrlni, akkor erre a UNIX opercis rendszerben az
rmdir Knyvtr
parancsot hasznlhatjuk. Az rmdir parancs a mkdir parancshoz hasonlan tbb
argumentumot is elfogad.
Amennyiben olyan knyvtrat akarunk kitrlni, amelyik nem res, a UNIX
opercis rendszer hibajelzst ad. Ilyenkor kell o vatossggal hasznl-
hatjuk a 32. oldalon emltett rm -r parancsot.
Nha a kitrlend o knyvtrban n. rejtett llomnyok helyezkedhetnek el,
amelyeket a szoksos ls parancs nem listz ki, csak a -a kapcsol hasznlat-
val. A rejtett llomnyok ponttal kezd odnek, s ltalban bizonyos programok
(elm, vi, tin, xv ...) hasznljk oket. Ha a knyvtrban amelyet ki akarunk
trlni rejtett llomnyok vannak, s egszen biztosak vagyunk benne, hogy
nem kellenek, egyenknt kitrlhetjk oket. VIGYZAT!! SOHA ne adjunk
ki trlsi parancsot a .* llomnyokra vonatkozlag, mivel egy ilyen trls au-
tomatikusan elindul a .. klnleges jelentse miatt felfel is a knyvtrstruk-
trban! Megolds lehet ilyenkor pl. legalbb 3 karakter megadsa a trlsnl
(.??* alakot), esetleg karaktertartomny kijellse.
3.8.5. llomny megkeresse a knyvtrstruktrban
llomnyokat a find parancs segtsgvel kereshetnk meg a knyvtrrendszer-
ben. Pldul a
$ nd . -name test.c -print
parancs az aktulis knyvtrtl lefel megkeresi az sszes test.c llomnyt, s
a nevket kirja a kperny ore. Ha nem tudjuk a teljes nevet, csak azt hogy c-re
vgz odik, akkor a
$ nd . -name *c -print
42 FEJEZET 3. LLOMNYOK HASZNLATA
parancsot hasznlva a find az aktulis knyvtrtl lefel megkeresi az sszes c
vgz ods u llomnyt, s a nevket kirja a kperny ore.
A parancs ltalnosabb alakja:
find KiindulsiKnyvtrak -name llomny -Parancs
a KiindulsiKnyvtrakbl elindulva a knyvtrstruktrban lefel keresi a meg-
adott nev u llomnyt s vgrehajtja r a megadott Parancsot. A find sokoldal
parancs, rszletes lerst pl. a man find utastssal krhetjk el o.
3.9. llomnyok vdelmnek belltsa
Az llomnyok vdelmi kdjt a chmod paranccsal llthatjuk. A vdelmi kd 3
darab oktlis (8-as szmrendszerbeli) szm, melyek szimbolikusan is jellhetnk.
Az ls -l llomny parancs az els o oszlop a 2-10. karakterpozcijban kijelzi a
vdelmi kdokat: a kdot kln lltjuk az llomny tulajdonosra (u user, 2-5
pozci), a felhasznl csoportjra (g group, 6-8 pozci) s mindenki msra (o
others, 8-10. pozci).
Avdelmi kdok szablyozzk az llomny futtatst (x eXecute = 1), rst
(w write = 2), s olvasst (r read = 4). Akinek rsi joga van, az trlheti
is az adott llomny tartalmt (de magt az llomnyt nem). A knyvtrra kiadott
futtatsi jog engedlyezi az adott knyvtrba val belpst.
Pldul a korbban ltrehozott gyakorlas llomny vdelme ltalban 644-
es:
$ ls -l gyakorlas Enter
total 20
-rw-w--w-- 1 galahad lovag 3910 Oct 26 1992 gyakorlas
Az adott bet u jelenlte a megadott hozzfrst engedlyezi, a - jel pedig a tiltst
jelenti.
A
$ chmod 755 gyakorlas Enter
parancs megvltoztatja a gyakorlas llomny vdelmi kdjt a kvetkez o m-
don: az els o szm a tulajdonosra (galahad) vonatkozik, a kvetkez o a csoportra
(lovag), s az utols a tbbiekre. A 7=4+2+1 alapjn a tulajdonosnak megvan a
futtatsi (1), az rsi (2) s az olvassi (4) joga is, msoknak csak a futtatsi s az
olvassi joga. Ha a parancsot a
$ chmod 55 gyakorlas Enter
alakban adjuk ki, akkor csak a csoport s a tbbiekre vonatkoz bellts vltozik,
a tulajdonosra vonatkoz vdelmi kd nem vltozik.
3.9. LLOMNYOK VDELMNEK BELLTSA 43
Az el oz o parancs kiadhat szimbolikusan is:
$ chmod u+rwx * Enter
$ chmod go+rx-w * Enter
Ekkor a tulajdonosnak megadtuk az sszes jogot, a tbbiekt ol pedig elvettk az
rsi jogot. A msodik parancs helyett a
$ chmod go=rx * Enter
is hasznlhatjuk.
44 FEJEZET 3. LLOMNYOK HASZNLATA
4. fejezet
llomnyok szerkesztse
4.1. A vi editor hasznlata
A klnbz o szerkeszt oket (editorokat) llomnyok ltrehozsra s mdostsra
hasznljuk. A UNIX opercis rendszerekben a vi editor az ltalnosan elterjedt,
egsz kperny os szerkeszt o program, mely rsze az opercis rendszernek.
Egy le szerkesztshez egyszer uen adjunk meg a vi parancsnak az llomny
nevt:
$ vi llomny Enter
Ha az adott llomny nem ltezik, akkor a vi ltrehozza azt
1
.
A szerkeszt obe n. parancs zemmdban lpnk be, de brmikor mskor is
ide kerlnk vissza az Esc (vagy Escape ) gomb esetleg a Ctrl - [ kombin-
ci megnyomsval. Ha a gomb megnyomsakor esetleg egy spolst hallunk,
akkor mr eleve parancs zemmdban voltunk (ez nem hiba!).
A parancs zemmdban klnbz o utastsokat adhatunk ki az egyes gombok
lenyomsval. A : parancs utn tovbbi parancsokat adhatunk ki. Pl. a vi-bl
kilpni a parancs zemmdbl a :x paranccsal tudunk, a vltoztatsok elmen-
tsvel. Ha mgsem akarjuk elmenteni a vltoztatsokat, akkor a :q! parancsot
hasznljuk a kilpshez!
A parancs zemmdbl az a s az i paranccsal lphetnk t a szvegrs
zemmdba: az a az aktulis karakter utn, az i pedig az el kezdi beilleszteni a
szveget. Az o (kis o bet u) parancs az aktulis sor utn, az O (nagy O bet u) pedig
az el oz o sorba kezdi szveget beilleszteni. A parancs zemmdba az Esc gomb
megnyomsval kerlhetnk vissza.
1
Termszetesen csak ha van jogunk a megadott helyre rni.
45
46 FEJEZET 4. LLOMNYOK SZERKESZTSE
A parancs zemmdban az x gombbal trlhetjk ki a kurzor helyn lv o
bet ut. Szavak s sorok trlshez a d parancsot kell hasznlnunk: egy sz kitr-
lst a dw paranccsal vgezhetjk el, mg az aktulis sort a dd parancs trli ki.
A kurzort a parancs zemmdban a h-j-k-l gombokkal mozgathatjuk balra-
le-fel-jobbra, de ltalban a billenty uzeten tallhat nyilakat is hasznlhatjuk eh-
hez. Ha gyorsabban akarunk mozogni az llomnyban, akkor hasznlhatjuk a
kperny ooldalnyival mozgat parancsokat is: a Ctrl - F egy teljes kperny ovel
el ore visz, a Ctrl - B pedig egy kperny ovel visszafel lapoz.
A vi nagyon sok utastssal rendelkezik, az ez irnt rdekl od oknek ajnljuk vi
rszletes
lersa a 173.
oldalon
a 173. oldalon tallhat rszletes lerst.
4.2. A MicroEMACS szerkeszt o
A MicroEMACS szvegszerkeszt o ugyan nem rsze az eredeti UNIX opercis
rendszereknek, de a UNIX vilg egy szles krben
2
elterjedt tbbablakos editora.
A szvegszerkeszt o el onye, hogy a UNIX mellett VAX/VMS s IBM PC (DOS)
rendszereken is futtathat. Mivel mindegyik opercis rendszerben ugyanazokat
az utastsokat hasznlhatjuk, ezrt egy kezd o szmra hasznos lehet ezt a szer-
keszt ot el oszr megtanulni. A programnak ltezik egy sokkal nagyobb, tbb
mindenre kpes vltozata, az n. GNU emacs szvegszerkeszt o, ami szintn
hasznlatos UNIX rendszereken. Ugyan a kt program sok parancsa megegyezik,
mgis clszer u sztvlasztani a kett ot.
3
A tovbbiakban csak a MicroEMACS
programmal foglalkozunk.
A MicroEMACS szerkeszt o a
$ uemacs llomnynv Enter
parancs kiadsval hvjuk meg. Nhny gpen a uemacs parancs helyett az emacs
parancsot kell hasznlnunk.
A szerkeszt obe val belps utn berhatjuk a kvnt szveget, trlni a szok-
sos mdon lehet a Backspace gombbal (ezt nha Delete vagy felirat jelzi).
A szerkeszts vgn az Esc-Z (lenyomjuk az Esc gombot, elengedjk, majd
lenyomjuk a Z gombot) utasts elmenti a vltoztatsokat s kilp a szerkesz-
t ob ol. Ha nem akarjuk a vltoztatsokat meg orizni (pl. ha rossz le-t nyitottunk
meg), akkor a Ctrl-X Ctrl-C utastst hasznljuk (folyamatosan lenyomva tartva
2
A program forrskdja C nyelven szabad programknt (n. public domain) mindenki ren-
delkezsre ll ingyen.
3
A GNU emacs inkbb egy programozsi stlust kpvisel, mint egy szvegszerkeszt ot...
4.2. A MICROEMACS SZERKESZT

O 47
a Ctrl gombot el oszr lenyomjuk az X gombot, elengedjk, majd lenyomjuk a
C gombot).
A szvegben val mozgsra a billenty uzeten tallhat nyilakat hasznlhatjuk
4
.
Amennyiben a nyilak nem m ukdnek, hasznlhatjuk a Ctrl-Bet u kombincikat
(lenyomva tartve a Ctrl gombot lenyomjuk a Bet u gombot): a Ctrl-F el ore
ugrik egy bet uvel, a Ctrl-B visszalp egy bet unyit, mg a Ctrl-N a kvetkez o
sorra ugrik, a Ctrl-P pedig az el oz o sorra lp. Ha gyorsabban akarunk mozogni,
akkor hasznlhatjuk a kperny ooldalnyival mozgat parancsokat is: a Ctrl-Z egy
teljes kperny ovel el ore visz, a Ctrl-V pedig egy kperny ovel visszafel lapoz.
A uemacs sok ms utastssal s lehet osggel rendelkezik (pl. tbb le egy-
emacs
rszletes
lersa a 185.
oldalon
idej u szerkesztse, ablakok, makrk, stb.), az ez irnt rdekl od oknek ajnljuk a
185. oldalon tallhat rszletes lerst.
4
Lehet, hogy a billenty uzet nyilai nem m ukdnek rendesen (ez ltalban a 84 gombos IBM
PC billenty uzetnl fordulhat el o): ekkor a szmbillenty uzet (numeric keypad) 2-4-6-8 gombjaival
prblhatjuk mozgatni a kurzort.
48 FEJEZET 4. LLOMNYOK SZERKESZTSE
5. fejezet
llomnyok nyomtatsa
El obb-utbb ki szeretnnk nyomtatni llomnyainkat. Amultitasking rendszerben
a UNIX tbb klnbz o helyi, ill. tvoli gphez kttt nyomtatt is tud egyszerre
kezelni. A felhasznl gy maga dntheti el, melyik nyomtatt hajtja hasznlni.
Az azonos nyomtatk kzl belltstl fgg oen a rendszer automatiku-
san is kivlaszthatja az ppen szabad printert. Amennyiben az sszes elrhet o
nyomtat foglalt, a UNIX opercis rendszer vrakoz listba (n. queue) ren-
dezi a nyomtatsi krst, s mihelyt egy nyomtat felszabadul, a berkezsi sor-
rendben, vagy mret szerinti kiosztsban elkezdi a kvetkez o vrakoz llomny
nyomtatst. Egyszerre tbb pldnyban is kinyomtathatunk egy llomnyt, va-
lamint lehet osg van a mr elkldtt nyomtatsi krsek trlsre, illetve azok
llapotnak lekrdezsre.
A nyomtatkra egyszer uen a vrakoz lista (queue) megadsval hivatkozunk.
Ha a rendszerre egyszerre tbb printer is r van csatlakoztatva, ezek kzl az egyik
az n. rendszernyomtat. Ez azt jelenti, hogy ha msknt nem rendelkeznk,
akkor a nyomtats erre a printerre megy.
Egy adott rendszerb ol elrhet o helyi s tvoli nyomtatk hasznlatrl (pl.
a queue neve, a nyomtat tpusa s helye, stb.) a rendszergazda adhat pontos
informcit.
Nyomtatni ltalban
1
az lpr paranccsal tudunk: a
$ lpr gyakorlas Enter
parancs a rendszernyomtatn nyomtatja ki a gyakorlas llomnyt
2
.
1
Nha a nyomtat queue nem konvertl automatikusan, ilyenkor pl. PostScript printer esetn
az ASCII szvegnket lehet, hogy t kell alaktani.
2
Ha nincs ilyen parancs (pl. bizonyos System V rendszerekben), akkor az lp parancsot
hasznlhatjuk az lpr helyett.
49
50 FEJEZET 5. LLOMNYOK NYOMTATSA
A kvetkez o utasts a gyakorlas llomnyt a hpc214 nev u
3
printeren nyom-
tatja ki (a -P kapcsol utn szkz kihagysa nlkl kell berni a printer nevt)
4
:
$ lpr -Phpc214 gyakorlas Enter
A -# kapcsol utn megadhatjuk a kvnt pdnyszmot. Pldul ha 2-2
pldnyt szeretnnk gyakorlas s a masolat llomnyokbl, akkor az el oz o
utastshoz hasonlan:
$ lpr -#2 -Phpc214 gyakorlas masolat Enter
5.1. A printer llapotnak lekrdezse
A nyomtatsi vrakoz-lista(printer queue) llapott az lpq utasts listzza ki.
Ugyanez a parancs mutatja meg, hogy a nyomtat milyen llapotban van (pldul
kikapcsoltk, vagy kifogyott a papr, stb.). Pldul a hpc214 nyomtatt llapott
a
$ lpq -Phpc214 Enter
parancs
5
krdezi le. A vlasz pldul a kvetkez o lehet:
Queue Dev Status Job Files User PP % Blks CP Rnk
hpc214 lp0 running 42 gyakorlas galahad 10 83 12 1 1
A parancs kilistzza a nyomtat queue nevt, a hozz tartoz eszkzt (Dev), a
queue llapott
6
(Status), valamint az ppen a queue-ban lv o nyomtatsi krs(ek)
sorszmt (Job), a hozz tartoz llomny(oka)t s felhasznl(ka)t. Az ppen
nyomtats alatt ll le esetben a rkvetkez o oszlopok a mr kinyomtatott rszt
szzalkban adjk meg. A vlaszbl leolvashat mg a le hossza s a krt
pldnyok szma is.
Apldban a galahad felhasznl gyakorlas 12 blokkhosszsg llomny-
nak 83%-t kinyomtatta mr a hpc214 nyomtatn s csak 1 pldny kszl bel ole.
3
ltalban a printer neve utal a tpusra s az elhelyezkedsre: a hpc214 egy, a C plet
msodik emelet 14-es szobjban lv o HP nyomtatra utalhat.
4
Az lp parancsnl az lp -d kapcsolt kell hasznlni.
5
Ha nincs ilyen parancs, akkor esetleg az lpstat parancsot hasznlhatjuk.
6
A running azt jelenti, hogy a le-t ppen nyomtatja a nyomtat, a queued pedig azt, hogy
a le arra vr, hogy r kerljn a sor.
5.2. A NYOMTATSI KRS MEGSZAKTSA 51
5.2. A nyomtatsi krs megszaktsa
A nyomtatsi krs megszaktshoz tudnunk kell a krs sorszmt (ezt az el ob-
biekben trgyaltlpq paranccsal is lekrdezhetjk).
Az el oz oekben emltett pldban a
$ lprm -Phpc214 42 Enter
parancs
7
kitrli a 42-es szm nyomtatsi krst a hpc214 queue-bl (mr fut
nyomtats esetn azt megszaktja s gy trli ki).
Lehet osg van az egy felhasznlhoz tartoz minden krs kitrlsre: az
$ lprm -Phpc214 galahad Enter
parancs minden, a galahad felhasznlhoz tartoz nyomtatsi krst kitrl a
hpc214 queue-bl.
7
Ha hinyzik ez a parancs, akkor esetleg a cancel parancsot hasznlhatjuk az lprm helyett.
52 FEJEZET 5. LLOMNYOK NYOMTATSA
6. fejezet
Ki- s bemenetek tirnytsa,
klnleges shell parancsok
A UNIX opercis rendszerben a felhasznl belpsekor egy n. shell(burok,
hj) program indul el. A shell program fogadja a parancsokat s rszben ta-
laktva tovbbadja azokat az egyes specilis programoknak. A shellen bell
megteremtettk a programok sszekapcsolsnak lehet osgt is, mivel ltalban
minden program innen indul el.
Az tirnyts lehet ov teszi, hogy egy program vgeredmnyt egy msik
program hasznlja, kln llomny ltrehozsa nlkl. Egy parancssorban tbb
tirnytst is hasznlhatunk, pl. az els o utasts a bemenett egy megadott l-
lomnybl veszi, majd a msodik parancs az els o kimenett (eredmnyt) dol-
gozza fel, vgl a harmadik a msodik kimenett tovbbalaktva a vgeredmnyt
egy kimeneti llomnyba rja. Mindez nagy kzbls o llomnyok ltrehozsa
nlkl trtnik, ezrt sokkal gyorsabb a parancsok egyenknti futtatsnl.
6.1. Parancs kimenetnek tirnytsa
Egy program vgeredmnyt egy llomnyba is belerhatjuk a kperny o helyett.
Ehhez a parancs utn egy > jelet, majd a kvnt le nevt kell rnunk. Pldul:
$ ls -l > lelista Enter
$ cat lelista Enter
total 6
-rw-w--w-- 1 galahad lovag 3910 Oct 26 1992 choice
-rw-w--w-- 1 galahad lovag 21 Oct 26 1992 cm
53
54 FEJEZET 6. KI- S BEMENETEKTIRNYTSA, KLNLEGES SHELL PARANCSOK
-rw-w--w-- 1 galahad lovag 0 Dec 05 1992 filelista
-rw-w--w-- 1 galahad lovag 198 Oct 26 1992 gral
-rw-w--w-- 1 galahad lovag 5 Dec 05 1992 log
-rwxr-xr-x 1 galahad lovag 31 Oct 26 1992 test
drwx--x--x 2 galahad lovag 512 Jul 06 1992 Mail
Az els o parancs az ls -l utasts eredmnyt a filelista llomnyba rja
bele, majd a cat paranccsal a filelista le tartalmt rjuk ki a kperny ore.
Az trnyts fellrja a mr ltez o llomnyt. Ha ehelyett az llomny
vghez akarjuk az eredmnyt f uzni, akkor a >{}> jelet kell hasznlnunk. A
UNIX ekkor ellen orzi, ltezi-e a megadott nev u le. Ha igen, akkor a vghez
f uzi az j adatokat, ha pedig nem ltezik a le, akkor ltrehozza azt. Az el oz o
pldt folytatva :
$ ls > lelista Enter
$ ls -l >> lelista Enter
$ cat lelista Enter
choice cm filelista gral kocsi log test Mail
total 6
-rw-w--w-- 1 galahad lovag 3910 Oct 26 1992 choice
-rw-w--w-- 1 galahad lovag 21 Oct 26 1992 cm
-rw-w--w-- 1 galahad lovag 68 Dec 05 1992 filelista
-rw-w--w-- 1 galahad lovag 198 Oct 26 1992 gral
-rw-w--w-- 1 galahad lovag 5 Dec 05 1992 log
-rwxr-xr-x 1 galahad lovag 31 Oct 26 1992 test
drwx--x--x 2 galahad lovag 512 Jul 06 1992 Mail
Az els o ls fellrja a filelistat, mg az ls -l a vghez f uzi a rszletes l-
lomnylistt.
6.2. Bemenet tirnytsa
Nem csak a kperny ore val kirst (az n. standard outputot), hanem a billen-
ty uzeten trtn o adatbevitelt (standard input) is tirnythajuk. Pldul a grep
parancs llomny megadsa nlkl a bemenetr ol olvassa a sorokat, s keresi ben-
nk a megadott szt:
$ grep ben Enter
Itt nincs a keresett karakter Enter
Ebben mar van Enter
6.2. BEMENET TIRNYTSA 55
Ctrl - D
Ebben mar van
Irnytsuk t a bemenetet a gyakorlas llomnybl! Ehhez a < jelet kell
hasznlnunk:
$ grep ben < gyakorlas Enter
Ebben a sorban mar vannak szamok is , peldaul az 1 es a 42
Ebben a sorban nehany furcsa karakter van % @ !
Most mindent egyutt szerepeltetunk ebben a sorban vege $1 * 42
56 FEJEZET 6. KI- S BEMENETEKTIRNYTSA, KLNLEGES SHELL PARANCSOK
Msik plda a wc -l parancs, amelyik megszmolja a bemeneten rkez o so-
rokat:
$ wc -l < gyakorlas Enter
6
6.3. A cs o (pipe) hasznlata
A UNIX-ban lehet osg van arra, hogy kzbls o le ltrehozsa nlkl kapcsol-
junk ssze kt (vagy tbb) programot. Ilyenkor az els o program kimenete a m-
sodik bemenete lesz.
A kt sszektni kvnt programot az n. pipe jellel (ez a |) kell a parancs-
sorban elvlasztani. Egyszerre tbb parancsot is sszekapcsolhatunk a | jellel, ezt
pipeline-nak (cs ovezetk) nevezzk.
Pldk:
Kilistzzuk a /bin knyvtr tartalmt az ls parancs segtsgvel s az ered-
mnyt a more segtsgvel megjelentjk a kperny on:
$ ls -l /bin || more Enter
A who parancs kirja az aktulis felhasznlkat (soronknt egyet), a wc -l
parancs pedig megszmolja a sorok szmt. gy az ppen aktv felhasznlk
szmt a
$ who || wc -l Enter
adja meg.
6.4. Parancs eredmnynek tovbbhasznlata
Bizonyos esetekben szksgnk lehet egy parancs eredmnyre, de nem beme-
netknt, hanem egy utasts argumentumanknt. Ilyenkor a fordtott aposztrf
karakterek kz kell zrni a forrsknt szerepl o utastst: a fordtott aposztrfok
kz rt parancs vgeredmnye kzvetlenl behelyettest odik a parancssorba. Pl-
dul a
$ more
\
grep -l egy *
\
Enter
parancs minden, az egy szt tartalmaz llomnyt megjelent a kperny on a more
segtsgvel.
6.5. PARANCSLLOMNYOK LTREHOZSA 57
6.5. Parancsllomnyok ltrehozsa
Nha egyms utn tbbszr ugyanazt a parancssorozatot kell lefuttatnunk. Ilyen-
kor clszer u lehet ezt egy llomnyban, j parancsknt sszefoglalni.
Pldul hozzuk ltre egy szvegszerkeszt ovel a ddir llomnyt, a kvetkez o
tartalommal:
echo "Most kovetkezik az allomanylista"
ls -l
echo "Vege van az allomanylistanak"
Ezutn vltoztassuk meg az llomny vdelmi kdjt futtathatra:
$ chmod +x ddir Enter
majd a ddir parancs egyms utn lefuttatja a hrom parancsot. A parancsllo-
mnyokrl s a bennk hasznlhat parancsokrl a 83. oldalon, a Korn shell ksh
rszletes
lersa a 83.
oldalon
lersban kaphatunk b ovebb informcit.
58 FEJEZET 6. KI- S BEMENETEKTIRNYTSA, KLNLEGES SHELL PARANCSOK
7. fejezet
Programok futtatsa
AUNIXopercis rendszerben egyszerre tbb parancsunk is futhat prhuzamosan.
Ez, ha csak egy terminlt hasznlunk, gy valsul meg, hogy egy parancsunk az
el otrben fut (teljesen lefoglalva a terminlt, billenty uzetet), mikzben a tbbiek
a httrben futnak. A httrben fut eljrsok is rhatnak a kperny onkre, de nem
kaphatnak bemen o adatokat a billenty uzetr ol.
Egy vgrehajthat programot (le-t) a nevvel futtatunk. A shell a PATH
krnyezeti vltozban megadott knyvtrakat sorra vgignzi, amg meg nem
tallja a megadott nev u programot. Ha ez nem tartalmazza az aktulis knyv-
trat, akkor a teljes elrsi tvonallal kell megadni az llomnyt (pl. ./a.out,
/usr/ucb/mail).
Egy mr fut programot a Ctrl - Z gombok egyidej u lenyomsval lltha-
tunk meg. Az gy lelltott program mg benne van a gpben, csak nem fut, br-
mikor folytathat a futtatsa. Ha egy programbl ki akarunk lpni gy, hogy az
befejezze a futst, a Ctrl - C lenyomsval tehetjk ezt meg.
A httrbe tett (fut vagy meglltott) programokat a jobs paranccsal nzhet-
jk meg. A parancs felsorolja a programok hivatkozsi szmt, llapott (Run-
ning, Stopped). Az aktulis httrprogram mellett a + jel lthat.
A programokat az fg (foreground) paranccsal el otrbe, a bg (background) pa-
ranccsal httrbe tehetjk. A parancsoknak meg kell adni, hogy melyik programot
akarjuk el o- vagy httrbe tenni. Ha nem adunk meg azonostt, akkor a parancs
az aktulis programra hat. Az azonost a jobs parancsnl kirt kis egsz szm.
A 2-es szm program httrben val tovbbfuttatsa pl. a
$ bg %2 Enter
paranccsal trtnik.
Egy parancsot futtathatunk azonnal is a httrben. Ehhez a parancs legvgre
59
60 FEJEZET 7. PROGRAMOK FUTTATSA
tegynk egy & jelet. A httrben fut parancsok kisebb prioritssal brnak, s gy
terhelt rendszeren lassabban futnak le. Ha sokan futtatnak a rendszeren, clszer u
ms mdon elkldeni a futtatsokat (lsd az at s batch parancsokat a 156. s at
lersa a 156.
oldalon

batch
lersa a 158.
oldalon
a 158. oldalon). A httrben indtott parancsok befejezik futsukat, ha kijelent-
keznk a gpr ol. Ha ezt el akarjuk kerlni, akkor a httrbe kldend o parancs el
be kell rni a nohup parancsot:
$ nohup Program <BemenetiFile >KimenetiFile & Enter
Pldul a kvetkez o parancs a httrben futva a lista llomnyba belerja az
sszes, az adott knyvtrban s az alknyvtrakban tallhat hello.c llomny
nevt:
$ nohup nd . -name hello.c -print >lista & Enter
Minden fut eljrsnak a rendszerben van egy azonost szma, az n. PID
(Process IDentication number). A PID megadja az elindtott program sorszmt
a gp elindtsa ta, s gy egyedi az adott gpen fut programokra (pl. a fut shel-
lnknek is van ilyen szma). A bejelentkezsi shellhez tartoz programokat a ps
paranccsal krdezhetjk le. Ha ms terminlon is dolgozunk, akkor a
$ ps -u FelhasznliNv Enter
paranccsal krdezhetjk meg az adott FelhasznliNvhez tartoz sszes fut el-
jrst
1
.
A felesleges programjainkat le is llthatjuk a kill parancs segtsgvel. A
$ kill -9 PID-szm Enter
parancs lelltja a PID-szmazonostj eljrst. A -9 kapcsol a felhasznl ltal
elindtott alprogramok lelltshoz szksges n. trap jel rtke
2
. Csak a sajt
programjainkat tudjuk lelltani. Httreljrsainkat lellthatjuk ms mdon is,
ha a PID-szm helyre a jobs parancsnl kapott kis egsz azonostszmot rjuk
a % jel utn. Pldul a
$ kill -9 %2 Enter
lelltja a 2. szm httreljrst.
A UNIX rendszer minden fut eljrshoz egy n. prioritsi rtket rendel:
minl kisebb ez a szm, annl nagyobb szzalkt kapja meg a CPU id onek az
adott program. Amennyiben nagy s hossz httrben fut programot akarunk
elindtani, ajnlatos ezt nagyobb prioritsi rtkkel (lassabb futssal) elind-
tani.
3
Ha a gp res, akkor gy is megkapja a program a teljes CPU id ot, mg
1
Ezt azt utastst BSD alap gpeken ps -u formban kell helyesen kiadni.
2
A -9 helyett a -1 -8 kapcsolkat is hasznlhatjuk, kmletesebb lelltshoz. A -9-et
csak vgs o esetben hasznljuk.
3
Nhny gpen a rendszer automatikusan nagyon nagyra lltja a prioritsi rtket, ha a prog-
61
pl. egy interaktv bejelentkezskor a program futsa lelassul, s lehet ov teszi az
interaktv (gyorsabb) hasznlatot.
A cskkentett priorits belltsra a nice parancs szolgl
4
:
$ nice [-Szm] Parancs Enter
A Szm 1 s 19 kzti rtk, s a nvekv o rtkek cskken o prioritsra utalnak.
Az alaprtk a 10.
A nice magtl nem futtat a httrben, ezrt ltalban a httrben a kvetkez o
tpus paranccsal futtathatunk:
$ nohup nice Program <BemenetiFile >KimenetiFile & Enter
A prioritst egy mr fut programnl is tllthatjuk a renice parancs segt-
sgvel:
$ renice j-priorits PID-szm Enter
ahol a PID-szm az tlltand program azonostjt jelenti.
ram a httrben magas prioritssal sokig fut.
4
A C shellben van a nice parancson kvl egy beptett nice is, mely specilis esetekben
mskppen viselkedik.
62 FEJEZET 7. PROGRAMOK FUTTATSA
8. fejezet
Kommunikcis programok
A UNIX opercis rendszer szerves rsze a hlzati kapcsolat, melynek segt-
sgvel lehet osg nylik klnbz o elektronikus informcicserre. A legismer-
tebb ilyen programok kzl a write s a talk kzvetlen zenetkld o utast-
sokkal, a mail s az elm elektronikus levelez oprogramokkal, a tin elektron-
ikus jsgolvas programmal, valamint a TCP/IP hlzatot hasznl telnet, ftp,
finger utastssal s a gopher elektronikus adatlekrdez o programmal foglalko-
zunk rviden ebben a rszben. A knyv msodik rszben ezen utastsok b ovebb
lersa mellett ms hlzati programok hasznlatt ill. lerst is megtallhatjuk b ovebb
TCP/IP
ismeretek a
215. oldalon
(rlogin, rsh, nslookup, archie s az u.n. anonymous ftp lehet osg).
8.1. Prbeszdes kapcsolat
8.1.1. A write utasts
A write utasts segtsgvel rvid, egysoros zeneteket kldhetnk a rendszer-
ben ppen dolgoz felhasznlknak. Az zenet ugyan csak rvid lehet, de haszn-
lata knyelmes, mivel rgtn megjelenik a cmzett kperny ojn, s elolvasshoz
nem szksges kilpni az ppen fut programbl.
A paranccsal csak a rendszert interaktvan hasznl felhasznlknak zen-
hetnk. Pldul:
El oszr nzzk meg, be van-e jelentkezve akit keresnk (tegyk fel, hogy felhasz-
nli nevnk vilma):
$ who Enter
fredi tty36 Mar 21 20:05
63
64 FEJEZET 8. KOMMUNIKCIS PROGRAMOK
vilma tty4 Mar 21 19:15
irma pty/2 Mar 21 18:19
Ezutn zenhetnk pl. fredinek:
$ write fredi Enter
Szia fredi, mi ujsag Enter
A parancs kiadsa utn minden sor vgn Enter -t gpelve a sor tartalma
megjelenik fredi kperny ojn. Ha be akarjuk fejezni az rst, akkor az llomny-
vge karaktert (Ctrl-D ) kell bernunk.
Fredi kperny ojn az ppen aktulis kurzorpozciban a kvetkez o zenet je-
lenik meg ekkor:
Message from vilma on tuzko (tty4) [Mar 21 21:12:05 1993]
Szia fredi, mi ujsag
Ha fredi vlaszolni akar, akkor hasonlkppen a
$ write vilma Enter
utastssal vlaszolhat.
A write hvsokat a mesg n utasts letiltja.
8.1.2. A talk parancs
A write utasts csak rvid beszlgetsek esetn knyelmes, mivel a kperny on
sajt zeneteink s a vlaszok sszekeverednek. Hosszabb beszlgetseket ppen
ezrt clszer ubb a talk utastssal kezdemnyeznnk. Pldul ha felhasznli
nevnk vilma a dino gpen, akkor fredivel a tuzko gpen a
$ talk fredi@@tuzko Enter
paranccsal prblhatunk kapcsolatot teremteni. Az utasts hatsra fredi fel-
hasznl kperny ojn egy gyelmeztet o zenet jelenik meg, hogy vilma@@dino
szeretne beszlni vele:
Message from TalkDaemon@tuzko...
talk: connection requested by vilma@dino.
talk: respond with: talk vilma@dino
Ha erre fredi a
$ talk vilma@@dino Enter
paranccsal vlaszol, akkor mindkett ojk kperny oje kt rszre oszlik: a fels o
rszen rhatjk be zeneteiket, mg az als rszen a partner gpelse jelenik meg
folyamatosan. A beszlgetst a Ctrl-C paranccsal lehet befejezni.
8.2. ELEKTRONIKUS LEVELEZS 65
Amennyiben nem adunk meg gpnevet, az automatikusan a helyi gpre vonat-
kozik.
A talk hvsokat a mesg n utasts letiltja.
8.1.3. A mesg utasts
Nha zavartalanul szeretnnk dolgozni, minden, kzvetlenl a kperny onkn meg-
jelen o zenet nlkl. Ilyenkor a
$ mesg n Enter
utastssal megakadlyozhatjuk, hogy zavarjanak bennnket a write s a (mr
trgyalt) talk utastsokkal.
1
A hvsokat a
$ mesg y Enter
parancs utn jra fogadni fogjuk.
8.2. Elektronikus levelezs
8.2.1. A mail levelez o program
A mail utasts segtsgvel elektronikus leveleket kldhetnk ms felhasznlk-
nak. A levl elkldse utn a cmzett vagy azonnal rtestst kap err ol (ha p-
pen be van jelentkezve a rendszerbe), vagy a kvetkez o bejelentkezskor a UNIX
rendszer gyelmeztetni fogja az j levlre.
A UNIX mail programja s az elm
2
csak kt klnbz o, az opercis rend-
szer alap levelez oszolgltatst hasznl program, gy ugyanonnan veszik az j
leveleket. Ezltal elkpzelhet o, hogy valaki felvltva hasznlja oket.
A UNIX sendmail levltovbbt programja trtneti okok miatt csak
7 bitet visz t. Magyar kezetes szvegek elkldshez ezrt a levelet kdolnunk
kell, amire pl. a uuencode parancsot hasznlhatjuk, vagy szveget a T
E
X (esetleg
uuencode
lersa a 141.
oldalon.
az etex) formtumba is talakthatjuk.
A UNIX rendszerek klnbz o mail programokat hasznlnak. A kvetkez ok-
ben egy szles krben elterjedt programot, az n. UCB mail programot ismertet-
jk. Ez a program fut alaprtelmezsben a mail meghvsakor pl. az IBM AIX s
a DEC Ultrix rendszerekben. A SUNOS/Solaris rendszerben a mail alapesetben
1
Termszetesen ilyenkor is elrhet oek vagyunk, pl. elektronikus levllel brki zenhet.
2
Az elm nem rsze az eredeti UNIX rendszernek, hanem u.n. kzprogram.
66 FEJEZET 8. KOMMUNIKCIS PROGRAMOK
ugyan a /bin/mail nagyon egyszer u programra vonatkozik, de a /usr/ucb/mail
parancs itt is az UCB mail programot futtatja
3
.
Az UCBmail helyett amennyiben lehet osg van r clszer ubb a menvel
elltott elm levelez o programot hasznlni, melynek lerst a 68. oldalon tall- elm
lersa a 68.
oldalon
hatjuk meg.
Levl kldse
Egy egyszer u, rvid zenetet a mail program segtsgvel kldhetnk el. Ha
levelnk hossz, clszer u lehet el oszr a pl. vi szerkeszt o segtsgvel megrni,
s utna elkldeni.
A mail utasts sorban meg kell adni a cmzett(ek) felhasznli nevt. Ezutn
a program el oszr a rvid tartalmat krdezi meg (Subject: ), majd soronknt
fogadja az zenetet. Az zenetet egy, csak egy .-ot tartalmaz sorral zrjuk le
(hasznlhatjuk a Ctrl-D kombincit is). A legvgn - belltstl fgg oen - a
mail program felajnlja "msolatok" kldsnek lehet osgt (Cc:) is ms fel-
hasznlknak. Pldul:
$ mail galahad Enter
Subject: delutani talalkozo Enter
Delutan 3 orakor megbeszeles lesz Enter
a kerekasztalnal Enter
Sir Robin Enter
. Enter
Cc: Enter
Ha le formjban mr rendelkezsre ll az elkldend o informci (pl. egy
program futsnak vgeredmnye, vagy egy el ore megrt levl, stb.), akkor azt
egyszer uen a standard input tirnytsval kldhetjk el. Pldul:
$ mail galahad <fontos.level Enter
A program a fontos.level le-t elkldi a galahad felhasznlnak.
Egyszerre tbb felhasznlnak is elkldhetjk ugyanazt a levelet, ha a mail
parancs utn egyszer uen felsoroljuk a neveiket szkzzel elvlasztva.
Ha a cmzett nemugyanazon a gpen dolgozik, ahonnan mi szeretnnk kldeni
a levelet, akkor nemcsak a felhasznli nevet, hanem a msik gp nevt is is-
mernnk kell. A cmbe ilyenkor a felhasznli nv s a gp neve kz egy @@ jelet
kell tennnk.
3
Rendszeres hasznlat esetn clszer u az alias mail="/usr/ucb/mail" parancssort a
$HOME/.profile llomnyba berni. Ekkor a mail automatikusan az UCB mail-re vonatko-
zik.
8.2. ELEKTRONIKUS LEVELEZS 67
Plda:
$ mail sirrobin arthur@@anglia.elte.hu galahad < fontos.level Enter
A program a fontos.level le-t elkldi a az arthur nev u felhasznlnak, aki
a anglia.elte.hu elnevezs u gpen dolgozik, valamint sirrobin s galahad
felhasznlnak a helyi gpen. Termszetesen mindenki ugyanazt a levelet kapja
meg.
Levl fogadsa
Egy j levl rkezsekor a "YOU HAVE MAIL" (levele rkezett) zenetet rja ki l-
talban az opercis rendszer a kperny ore. Ha ppen dolgozunk a gpen akkor
ez a levl rkezsekor megtrtnik, msklnben pedig a kvetkez o bejelentkez-
snkkor kapjuk az zenetet. Pldul az j levelet a
$ mail Enter
utastssal olvashatjuk el. A UNIX rendszer ekkor a kvetkez okppen vlaszol:
Mail version 2.18 5/19/83. Type ? for help.
"/usr/spool/mail/lancelot": 3 messages 3 unread
R 1 arthur Tue Sep 23 11:28 24/725 "Gyules"
N 2 arthur Thu Sep 26 13:32 10/315 "Hova tetted a Gralt?"
U 3 arthur Thu Sep 26 14:35 11/305 "A fecske sebessege..."
&
A legels o sorban, rgtn a program neve utn jelzi a mail, hogy ?-et gpelve
segtsget kaphatunk.
A kvetkez o sorban a leveleslda le nevt rja ki a rendszer, majd ezutn
kvetkezik a levelek felsorolsa. Minden levlre kirdik az llapota (R - mr
olvasott, U - mg olvasatlan, N - j levl), a levl sorszma, a kld o neve, a klds
ideje, a levl hossza sorban/karakterben, s vgl a levl Subject: sora.
Az & karakter utn a kvnt sorszmot betve a levl tartalma megjelenik a
kperny on. Pldul:
& 2
Message 2:
From anglia Tue Sep 3 11:28:16 1991
Date: Tue, 3 Sep 91 11:26:57 -2300
From: arthur (Gral Knight)
To: lancelot
Subject: Hova tetted a Gralt?
Lancelot,
mar napok ota keresem a Gralt. Nem lattad valahol?
68 FEJEZET 8. KOMMUNIKCIS PROGRAMOK
Arthur
A hosszabb levelek kirst a Ctrl-S-Ctrl-Q gombokkal szablyozhatjuk.
A mail parancs & promptjnl klnbz o utastsokat adhatunk meg az ppen
olvasott levlre vonatkozan.
Pldk:
Az
& s levelem.doc Enter
paranccsal kirhatjuk a levelet egy levelem.doc nev u le-ba.
A
& d Enter
utasts kitrli az adott levelet a levelesldbl.
Az
& f * Enter
utasts kilistzza az adott levelesldban tallhat leveleket, ugyangy, mint a
mail programba val belpskor.
A programbl a q (quit) vagy az x (exit) parancsokkal lphetnk ki. A q
utasts kilp a mailb ol, s a levelesldt megvltoztatja az esetleges trlseknek
megfelel oen.
Az x parancs NEM vltoztatja meg a mailbe val belps el otti llapotot, azaz
pl. nem trli ki a mailben a d paranccsal trlt leveleket.
Figyelem! Az q s az x parancs pontosan "fordtva" m ukdik, mint ahogy azt
esetleg megszoktuk a VAX/VMS opercis rendszerben!
A mail tbb ms utastst is ismer, a 193. oldalon egy rszletes lers tallhat mail
rszletes
lersa a 193.
oldalon
a programrl.
8.2.2. Az elm levelez o program
Az elm elektronikus levelez orendszert a
$ elm
paranccsal hvjuk be. Amennyiben az els o alkalommal hvjuk be a gpen az elmet,
felttlenl olvassuk el a 203. oldalon tallhat rszletes magyarzatot a program elm
els o
elindtsa a
203. oldalon
beindtsrl.
A UNIX mail programja s az elm csak kt klnbz o, a UNIX rendszer
levelez oszolgltatst hasznl program, gy ugyanonnan veszik az j leveleket.
Ezltal elkpzelhet o, hogy valaki felvltva hasznlja oket.
Az elm f omenje egy teljes kperny ot betlt o rendszer. A kperny o tetejn
a program kirja a leveleslda helyt s azt, hogy hny levl tallhat benne.
8.2. ELEKTRONIKUS LEVELEZS 69
Tbbfle leveleslda (folder) lehet; a bejv o j leveleken, valamint az eltrolt
rgi leveleken kvl ltrehozhatjuk magunknak mg pldul az elkldtt levelek
msolatt, vagy egy adott tmval kapcsolatos levelek gy ujt ojt is. Az elm az j
posta vizsglatval jelentkezik be:
Folder is /usr/mail/guest with 4 messages [elm 2.3 PL2]
N 1 Aug 17 Bokor Gyorgy (25) targyalas
O 2 Aug 19 J.F. Kenedi (22) Re: a tiedet
NU 3 Sep 28 jozsi@ludens.elt (37) Mi ez!!!
7 Oct 21 POSTMASTER (76) Undeliverable mail
You can use any of the following commands by pressing the first character
d)elete or u)ndelete mail, m)ail a message, r)eply or or f)orward mail, q)uit
To read a message, press <return>. j=move down, k=move up, ?=help
Command:
Minden levlr ol egy egysoros bejegyzst lthatunk (amennyiben van levelnk).
A UNIX mailt ol eltr oen az elm olyankor is elindul, ha nincs j levelnk. A be-
jegyzs elejn a levl sttusza ll (j, mg nem olvasott, trlt, stb.), azt kveti
egy sorszm, a levl berkezsnek dtuma, a felad, a levl hossza sorokban, s
a levl trgya.
A kperny o aljn rvid segtsget ad a program a legf obb, az adott menben
hasznlhat utastsokrl. Kilpni a q gomb lenyomsval tudunk a levelez o-
programbl. Ha volt levelnk, akkor az elm a kilps sorn megkrdezi, hogy a
trlsre kijellt leveleket kitrlje-e, az olvasott leveleket ttegye-e az olvasott le-
velek gy ujt ojbe. Minden krdsre felajnl egy alapmegoldst, amit az Enter -re
elvgez.
Levelet gy tudunk elolvasni, hogy rmegynk a kurzorral (a kivlasztott levl
fordtott sznekkel vagy a -> jellel van megjellve a kperny on). Mozogni a
kurzormozgat nyilakkal tudunk, de belltstl fgg oen a vi szvegszerkeszt o
utastsai is m ukdnek: a j lefel, a k felfel mozgat. Ha a kivlasztott levlen
vagyunk, az Enter lenyomsval kezdhetjk el azt olvasni. Az elm a more prog-
ramot hasznlja a levl tartalmnak kirsra, gy a more parancsait is hasznl-
hatjuk.
Levelet a f omenben az m (mail) gomb lenyomsval kldhetnk. A beptett
mail levelez orendszerhez hasonlan ilyenkor az elm megkrdezi, kinek akarjuk
kldeni a levelet a Send the message to: kirsval. Ide kell betni a cmzett
E-mail cmt (vagy amennyiben ltrehoztuk, a becenevt). Ezek utn az elm a
Subject of the message: kirsval a levl trgyt krdezi meg (igen rvid
lersa annak, hogy milyen gyben rtuk a levelet). Amennyiben ezt a mez ot nem
70 FEJEZET 8. KOMMUNIKCIS PROGRAMOK
tltjk ki, az elm megkrdezi, hogy folytatni akarjuk-e a levl elkldst. Ha
igen, vlaszoljunk y -nal. Az elm belltstl fgg oen ezek utn vagy mindjrt
rhatjuk a levelet, vagy mg el obb megkrdezi a program, hogy kldjn-e msola-
tot valakinek a Cc: (Carbon Copy) kirsval (ha nem akarunk senkinek msolatot
kldeni, nyomjuk le az Enter gombot, klnben rjuk be a cme(ke)t).
Amikor ezeken tljutottunk nagy valszn usggel a vi szvegszerkeszt oben
talljuk magunkat. Ebben megrhatjuk a levelet, s a vi-bl kilpve az elm meg-
krdezi, hogy elkldje-e a levelet. Ezt az opcit ajnlja fel ( s send), gy
Enter -re a levelet elkldi. Ha nem akarjuk a levelet elkldeni, akkor a f (for-
get) lenyomsval llthatjuk le a levl elkldst.
Az elm rszletesebb lerst lsd a 16. fejezetben, a 203. oldalon. elm
rszletes
lersa a 203.
oldalon
8.3. Hlzat hasznlata
8.3.1. A telnet parancs
A telnet paranccsal jelentkezhetnk be interaktvan egy tvoli gpre. Pldul a
$ telnet rs1
belp az rs1 nev u gpbe, mg a
$ telnet 193.6.30.1
belp a 193.6.30.1 Internet szm gpre. Ilyenkor pl. a kvetkez o jelenik meg
a kperny on:
Trying . . .
Connected to rs1
Escape character is ^T.
AIX telnet (rs1)
IBM AIX Operating System
Version 3.2 (C) Copyright IBM Corp. 1992
(/dev/pts0)
login:
A parancs kiadsa utn a helyi gpnk megprblja a tvoli gpet elrni, s si-
keres kapcsolatfelvtel esetn megjelenik a tvoli gp promptja, mintha terminl-
rl jelentkeznnk be.
A telnet parancs kpes arra, hogy a tvoli gppel a kapcsolat kiptsekor
megllapodjon a hasznlt terminl tpusban (bizonyos esetekben azonban ezt
kzzel kell belltani a rendszer /etc/profile vagy a felhasznl $HOME/.profile
llomnyaiban). Amennyiben a terminltpust sikerlt megllaptania a parancs-
nak, a tvoli gpen automatikusan belltja erre a TERM vltoz rtkt. A bel-
8.3. HLZAT HASZNLATA 71
ltand terminltpust fellbrlhatjuk a telnet parancs -e kapcsoljval. Is-
meretlen terminltpus esetn a vt100 tpus belltsa az esetek nagy rszben
m ukdik.
8.3.2. Az ftp utasts
Az ftp paranccsal llomnyokat vihetnk t a helyi gp s egy tvoli gp kztt.
A parancs ezt az TCP/IP File Transfer Protocol (FTP) hasznlatval valstja meg.
A parancs formtuma a kvetkez o:
$ ftp GpNv
ahol a GpNv a tvoli gp Internet neve vagy cme. A kapcsolat kiplse utn
az ftp megkrdezi a tvoli gpen hasznland azonostt s kulcsszt.
Az ftp> prompt utn az ftp programnak klnbz o utastsokat adhatunk,
amikkel pl. knyvtrakat listzhatunk ki, llomnyokat vihetnk t az egyik gpr ol
a msikra, stb.
A parancs ugyan nagymrtkben tudja kvetni a felhasznli ignyeket, de
az FTP szabvny megktsei miatt nem tud bizonyos le paramtereket tvinni
(pl. tulajdonos neve, vdelem, dtum, stb.). Ha ilyen tpus tvitelt szeretnnk
megvalstani (pl. alknyvtrak kijellse, stb.), akkor a tar archivl parancsot
(l. 134. oldal) clszer u hasznlnunk. Futtathat, archv s ms binris llomnyok
tvitelnl az FTP binary zemmdjt kell hasznlni.
Az ftp kapcsolatot automatikusan pti ki a program a megadott gpre, ha a
felhasznl $HOME/.netrc llomnyban a GpNvhez berjuk az azon a gpen
hasznland felhasznli azonost adatokat. Pldul ha a .netrc llomnyban a
kvetkez o bejegyzs van:
machine rs1 login tas password huha
machine rs2 login kond
akkor az ftp rs1 parancs automatikusan belp a tas felhasznli azonostra
huha jelszval. Az ftp rs2 parancs elvgzi a belpst, de megkrdezi a kond
felhasznl jelszavt, tekintve, hogy ez nincs benne a .netrc-ben. Ha el akarjuk
kerlni, hogy az ftp hasznlja a .netrc adatait, akkor ftp -n GpNv formtu-
mot hasznljuk.
A $HOME/.netrc llomny fontos szemlyes informcikat tartalmaz, ppen
ezrt a UNIX rendszer nem hasznlja ezt, amennyiben a le elrhet o a csoport
vagy a klvilg szmra (megfelel o biztostk pl. a 600-as vdelmi kulcs bel-
ltsa a
72 FEJEZET 8. KOMMUNIKCIS PROGRAMOK
$ chmod 600 $HOME/.netrc
utastssal ).
Egy interaktvan fut ftp hasznlatot a quit vagy bye utastsokkal, vagy az
End of File (Ctrl-D) billenty uvel szakthatunk meg az ftp> promptnl. Egy le
tvitelt az Interrupt billenty uvel (Ctrl-C) szakthatunk flbe.
Az ftp utastsai
Az ftp rtelmezi az ftp> prompt utn megadott parancsokat. Ha a parancsok
hasznlata sorn llomnynvknt a kt ojelet (-) adjuk meg, akkor a standard
inputot (ltalban a billenty uzetet) hasznlja a program bemenetknt, a standard
outputot (ltalban a kperny ot) pedig kimenetknt.
A leggyakrabban hasznlt ftp utastsok a kvetkez ok (a gyakorlott felhasz-
nlk a felsoroltakon kvl tbb ms parancsot is hasznlhatnak, pl. makrzshoz):
user Felhasznl
a helyi felhasznlt a megadott Felhasznl paramterekkel azonostja a
tvoli gpen.
cd TvoliKnyvtr
belp a megadott TvoliKnyvtrba a tvoli gpen.
lcd HelyiKnyvtr
belp a megadott HelyiKnyvtrba a helyi gpen.
pwd
kirja az aktulis knyvtrat a tvoli gpen.
dir [TvoliKnyvtr]
Kirja az aktulis knyvtr (vagy a megadott TvoliKnyvtr) llomnylis-
tjt.
ascii
tkapcsolja az tviteli mdot ASCII formtumba (alaprtelmezs).
binary
tkapcsolja az tviteli mdot binris formtumba.
get TvoliFile [HelyiFile]
tmsolja a TvoliFile-t a helyi gpre. Ha megadjuk a HelyiFile paramtert,
az j llomny neve ez lesz.
put HelyiFile [TvoliFile]
tmsolja a HelyiFile-t a tvoli hostra (az esetlegesen megadott TvoliFile
nven).
8.3. HLZAT HASZNLATA 73
prompt
bekapcsolja/kikapcsolja az interaktv promptot. Kikapcsolsa ltalban az
mput/mget parancsoknl szoksos.
mdelete TvoliFile
kifejti a TvoliFile kifejezst, s kitrli a tvoli gpen ezeket az llomnyo-
kat.
mget TvoliFile
kifejti a TvoliFile kifejezst, s tmsolja a tvoli gpr ol ezeket az llom-
nyokat a helyi gpre.
mput [HelyiFile]
kifejti a HelyiFile kifejezst a helyi gpen, s a megadott llomnyokat t-
msolja a tvoli gpre.
!Parancs [Paramter]
meghvja a shellt a helyi gpen az esetleges Parancscsal s Paramterekkel.
quit
lezrja az ftp bejelentkezst s kilp az ftp programbl.
Az ftp-t pldul a kvetkez okppen hasznlhatjuk:
$ ftp rs1 rcsatlakozunk az rs1 gpre
Connected to rs1.
220 rs1 FTP server (Version 4.1 Fri Aug 28 11:37:57 GDT 1987) ready.
ftp> user kond felhasznli nevnk pl. kond
331 Password required for kond.
Password: megadjuk jelszavunkat, de ez nem jelenik meg
230 User kond logged in.
ftp> dir krnk egy le listt a tvoli (rs2) gpen
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 60
drwx------ 2 kond boss 512 Oct 19 23:45 Mail
-rwxr-xr-x 1 kond boss 1564 Oct 11 10:27 drawzdata
-rw-r----- 1 kond boss 9546 Sep 30 16:37 dwhetc.c
-rw-r--r-- 1 kond boss 3051 Dec 06 03:44 smit.log
drwxr-xr-x 2 kond boss 512 Dec 10 18:03 tmp
-rw-r----- 1 kond boss 9820 Oct 11 10:28 z05001.gpl
226 Transfer complete.
827 bytes received in 0.19 seconds (4.2 Kbytes/s)
74 FEJEZET 8. KOMMUNIKCIS PROGRAMOK
ftp> get dwhet.c thozzuk a dwhet.c llomnyt, ASCII (default)
zemmdban a tvoli gpr ol a helyi gpre
200 PORT command successful.
150 Opening ASCII mode data connection for dwhetc.c (9546 bytes).
226 Transfer complete.
local: dwhetc.c remote: dwhetc.c
9903 bytes received in 0.031 seconds (3.1e+02 Kbytes/s)
a kt mret a sorvgi konverzi miatt nem egyezik
ftp> !ls a helyi gpen megnzzk, megrkezett-e
config.tel dwhetc.c gro tmp
ftp plsr wave
ftp> put cong.tel tvisszuk a tvoli gpre a config.tel llomnyt
200 PORT command successful.
150 Opening ASCII mode data connection for config.tel. (6122 bytes)
226 Transfer complete.
local: config.tel remote: config.tel
6043 bytes sent in 0.039 seconds (1.5e+02 Kbytes/s)
ftp> binary tkapcsolunk binris zembe
200 Type set to I, binary transfer mode
ftp> mget z* thozzuk a tvoli gpr ol az sszes z-vel kezd od o le-
t.
mget z05001.gpl? y az ftp egyesvel vgigkrdezi, hogy t akarjuk-e
hozni az adott llomnyt
200 PORT command successful.
150 Opening BINARY mode data connection for z05001.gpl (9820 bytes).
226 Transfer complete.
local: z05001.gpl remote: z05001.gpl
9820 bytes received in 0.036 seconds (272 Kbytes/s)
ftp> quit kilpnk a programbl
221 Goodbye.
8.3.3. A finger parancs
A finger paranccsal egy adott gpen tallhat felhasznl(k)rl kaphatunk in-
formcit. A paranccsal egy adott gpen (alapesetben a helyi gpen) ltez o fel-
hasznlrl, vagy egy adott gpet ppen hasznl felhasznlkrl kaphatunk in-
formcit.
Pldk:
8.4. A TIN ELEKTRONIKUS JSG 75
Az rs2 gpen interaktvan bejelentkezett felhasznlkat a
$ nger @@rs2 Enter
parancs listzza ki:
kond console Mar 15 13:19
tas pts0 Mar 15 13:01
huba tty0 Mar 15 13:01
A kond felhasznlrl az rs2 gpen a
$ nger kond@@rs2 Enter
parancs a kvetkez ot rja ki:
Login name: kond
Directory: /u/kond Shell: /bin/ksh
On since May 8 07:13:49 on console
No Plan.
Afinger programilyenkor kirja a felhasznl HOME knyvtrt, a login shellt,
s a $HOME/.plan, valamint a $HOME/.project le tartalmt is.
Bizonyos gpeknl a fenti informcik mdosulhatnak, megjelenhet pl. a fel-
hasznl telefonszma, van-e j levele, stb.
8.4. A tin elektronikus jsg
A UNIX rendszerekben kln programokkal (ilyen pl. a tin, trn, rn, inn)
olvashatjuk az UseNet elektronikus jsgot. A tin nem rsze az eredeti rend-
szernek, de taln az egyik legegyszer ubben hasznlhat kedvelt public domain
jsgolvas program.
Az UseNet jsg olyan rovatokba van szervezve, melyek nagy rsze telje-
sen nyilvnos, mindenki szmra olvashat, brki rhat beljk. Ezek mellett
lehet osg van teljesen zrt, csak meghatrozott felhasznlk szmra olvashat
rovatok megadsra is, valamint bizonyos rovatokba csak a rovat szerkeszt ojn
keresztl lehet rni.
Az jsgot a
$ tin -r Enter
vagy a
$ rtin Enter
paranccsal indtjuk el, a rendszer belltstl fgg oen. Ezutn az egyes rovatok
listjval jelentkezik a kperny on a program. A rovat neve tartalmazza, hogy mi
76 FEJEZET 8. KOMMUNIKCIS PROGRAMOK
clt szolgl, milyen krben osztjk szt, stb. Amennyiben a legels o alkalommal
hvjuk be a gpen a tint, olvassuk el a 220. oldalon tallhat lerst a rovatok tin
els o
elindtsa a
220. oldalon
kivlasztsrl.
A program a kperny o tetejn s aljn nhny sorban kijelzi az aktulis llapo-
tot (a Ctrl-L gomb mindig jrarja a kperny ot). A legals sorban kiadhatjuk a
kvnt tin parancsot, ill. a rendszer ide rja ki az llapot- s hibazeneteket. A
fels o sorban az adott llapot kijelzse mellett a program megadja, milyen szinten
dolgozunk ppen. Ez hromfle lehet:
rovatlista szint (Selection Group Level) : A rovatlista szintre a program
elindtsa utn kerlnk.
Az egyes rovatok sorszma mellett megjelenik a rovat neve s a rovatban
tallhat mg nem olvasott cikkek szma. A - jel azt jelzi, hogy az adott
rovatot mg egyltaln nem olvastuk, ha pedig semmi nincs kirva, akkor a
rovat utols olvassa ta nem rkezett jabb cikk. Pldul:
Group Selection (77) Type h for help
21 comp.graphics.gnuplot 78
22 comp.lang.fortran -
-> 23 comp.lang.idl-pvwave 6
24 comp.lang.postscript -
25 comp.laser-printers
26 comp.mail.elm 144
27 comp.sources.misc
28 comp.sources.postscript
29 comp.sources.unix
30 comp.sources.x
A j s k gombok (esetleg a fel- s lefel nyilak) segtsgvel kivlaszthat-
juk az ppen aktulis rovatot (ezt egy nyl vagy inverz felirat jelzi a kper-
ny on). Az Enter gomb lenyomsval belpnk a jelzett rovatba. Ilyenkor
megjelenik a rovat cikklistja.
cikklista szint (Group Level) : A tin ekkor az adott rovathoz tartoz cikkek
adatait (sorszm, vlaszok szma, tartalom s felad) jelenti meg. Pldul:
comp.lang.idl-pvwave (23 33) Type h for help
-> 1 + 2 Could I (please) be sent the FAQ?? jjunker@sdf.lonestar.org
2 + Im writing an FAQ for IDL pat@gsfc.nasa.gov (patric
3 + applying poly_2d to larger images knipp@ipi.uni-hannover.de
4 + List widget problem goldberg@rwja.umdnj.edu (
8.4. A TIN ELEKTRONIKUS JSG 77
5 RENDER in PV CL 4.0 baird@thor.hor (DB Baird)
6 test baird@thor.hor (DB Baird)
7 Forcing motif type windows baird@thor.hor (DB Baird)
8 FAQ: Where is the FAQ? hong@cs.arizona.edu (Ke G
9 Request for neural network archite black@signal.dra.hmg.gb (
Egy adott cikket az el oz o szinthez hasonlan a j s k gombokkal
(esetleg a fel- s lefel nyilakkal) vlaszhatunk ki. A kivlasztott cikket az
Enter gombbal kezdhetjk el olvasni.
A szintr ol az q (quit) parancs tr vissza az el oz o, rovatlista szintre.
cikkolvass (Article Level) :
Ezen a szinten a kivlasztott cikk jelenik meg a kperny on. A fels o hrom
sorban az adott cikkek adatai (dtum, rovat, sorszm, tartalom, az esetleges
vlaszok szma s a felad) jelennek meg. Pldul:
1 Mar 1993 14:01:45 GMT comp.lang.idl-pvwave Thread 1 of 23
Article 49 Re: Could I (please) be sent the FAQ?? Respno 1 of 2
zawodny@arbd0.larc.nasa.gov Dr. Joseph M Zawodny at NASA Langley Research
In article <C2xBGr.3so@sdf.lonestar.org> jjunker@sdf.lonestar.org writes:
>Hi:
>Im new to this group and would like a copy of the most recent FAQ.
>Please, e-mail the FAQ to the address below. Thanks.
> Jon
> jjunker@sdf.lonestar.org
Jon
Im not sure there is a FAQ for this group (at least Ive never seen
one). Just go ahead and ask the question.
--More--(84%) [1037/1229]
Ha a cikk hosszabb, mint egy oldal (amire a -More-(84%) [1037/1229]
utal), akkor a Szkz -zel ( Space ) lapozhatunk a kvetkez o oldalra.
Az tin program egy adott cikket s a r rkezett vlaszokat csoportknt
kezeli n. thread formjban, ami nagyban megknnyti az egy tmhoz
kapcsold cikkek olvasst. A Szkz parancs a cikk vge utn au-
tomatikusan az els o, msodik, stb. vlaszlevlre ugrik, de kzvetlenl is
megadhatjuk a vlaszlevl sorszmt. A 0 (nulla) mindig az eredeti levlre
vonatkozik.
A szintr ol a q (quit) parancs (esetleg a balranyl gomb) tr vissza az el oz o,
cikklista szintre.
78 FEJEZET 8. KOMMUNIKCIS PROGRAMOK
A tin minden szintjn egy sajt (angol nyelv u) segtsg-rendszert hvhatunk
el o a h (help) utastssal.
A programbl a q (quit) paranccsal lphetnk ki. A program ilyenkor meg-
krdezi, elmentse-e az olvasott cikkek listjt (clszer u ilyenkor y -nal vlaszolni).
A tin sok ms utastssal is rendelkezik (pl. cikkek bekldse, keress a tin
rszletes
lersa a 219.
oldalon
cikklistban, stb.), az ez irnt rdekl od oknek ajnljuk a 219. oldalon tallhat
rszletes lerst. Szintn ajnljuk a news.announce.newusers rovatot, ahol a
kezd o olvask sok rtkes informcit tallhatnak.
8.5. A gopher elektronikus adatkeres o program
A TCP/IP hlzatok egyik rdekes lehet osge az elosztott informciforrsok
hasznlata. Ezek az adatok klnbz o gpeken vannak, de a felhasznl l-
talban ezt nem rzkeli, mivel a keres oprogramok automatikusan vltanak az
egyes tvoli adatszolgltat gpek kztt.
Az elosztott informciforrsok egyik megvalstsa az n. gopher protokoll.
A gopher amely ltalban nem rsze az eredeti UNIX rendszernek egy
egyszer uen kezelhet o, felhasznlbart public domain adatkeres o program. A fel-
hasznl egy menrendszert lt, ahonnan egy menpontot kivlasztva a program
a hlzaton keresztl lekrdezi a megfelel o gpr ol a kvnt informcit. Az egyes
adatforrsok kztt az tkapcsols automatikus.
A lekrdez o programot a
$ gopher Enter
vagy a
$ gopher IndulAdatforrsGpNv Enter
paranccsal indtjuk el. Az els o esetben a program a keresst az alaprtelmezs-
ben belltott gpen kezdi el, mg a msodik esetben az IndulAdatforrsGpNv
Internet nvvel (vagy cmmel) megadott gpr ol krdezi le az indul ment.
A program ezutn az egyes adatok (ill. adatcsoportok) listjt rja ki a kper-
ny ore. A listn az egyes sorszmok utn rviden le van rva, hogy az adott pont
mit tartalmaz. Pldul a
$ gopher ludens.elte.hu Enter
utasts utn a kvetkez o kperny o jelenik meg:
Root gopher server: ludens.elte.hu
--> 1. LUDENS gopher server/
2. ELTE gopher server/
8.5. A GOPHER ELEKTRONIKUS ADATKERES

O PROGRAM 79
Press ? for Help, q to Quit, u to go up a menu Page: 1/1
A program a kperny o aljn egy sorban kijelzi az aktulis llapotot (a Ctrl-L
gomb jrarja a kperny ot).
Egy adott menpontot a kurzormozgat fel- s lefel nyilakkal, vagy a sorszm
megadsval vlaszhatunk ki. A kivlasztott pontra az Enter vagy a kurzormoz-
gat jobbranyl ( ) gombbal lphetnk r. Egy el oz o szintre a balranyl (ez a
kurzormozgat gomb, nem tvesztend o ssze a Backspace gombbal) vagy
az u parancs lp vissza. A programbl a q (quit) paraccsal lphetnk ki (a prog-
ram ilyenkor meger ostst kr a y gombbal). A h (help) gomb kirja a gopher
utastsait.
Ha az el oz o pldnl az els o pontot vlasztjuk ki, a kvetkez o menbe jutunk:
Internet Gopher Information Client v1.1
LUDENS gopher server
--> 1. Olvass el.
2. VMS alapismeretek/
3. Szolgaltatasok a Ludens-en/
4. Levelezesi alapismeretek/
5. Egyetemkozi Hirdetotabla/
6. NEWS Archivum/
7. TTK-s NYUZ, 8. felevfolyam /
8. Hollosi Information eXchange (HIX)/
9. ELTE csillagaszati gopher server/
10. Caesar gopher server/
11. Csoma gopher server/
12. BKE gopher server/
13. The European root Gopher Server/
Press ? for Help, q to Quit, u to go up a menu Page: 1/1
Egy adatnak tbbfle tpusa lehet: jabb menszint, szveges adat, kp, hang,
stb. A program automatikusan megklnbzteti ezeket: belp egy jabb men-
szintre, kirja a szveges adatot, thozza a binris llomnyt (pl. programot) a
helyi gpre, megjelenti a kpet, megszlaltatja a hangot, stb. Az el oz o pldban
az jabb menszintekre a / vgz ods, mg az adatle-ra a . vgz ods utal.
4
Meg-
jegyezzk, hogy a HIX (Hollosi Information eXchange) falijsgot, ill. ennek
egyes rovatait is ezen a szerveren keresztl lehet elrni (8. pont).
A szveges adat lekrdezse esetn azt a gopher a more parancs segtsgvel
jelenti meg: ha az adat hosszabb, mint egy oldal akkor a Szkz -zel lapozhatunk
a kvetkez o, a b -vel pedig az el oz o oldalra. A q gombbal kilphetnk az
olvassbl. Ha a PAGER krnyezeti vltozban ms programot (pl. less) adunk
4
Ez csak ebben a pldban van gy, mshol ezt mskpp vagy egyltaln nem jellik.
80 FEJEZET 8. KOMMUNIKCIS PROGRAMOK
meg, akkor a program a more helyett azt hasznlja. Az adatsor utn a program
megkrdezi, elmentse-e az adatot egy llomnyba (s opci), elkldje-e levlben
valakinek (m opci), vagy egyszer uen lpjen vissza az el oz o menbe ( Enter op-
ci).
Binris llomnyoknl a program megkrdezi, milyen nev u llomnyba hozza
t a helyi gpre az adatokat. Kp megjelentsre csak grakus fellettel (pl.
X11), hang megjelentsre csak a szksges hang kimenettel rendelkez o gpek
(pl. SUN munkalloms) kpesek. A gopher menszintjn az O (Opci) pa-
ranccsal llthatjuk t az alaprtelmezsbeli rtkekr ol azokat a klnbz o UNIX-
beli adatkezel o parancsokat, amelyeket a gopher az adott informcitpusok es-
etn hasznl (ez pl. xv lehet kpek megjelentsre).
Bizonyos menpontoknl a program keresst hajt vgre egy nagyobb adat-
bzisban: ilyenkor meg kell adnunk a keresend o szt (search string).
A gopher program a gyakran olvasott menpontokat kpes egy n. bookmark
(olvasjel) llomnyba sszefoglalni. Az aktulis menpontot az a paranccsal
adhatjuk ehhez az llomnyhoz. Az olvasjel listt a v paranccsal nzhetjk
meg: ilyenkor itt ugyangy mozoghatunk s kereshetnk adatokat, mint a f o
menben. Egy adott pontot amennyiben az olvasjel listn vagyunk a d
gombbal trlhetnk. Ha a programot a gopher -b utastssal indtjuk, akkor
rgtn az olvasjel listba lpnk be.
Megjegyzend o, hogy a gopher mellett tbb ms, hasonl adathlzat (pl. a
World Wide Web (WWW), Hytelnet, stb.) is ltezik. Ezeket vagy pl. egy gopher
WWW kapuknt zemel o gpen keresztl, vagy a gopher mellett ms protokollt
is kezel o programok segtsgvel rhetjk el (ilyen nagyon jl hasznlhat prog-
ram pl. az ASCII alap lynx, vagy az X11 Window alap NCSA xmosaic).
II. Tl az alapokon
81
9. fejezet
A Korn shell
A UNIX rendszereken tbbfle shell (burok) program futtathat. A legrgibb a
Bourne shell (sh vagy bsh), illetve a C nyelv szintaxist kvet o C-shell (csh).
A tovbbiakban a Korn shellt (ksh) ismertetjk, amely az egyik leginkbb
elterjed oben lev o shell. A shell fellr ol teljesen kompatibilis a Bourne shellel, s
a C-shell szmos hasznos tulajdonsgt is magba tvzi. A legtbb forgalomban
lv o UNIX opercis rendszer a Korn shellt mr eredetileg tartalmazza, de mivel
a program kzprogramknt is beszerezhet o, gy a tbbi gpen is hasznlhatjuk ezt
a shellt.
Megjegyzend o, hogy az emltett hromshell mellett kzprogramknt felt untek
ms, mg tbbet tud shellek is (tcsh, zsh, bash stb.), de ezek alaprtelmezsben
nem rszei egyetlen forgalomban lev o opercis rendszernek sem.
A Korn shell maga egy interaktv parancsrtelmez o s programmozsi nyelv,
amely a kvetkez o funkcikat tartalmazza:
shell parancsok
fggvnyek, felttelek s aritmetikai kifejezsek kirtkelse
klnleges parancsok
job vezrls
parancs helyettests
llomnynv helyettests
bemenet s kimenet tirnytsa
helyettest o nevek alkalmazsa
~ (tilde) helyettests
paramter helyettests
parancssor szerkesztse
83
84 FEJEZET 9. A KORN SHELL
Ha a Korn shellt bejelentkezskor hvja meg a rendszer, az vgrehajtja a /etc/profile
shell llomny parancsait, majd a $HOME/.profile llomny shell parancsait.
Ezutn beolvassa az ENV krnyezetvltoz ltal denilt llomnybl a parancso-
kat. Amennyiben a ksh parancs utn megadunk egy llomnynevet, akkor az adott
llomnyban felsorolt shell parancsok is vgrehajtdnak. A megadott llomny-
nak olvashatnak kell lenni (l. chmod parancs).
9.1. A krnyezetvltozk
Akrnyezetvltozk troljk az egy-egy programszmra tadhat informcikat.
A krnyezetvltoznak van egy neve s ehhez rendelhetnk rtket. rtket egy-
szer uen a Nv=rtk utastssal adhatunk a vltoznak
1
. Ez az rtkads csak az
adott shellre rvnyes, ha azt akarjuk, hogy az abbl nyl jabb shellek is tve-
gyk a krnyezetvltozt, azt exportlni kell
2
:
$ export Nv
A leggyakrabban hasznlt krnyezetvltozk kz tartozik a TERM, mely a ter-
minlunkat azonostja a rendszer szmra, a LOGNAME, mely bejelentkezsi nevn-
ket tartalmazza, a PWD, mely az aktulis knyvtr nevt adja meg, a PATH pedig a
parancsok keressi tvonalt tartalmazza.
Interaktv hasznlatkor a shell a parancsokra a PS1 krnyezetvltozban de-
nilt prompttal vr. A Korn shell a PS1 rtkt a prompt kirsa el ott mindig
kirtkeli. gy a
$ export PS1=$PWD >
parancs hatsra a prompt mindig az aktulis knyvtrnv lesz (a PS1 vltoz
mindig az aktulis PWD vltoz rtkt fogja tartalmazni). Amennyiben a paran-
csot nem fejeztk be az jsor karakter ( Enter ) kiadsa el ott (pl. a vagy "
nyit karaktereknek nem adunk meg prt), akkor a Korn shell a PS2 krnyezetvl-
toz rtkt rakja ki msodlagos promptknt.
9.2. A parancsok kirtkelse a shellben
Minden alkalommal, amikor tadunk egy parancsot a rendszernek, a shell kirt-
keli, s feldolgozza azt. Amennyiben a rendszer egy specilis beptett parancst
1
C-shellben ez set Nv=rtk alak.
2
A C-shellben a set helyett a setenv paranccsal kell ilyenkor rtket adni a krnyezeti
vltoznak.
9.3. VD

OKARAKTEREK 85
adjuk ki, az az adott shellben hajtdik vgre (pldul a test parancsra a shell
beptett utastsa hajtdik vgre, mg akkor is, ha ltezik ltalunk ltrehozott,
test nev u futtathat llomny). A kvetkez o lpsben a shell leellen orzi, hogy
a kiadott parancs nem egy ltalunk megadott fggvny-e. Amennyiben igen, a
pozcionlis paramterek (azaz az adott parancs parancssorban lv o argumentu-
mai) elment odnek, majd behelyettest odnek a fggvnybe. Amikor a fggvny
lefut, a shell visszatlti az eredeti paramtereket. Egy fggvny mindig az utoljra
vgrehajtott parancs visszatrsi rtkvel fejezi be a futst, hacsak a return
utastssal nem adunk neki ms rtket. A fggvny az aktulis shellben hajtdik
vgre.
Amennyiben a parancs fordts s linkels eredmnye (pl. az a.out llomny),
akkor az adott shellben futtatja le. Ha a utasts se nem linkelt ill. beptett
parancs, se nem fggvny, akkor azt a shell parancsokat tartalmaz llomnynak
tekinti, s alshellt indt el azok beolvassra s vgrehajtsra. Ilyenkor a nem ex-
portlt alias- s fggvnydenicik nem addnak t. A zrjelek kzti parancsok
is alshellben futnak le, de megkapjk a nem exportlt vltozkat is.
A parancsot a rendszer a PATH krnyezetvltoz rtkeknt megadott knyv-
trakban keresi. A PATH-ban tbb knyvtrnevet is megadhatunk, egymstl ket-
t osponttal elvlasztva. Aparancs keresse a megadott felsorolsi sorrendben trt-
nik. Az aktulis knyvtrat kt egyms utni kett osponttal jelljk, esetleg a lista
vgn lev o kett osponttal, de ki is rhatjuk a . knyvtrnvvel hivatkozva. Ameny-
nyiben a parancs / jelet tartalmaz, akkor a shell nem hasznlja a PATH rtkt,
hanem megprblja tvonalknt rtelmezni a parancsot. A parancsot csak akkor
indtja el a shell, ha annak vdelmi kdja (amit a chmod paranccsal llthatunk be)
lehet ov teszi a futtatst.
9.3. Vd okarakterek
Minden n. metakarakter (ezek a fordtott trtvonal \, aposztrf (), fordtott
aposztrf (
\
), macskakrm ("), gmbly u (()), szgletes ([]) s kapcsos ({})
zrjelek, kisebb s nagyobb jel (<>), fgg oleges vonal (|), s-jel (&), pontosvessz o
(;), csillag (*) krd ojel (?) s a dollr ($) jel) specilis jelentst hordoz a shell
szmra. Amennyiben azt akarjuk, hogy a shell ne rtelmezzen egy karaktert, ak-
kor azt le kell vdeni. Egy karaktert az el helyezett fordtott trtvonal (\) vdi
meg a shellt ol. A sor vgn ll \ azt jelzi, hogy a parancs a kvetkez o sorban
folytatdik. Tbb karaktert aposztrfok () kz kell tenni (ezzel az szvegben
el ofordul aposztrfot nem tudjuk levdeni). A macskakrmk kztti szveg-
86 FEJEZET 9. A KORN SHELL
rszben vgrehajtdik a paramter- s parancshelyettests, de a fordtott trtvonal
levdi a fordtott trtvonalat, a fordtott aposztrfot (
\
), a macskakrmt (") s a
dollr ($) jelet. A macskakrmk s aposztrfok kztti rszt a shell egy sz-
nak kezeli (egy pozcis paramtert foglal). A $* s $@@ pozcis paramterek
(az sszes tadott argumentum) egyforma hats amikor nem tesszk macskakr-
mk kz, de macskakrmk kztt a $* egy szknt kezeli az sszes tadott
paramtert, mg a $@@ minden paramtert kln szba r. A fordtott aposztrfok
kztt a fordtott trtjel levdi a fordtott aposztrfot s a dollr jelet. Amennyiben
a fordtott aposztrf macskakrmk kztt fordul el o, akkor a fordtott trtvonal
levdi a fordtott aposztrfok kztti macskakrmt is.
A fenntartott szavak valamint a helyettest o nevek (alias) felismerst meg-
akadlyozhatjuk, amennyiben brmelyik karakterket levdjk (ezek felismerse
mg a vd okarakterek kirtkelse el ott trtnik). A beptett parancsok, valamint
a fggvnyek felismerst ilyen mdon nem akadlyozhatjuk meg.
9.4. Parancssor szerkeszts
A Korn shell az utols 128 vgrehajtott parancsot a $HOME/.sh_history llo-
mnyban trolja el. Az llomny neve a HISTFILE krnyezetvltozval megvl-
toztathat, az eltrolt parancsok szmt meg a HISTSIZE krnyezetvltoz rtke
szabja meg. Alapbelltsban a begpelt parancsok a bejelentkezsek kztt is
eltroldnak, s amennyiben egyszerre tbb bejelentkezsnk is fut ugyanazon a
gpen, akkor mindegyik ugyanabba az llomnyba rja be a begpelt parancsokat,
ezrt ms bejelentkezsben bert parancsainkat is visszahvhatjuk.
A parancsok visszahvsra az fc parancs szolgl. Ennl hatkonyabb mdja
is van a rgi parancsok visszahvsnak s szerkesztsnek, ezrt aki ezt a pa-
rancsot akarja hasznlni, olvassa el a szmtgpen tallhat kziknyv (man)
oldalakat. A legtbb gpen az fc -e - parancs az r bet uhz van hozzrendelve
alias-szal, s az r l parancs vgrehajtja a legutoljra begpelt, l-lel kezd od o pa-
rancsot (nemcsak egy bet u adhat meg a parancsbl). Az FCEDIT krnyezetvl-
toz rtke az a szvegszerkeszt o, melyet a szerkesztshez szeretnnk hasznlni,
pldul a vi vagy az emacs. A szvegszerkeszt oket a teljes tvonallal rdemes
(path) denilni. A szvegszerkeszt o felfel lps (el oz o sor) parancsa hvja visz-
sza az el oz o parancsokat, a lefel lps (kvetkez o sor) utastssal pedig az egyre
ks obbi parancsokat rhetjk el (vi zemmdban a k s a j gombok hasznlatt
az ESC gombbal clszer u indtani, mivel beszrsi zemmdbl indulunk). A
szerkeszt okarakterekkel (trls, helyettests ...) javthatunk a parancsokon, s az
9.5. VISSZATRSI RTKEK 87
Enter lenyomsval a mr javtott parancsot adjuk t a rendszernek.
A parancssor szerkesztst az FCEDIT denilsa nlkl, az EDITOR, illetve
ennek hinyaban a VISUAL krnyezetvltozk belltsval is megadhatjuk. Ha
a vltoz rtke emacs, gmacs, vagy vi-ra vgz odik, akkor a megfelel o parancs-
szerkesztsi md lp m ukdsbe. ltalban ezek egyike sincs denilva, err ol a
felhasznlnak kell gondoskodnia (pldul a .profile llomnyon keresztl).
Az EDITOR s VISUAL krnyezetvltozk helyett a set -o vi, ill. a set -o
emacs parancsokkal is bellthatjuk a parancssorok szerkesztst. Ezeket a paran-
csokat szintn clszer u a .profile llomnyba belerni.
9.5. Visszatrsi rtkek
Minden lefuttatott parancs egy u.n. visszatrsi rtket ad vissza az ot elindt
shellnek (programnak) Ha kln, a return utastssal nemadunk neki ms rtket,
akkor egy shell scriptben ezt normlis lefuts esetn az utols lefuttatott parancs
visszatrsi rtke adja meg. A futs kzbeni hibkat a shell kirja a hibt tar-
talmaz sor szmval (egynl tbb sor esetn), a hvott fggvny nevvel s a
hibazenettel egytt.
9.6. A Korn shell kapcsoli
A Korn shell lefuttathat programknt is (akrcsak a tbbi shell). A ksh parancs-
nak megadhatk kapcsolk is (melyeket a mr fut shellben is llthatunk a set
paranccsal). A legfontosabb kapcsolkat a set ismertetsekor, a 93. oldalon set
rszletes
lersa a 93.
oldalon
soroljuk fel.
9.7. A Korn-shell beptett parancsai
A Korn shell a kvetkez o fenntartott szavakat ismeri fel, amennyiben azok a
parancs els o szavai, vd okarakaterek nlkl:
if for case then while esac else until function
elif do select fi done time {} [[ ]]
for Azonost [in rtk ...]; do Lista ;done
Minden alkalommal, amikor a for parancs lefut, az Azonost rtke az
88 FEJEZET 9. A KORN SHELL
rtk kvetkez o szavt veszi fel. Ha nem adjuk meg az in rtk kife-
jezst, akkor a Listban felsorolt parancsokat a pozcis paramterekre hajtja
vgre.
select Azonost [in rtk ...] ;do Lista ;done
A select parancs kinyomtatja a standard hibakimeneten az rtkben fel-
sorolt szavakat, sorszmmal elltva. Ha nem adjuk meg az rtket, a poz-
cis paramtereket hasznlja a shell. A PS3-ban denilt promptot kirva
olvassa be a vlaszt. Amennyiben a beolvasott sor tartalmaz egy szmot,
akkor az Azonost rtke a kivlasztott sz lesz, res sor esetn a vlasztsi
lista jelenik meg jra, egybknt pedig az Azonost nem kap rtket. A be-
olvasott sort a REPLY krnyezetvltoz tartalmazza. Minden kivlasztsra
vgrehajtdnak a Listban felsorolt parancs(ok).
case Sz in [[ ( ] Minta[ || Minta] ... ) Lista ;;] esac
A case parancs vgrehajtja a Szval egyez o els o Minthoz tartoz Listt.
A Minta az llomnynv helyettestsben ismertetetett helyettest o karak-
tereket tartalmazhat.
if Lista ;then Lista [elif Lista ;then Lista] ... [;else Lista] ;fi
Az if parancs vgrehajtja az els o Listban felsorolt parancsokat, s ha az
utols nulla visszatrsi rtket ad, akkor az utna kvetkez o Listt hajtja
vgre. Ellenkez o esetben az elif utni rszt rtkeli az el oz ohz hason-
lan. Amennyiben egy felttelnl sem nulla a visszatrsi rtk az else
utni Listt hajta vgre.
while Lista ;do Lista ;done
until Lista ;do Lista ;done
A while parancs folyamatosan vgrehajtja az utna felsorolt parancsokat,
s amennyiben az utols parancs visszatrsi rtke nulla, vgrehajtja a do
utni parancssorozatot, klnben kilp a hurokbl. Az until parancs ha-
sonlan m ukdik, csak a felttelnek nulla rtkre lp ki a hurokbl.
( Lista )
A Lista parancs(sorozatot) kln krnyezetben hajtja vgre, gy a vgreha-
jts sorn ltrejtt vtozsok (krnyezetvltoz mdostsa, knyvtrvlts)
nem befolysoljk a munkakrnyezetnket. Amennyiben egymsba kell
gyazni tbb ilyen hvst, tegynk szkzt a zrjelek kz, mivel az arit-
metikai kirtkels hasznlja a kett os zrjelet (a (( jelet).
{Lista ;}
Egyszer uen vgrehajtja a parancsokat. Mivel a kapcsos zrjel fenntartott
9.8. A FGGVNYEK 89
sz, ezrt a shell csak akkor ismeri fel, ha a sor elejn vagy a parancsokat
elvlaszt pontosvessz o utn ll.
[[ Kifejezs ]]
Kirtkeli a Kifejezst, s nulla rtkkel tr vissza, ha az igaz.
function Azonost {Lista ;}
vagy az
Azonost () { Lista ;}
az Azonosthoz rendel egy fggvnyt. A fggvny a {} kztti Listban
felsorolt parancsokat hajtja vgre.
time Parancssorozat
Vgrehajtja a Parancssorozatot s kirja a felhasznlt rendszer- s felhasz-
nli id ot a standard hibakimeneten.
9.8. A fggvnyek
A fggvnyeket a shell magban trolja el denilsukkor. A parancshoz hason-
lan a fggvnyeknek is tadhatunk pozicionlis paramtereket.
A fggvnyek a hv paranccsal egy eljrsban (process) futnak le, s meg-
osztjk annak er oforrsait (knyvtr, llomnyok, nyomkvets, vltozk ...).
A fggvnyb ol a return specilis paranccsal trhetnk vissza. A fggvny
vgrehajtsa sorn fellp o hiba is felfggeszti a fggvny futst.
9.9. Feltteles kifejezsek
A feltteleket a test, az [ s ] illetve a [[ s ]] parancsprral adhatjuk ki, l-
lomnyok jellemz oinek vizsglatra, szmok, stringek sszehasonltsra. A shell
nem bontja fel szavakra, s nem hajt vgre llomnynv helyettestst a [[ s ]]
jelek kztt. Minden kifejezst a kvetkez o kifejezsekb ol llthatunk ssze:
-a File
Igaz, ha a File ltezik.
-d File
Igaz, ha a File ltezik, s knyvtr.
-f File
Igaz, ha a File ltezik, s kznsges llomny.
90 FEJEZET 9. A KORN SHELL
-n String
Igaz, ha a String nem nulla hosszsg.
-r File
Igaz, ha a File ltezik, s olvashat az eljrs szmra.
-s File
Igaz, ha a File ltezik, s nem nulla hosszsg.
-w File
Igaz, ha a File ltezik, s az adott eljrs tudja rni.
-x File
Igaz, ha a File ltezik, s a fut eljrs vgre tudja hajtani. Ha a File knyv-
tr, akkor a fut eljrsnak joga van keresni a knyvtrban.
-z String
Igaz, ha a String nulla hosszsg.
-L File
Igaz, ha a File ltezik, s szimbolikus link.
File1 -nt File2
Igaz, ha File1 ltezik s jabb, mint File2.
File1 -ot File2
Igaz, ha File1 ltezik s rgebbi, mint File2.
File1 -ef File2
Igaz, ha File1 s File2 is ltezik, s ugyanarra az llomnyra mutatnak.
String = Minta
Igaz, ha a String egyezik a Mintval.
String != Minta
Igaz, ha a String nem egyezik a Mintval.
String1 < String2
Igaz, ha a String1 megel ozi az ASCII alap knyvtri sorrendben a String2
kifejezst.
String1 > String2
Igaz, ha String1 a String2 utn kvetkezik knyvtri sorrendben.
Kifejezs1 -eq Kifejezs2
Igaz, ha a Kifejezs1 egyenl o Kifejezs2-vel.
Kifejezs1 -ne Kifejezs2
Igaz, ha a Kifejezs1 nem egyenl o Kifejezs2-vel.
Kifejezs1 -lt Kifejezs2
Igaz, ha a Kifejezs1 kisebb, mint Kifejezs2.
9.10. SPECILIS PARANCSOK 91
Kifejezs1 -gt Kifejezs2
Igaz, ha Kifejezs1 nagyobb, mint Kifejezs2.
Kifejezs1 -le Kifejezs2
Igaz, ha Kifejezs1 kisebb vagy egyenl o, mint Kifejezs2.
Kifejezs1 -ge Kifejezs2
Igaz, ha Kifejezs1 nagyobb vagy egyenl o, mint Kifejezs2.
sszetett kifejezseket ezekb ol a kvetkez okpp gyrthatunk (cskken o pri-
oritssal):
(Kifejezs)
Igaz, ha a Kifejezs igaz. A kifejezsek csoportostsra hasznljuk.
!Kifejezs
Igaz, ha a Kifejezs hamis.
Kifejezs1 && Kifejezs2
Igaz, ha a Kifejezs1 s a Kifejezs2 is igaz. Az && helyett a -a felttel is
hasznlhat.
Kifejezs1 ||| Kifejezs2
Igaz, ha vagy a Kifejezs1 vagy a Kifejezs2 igaz.Az ||| helyett a -o felttel
is hasznlhat.
9.10. Specilis parancsok
AKorn shellbe beptett parancsok a shell eljrson bell futnak le. Hasznlhatjuk
a bemeneti s kimeneti tirnytst is. ltalban a kimenet az 1. llomnylerj
llomnyba (standard kimenet) rdik, s sikeres vgrehajts esetn az utasts
nulla rtkkel tr vissza. A kvetkez okben a legfontosabb beptett parancsokat
ismertetjk:
. File
Beolvassa a File-t, majd vgrehajtja az aktulis shellben s krnyezetben. A
File-t a PATH krnyezetvltoz alapjn keresi meg. A visszatrsi rtk az
utols vgrehajtott parancs visszatrsi rtke. A . parancs beolvassa a tel-
jes File-t miel ott vgrehajtan. Ezrt a File-on belli alias, stb. parancsok-
nak mr nem lesz hatsa a vgrehajts sorn. Ha interaktv bejelentkezsb ol
futtatunk gy, akkor az llomnyban tallhat exit utasts hatsra mind-
jrt a shellb ol is kilpnk.
92 FEJEZET 9. A KORN SHELL
alias [-tx] [Nv[=rtk]] ...
Argumentumnlkl az alias parancs kirja a helyettest onevek listjt Nv=rtk
formtumban. Argumentumot megadva belltja a Nv=rtk formban
megadott hozzrendelst. Pldul az alias dir=ls hatsra a dir parancs
is kirja egy knyvtr tartalmt.
Az x kapcsol hatsra az utasts exportlt (azaz az aleljrsok szmra is
elrhet o) lesz, illetve kirskor csak az exportlt helyettest o neveket rja ki.
A t kapcsol bekapcsolja a nyomkvetst az adott Nvre.
break [n]
Kilp a while, until, for vagy select hurokbl. Az opcionlis n
paramter mondja meg, hogy egymsba gyazott hurkok esetn hny szintet
lpjen feljebb.
continue [n]
A while, until, for vagy select kvetkez o ciklust kezdi el. Az op-
cionlis n paramter mondja meg, hogy egymsba gyazott hurkok esetn
hny szintet lpjen feljebb.
eval [Argumentum ...]
Beolvassa az Argumentumokat shell inputknt, s az eredmnyknt ltre-
jv o parancso(ka)t vgrehajtja. Ezzel az utastssal ktszer trtnik meg az
Argumentumban tallhat specilis karakterek kirtkelse.
exit [n]
A shell befejezi futst s az n rtkkel tr vissza. Ha nem adunk meg
visszatrsi rtket, akkor az az utols vgrehajtott parancs rtkvel tr
vissza.
export [Nv[= rtk]] ...
A megjellt neveket exportlja. Ezltal az gy kijellt vltozk automatiku-
san taddnak a shellb ol indtott aleljrsoknak is, mg ha kzben meg is
vltoztattuk rtkket.
getopts OpciString Nv [Argumentum ...]
Lellen orzi a shell parancs Argumentumt (pozcis paramtereit) az opcik
szempontjbl. Opci a + vagy a - jellel kezd od o bet u (vagy sz). Ha az
argumentum nem plusz vagy mnusz jellel kezd odik, vagy a -- jel fordul
el o, azon tl nem keres opcit.
Az OpciString tartalmazza azokat a bet uket, amit a getopts parancs op-
ciknt felismer. Az adott bet u utni kett ospont azt jelzi, hogy annak az op-
cinak argumentuma van. Az opci argumentumt vagy kzvetlenl az op-
ci utn, vagy attl szkzzel elvlasztva kell megadni. A getopts parancs
9.10. SPECILIS PARANCSOK 93
a soron kvetkez o opcibet ut a Nv vltozba helyezi, amennyiben az op-
cit a + (vagy -) jel el ozte meg. A kvetkez o argumentum pozcijt az
OPTIND vltoz, az adott opci argumentumt az OPTARG vltoz tartal-
mazza.
let Kifejezs ...
Kirtkeli a megadott atritmetikai kifejezst. Nulla rtkkel tr viszsza, ha
az utols kifejezs rtke nem nulla, msklnben eggyel.
print [-Rnprsu[n]] [Argumentum ...]
Kinyomtatja az argumentumokat a standard kimenetre. A kapcsolk jelen-
tse a kvetkez o: az R s r nem hajtja vgre az n. escape szekvencik
(\n \t \b \r, stb.) kifejtst, az n nem r ki j sor karaktert a lista vgre.
A p kapcsol cs obe r, az s kapcsol hatsra pedig az utasts belerdik a
HISTFILE llomnyba. Az u kapcsol segtsgvel az n szmmal megadott
llomnylerba rhatunk.
pwd
Kirja az aktulis knyvtrat. Hatsa azonos a print -r - $PWD paranccsal.
read [-prsu[n]] [Nv?Prompt] [Nv ...]
Beolvas egy sort a standard bemenetr ol s szavakra bontja a mez oelvlaszt
karaktereket denil IFS krnyezetvltoz alapjn. A sor elejre kiteszi
a Promptot, s a Nv vltozba olvassa a sort. Az r kapcsol hatsra
szavakat az egyms utn felsorolt Nv vltozkba teszi, s a sorvgi ford-
tott trtjelet nem rtelmezi folytatsor jelzsre. Ha nem adunk meg nevet, a
sort a REPLY vltozba olvassa be. A visszatrsi rtk nulla, kivve ha le
vge jelet olvas be.
A p kapcsol cs ob ol olvas, az s kapcsol hatsra a parancs belerddik a
HISTFILE llomnyba. Az u kapcsol segtsgvel az n szmmal megadott
llomnylerbl olvashatunk.
readonly [Nv [=rtk] ] ...
A megadott Nevet csak olvashatnak jelli meg, s ezltal a vltoz rtkt
nem lehet ks obb megvltoztatni.
return [n]
A shell fggvny futst lezrja s a hv eljrsba adja vissza a vezrlst n
visszatrsi rtkkel.
set [+||-aefhkmnopstuvx] [+|-o Opci ]... [+|-A Nv ][Argumentum...]
A shell klnbz o paramtereit lltja. A kvetkez o parancsokat hasznl-
hatjuk:
94 FEJEZET 9. A KORN SHELL
-A Tmb hozzrendels. Trli a Nv el oz o rtkt s egyms utn hoz-
zrendeli a felsorolt Argumentumokat. Ha a +A kapcsolt hasznljuk
nem trli el oz oleg az eredeti rtket.
-a Minden tovbbi denilt vltoz automatikusan exportlt lesz.
-f Letiltja az llomnynv helyettestst.
-n Beolvassa s leellen orzi a parancsokat, de nem hajtja oket vgre.
-o Az utna megadhat, leggyakrabban hasznlt opcik a kvetkez ok:
emacs : emacs mdban lehet a parancssort szerkeszteni;
gmacs : gmacs mdban lehet a parancssort szerkeszteni;
vi : a vi beszrsi zemmdjban hajtja vgre a parancssor szerkesz-
tst;
viraw : minden begpelt karaktert vi bemeneti karakterknt dolgoz
fel;
ignoreeof : a shell nem lp ki a le vge karakterre, csak az exit
parancsra;
markdirs : minden az llomnynvkifejts eredmnyeknt kapott knyv-
trnv vgre egy trtvonalat illeszt;
noclobber : megakadlyozza hogy a >tirnyts hatsra mr ltez o
llomnyokat fellrjon a shell. Ilyenkor a > || jellel rthetnk el
fellrst;
nolog : megakadlyozza, hogy a fggvnydenicikat a shell a his-
tory le-ba mentse.
Ha nem adunk meg opcikat, a belltott opcikat rja ki.
-s A pozcis paramtereket abc sorrendbe lltja.
-t Kilp egy parancs beolvassa s vgrehajtsa utn.
-u A helyettests sorn hibnak rtelmezi, ha egy vltoz rtke nincs
belltva.
-v Kirja a vgrehajtand parancsot ahogy beolvassa.
-x Kirja a vgrehajtand parancsot kifejts utn ahogy vgrehajtja.
- Kikapcsolja az x s v kapcsolk hatst.
-- A kapcsolk feldolgozsnak vgt jelzi. Az utna kvetkez o argumen-
tum mr kezd odhet minusz jellel anlkl, hogy azt a shell opcinak
rtelmezn.
Amennyiben a fenti kapcsolkat mnusz helyett plusz jellel adjuk meg, ak-
kor az kikapcsolja az adott kapcsol hatst. A kapcsolk aktulis bellt-
st a $- krnyezetvltoz tartalmazza.
shift [n]
tszmozza a pozcis paramtereket $n+1-t ol kezdve $1, $2 ...-re. Az
9.10. SPECILIS PARANCSOK 95
n alaprtke 1, s megadhat tetsz oleges aritmetikai kifejezs, mely a poz-
cis paramterek szmnl ($#) kisebb vagy egyenl o, nem negatv szmot
eredmnyez.
times
Kirja a shell, s a bel ole indtott eljrsok ltal felhasznlt rendszer- s
felhasznli id ot.
trap [Parancs] [Jel] ...
Beolvassa s vgrehajtja a Parancsot ha a shell megkapja a Jelet. (A kiad-
hat jeleket a kill -l paranccsal listzhatjuk ki.) A Jelet akr szmknt,
akr a jel nevvel is megadhatjuk. A nyomkvets nem m ukdik olyan
jelekre, melyeket a shell indtsakor vagy ks obb a set paranccsal letil-
tottunk. A nyomkvetsek a jelek sorszma szerinti sorrendben hajtdnak
vgre. Ha nem adunk meg Parancsot, akkor trli a nyomkvetsket ere-
deti rtkkre. A trap $HOME/.logout EXIT parancs hatsra a shellb ol
val kilpskor a rendszer vgrehajtja a bejelentkezsi knyvtrunkban lev o
.logout llomnyt.
typeset [+HLRZfilrtux[n]] [ Nv [=rtk]] ...
Belltja a shell vltozk rtkeit s tpust. Fggvnyhvson bell ltreho-
zott Nv esetn azt kln helyen trolja, s a fggvnyhvs vgn visszal-
ltja annak eredeti, shellbeli rtkt. A kapcsolk jelentse a kvetkez o:
L Levgja a sz elejn lev o szkzket, s balra rendezi az rtket. Az
n denilja a mez o szlessgt. Ha nem adjuk meg, akkor az els o
hozzrendelsb ol lltja be rtkt a shell.
R Jobbra rendezi a vltoz rtkt.
Z Jobbra rendez, amennyiben az rtk szmmal kezd odik.
f Azt jelzi, hogy a Nv fggvny.
i A vltoz egsz tpus. Ez meggyorstja az aritmetikai m uveleteket. A
kirshoz hasznland szmrendszert az n rtke hatrozza meg.
l Kisbet ukre konvertlja a nagybet uket. A nagybet u u kapcsoljt hatly-
talantja.
r A kijellt Neveket csak olvashatnak deklarlja.
u A kisbet uket naggy konvertlja. Az l kapcsol ellentte.
x A felsorolt Neveket exportlsra jelli ki.
Ha a kapcsolnl a - jel helyett a + jelet hasznljuk, akkor az kikapcsolja
az adott kapcsol hatst. Ha nem adjuk meg a Nv paramtert, akkor a
megadott kapcsolhoz tartoz Nevek listjt adja vissza. Ha kapcsolt sem
adunk meg, minden vltozt kir az rtkvel.
96 FEJEZET 9. A KORN SHELL
ulimit [-HSacdfmst] [Limit]
Belltja, vagy (ha nem adjuk meg a Limitet) megmutatja az er oforrs hat-
rokat. Nem minden UNIX rendszer tmogatja az itt felsorolt er oforrsokat.
A Limit rtke vagy a tpustl fgg o szm, vagy unlimited ha nem adunk
meg r korltot. Ktfle hatr van, a kemny hatr (H kapcsol), s a puha
hatr (S kapcsol). A kemny hatrt ltalban a rendszergazda lltja be (pl.
a rendszer zikai hatrrtkeire), s ezeket a felhasznl nem tudja tll-
tani. A puha hatr az a kemny hatron bell lev o rtk, amit a felhasznl
a kemny hatrrtkig megvltoztathat. A parancs, hacsak nem adjuk meg
a H kapcsolt, a puha hatrokat rja ki. A tbbi kapcsol jelentse:
-a Kilistzza az sszes hatrrtket.
-c A core dump (futsi hiba esetn a program memriakpe a core llo-
mnyba msoldik, s ezt a dbx paranccsal megvizsglhatjuk) max-
imlis mrete 512 byte-os egysgekben.
-d Az adatmez onek fenntartott hely maximlis mrete kbyte-okban.
-f Az aleljrsok ltal kirhat maximlis llomnynagysg 512 byte-os
blokkokban.
-m A felhasznlhat zikai memria nagysga kbyte-okban.
-s A stack terlet legnagyobb mrete kbyte-okban.
-t Az eljrs ltal felhasznlhat maximlis rendszerid o msodpercben.
umask [Mask]
Az jonnan ltrehozott llomnyok alap vdelmi belltst szablyozza. A
Mask rtke vagy egy oktlis szm, vagy a chmod parancsban ismertetett
szimbolikus rtk. Szimbolikus megads esetn az umask j rtke a komp-
lementere lesz annak a maszknak, amit gy kapunk, hogy az az j Maskot
alkalmazzuk a rgi Mask rtknek komplementerre. Ha nem adjuk meg a
Maskot, kirja annak rtkt.
unalias Nv ...
Kiveszi a felsorolt Neveket az alias listbl.
unset [-f] Nv ...
A felsorolt Nevekhez tartoz rtkeket s jellemz oket kitrli. A csak olvas-
hatnak kijellt vltozk nem trlhet ok. Az f kapcsol esetn a Nv fgg-
vnynv. Az ERRNO, LINENO, MAILCHECK, OPTARG, OPTIND, RANDOM,
SECONDS, TMOUT, _ vltozkra alkalmazva megsznteti azok specilis je-
lentst, mgha a ks obbiekben jradeniljuk is oket.
wait [Job]
Vr a megadott eljrsra (Job), s tudst futsnak befejezsr ol. Ha nem
9.11. ARITMETIKAI KIFEJEZSEK 97
adjuk meg az eljrst, az sszes aleljrsunk vgre vr. A megadott eljrs
visszatrsi rtkt adja vissza.
whence [-pv] Nv ...
Minden megadott Nvre megmutatja, hogyan rtelmezn a shell parancs-
knt. A p kapcsol hatsra vgignzi a PATH krnyezetvltoz alapjn,
hogy hol tallhat a megadott parancs, mgha a megadott Nv alias, fgg-
vny vagy fenntartott sz is. A v kapcsol rszletesebb kirst eredmnyez.
9.11. Aritmetikai Kifejezsek
Egsz tpus szmolsokat a let specilis parancs segtsgvel hajthatunk vgre.
A kirtkels az n. long integert (a mai gpeken ez ltalban egy 32 bites szmot
jelent) hasznlja. A konstansokat [Bzis#] Szm mdon adhatjuk meg, ahol a
Bzis egy 2 s 36 kztti, tzes szmrendszerbeli rtk, mely a Szm megadshoz
hasznlt szmrendszer alapjt denilja. Alaprtke 10.
Az aritmetikai kifejezsek a C nyelv szintaxist, prioritsi sorrendjt s cso-
portostsi szablyait kvetik. A ++, -, ?: kivtelvel minden egsz tpus
m uvelet megengedett. Az aritmetikai kifejezsekben a vltozkra hivatkozhatunk
a nevkkel, nemkell a paramter helyettestsi szablyokat (dollr jel) alkalmazni.
Mivel sokszor lehet szksg az aritmetikai kifejezsekben a macskakrm
hasznlatra, ezrt a let parancson kvl megengedett a dupla zrjel (azaz a
(( ... )) ) hasznlata is. A dupla zrjelek kztti rszt macskakrmztt
aritmetikai kifejezsknt rtelmezi a shell.
9.12. Parancs eredmnynek helyettestse
Egy parancs kimenett felhasznlhatjuk egy msik parancsban is. Hagyomnyo-
san ezt a fordtott aposztrfokkal lehet elrni, de a Korn shellben hasznlhat mg
a $( Parancs ) alak is. Mindkt esetben a kimenetr ol a shell kisz uri a lezr j-
sor karaktert. Az aritmetikai kifejezseket a $(( Kifejezs )) mdon rhatjuk
be parancssorba. A fordtott aposztrfok esetn a shell kifejti a vd okaraktereket,
miel ott vgrehajtan a parancsot.
98 FEJEZET 9. A KORN SHELL
9.13. llomnynv helyettests
A parancs minden szavt a shell leellen oriz a * ? [ , karakterek szempont-
jbl. Amennyiben ilyet tall, akkor a szt mintnak tekinti, s behelyettesti
ABC sorrendben a mintnak megfelel o llomnynevekkel. Ha nem tall egy llo-
mnynevet sem, akkor vltozatlanul hagyja a szt. A specilis karakterek a kvet-
kez o helyettestst jelentik: a csillag helyettest minden karakterlncot, belertve
a nulla stringet is. A krd ojel egy karaktert helyettest. A szgletes zrjelek
kzt felsorolt karakterek kztt az egyikkel egyezni kell. Megadhatunk egy egsz
karaktertartomnyt is a - jel hasznlatval. Ha a szgletes zrjelen bell az els o
karakter a felkiltjel, az neglja a kifejezst (minden fel nem sorolt karakter-
rel trtnhet egyezs). A mnusz jelet a legels o karakterknt adhatjuk meg. Az
[a-zA-Z] minta az sszes (kis vagy nagy) bet ut jelenti.
sszetett mintkat a kvetkez o eljrssal hozhatunk ltre: jellje a
MintaLista az egy, vagy tbb || jellel elvlasztott mintt. Ekkor
?(MintaLista) Az adott mintk kzl brmelyikkel egyezik.
*(MintaLista) Az adott mintk egyszer sem, vagy tbbszr fordulnak el o.
+(MintaLista) Az adott mintk egyszer vagy tbbszr fordulhatnak el o.
@(MintaLista) Csak az egyik megadott mintval egyezik.
!(MintaLista) Egyik megadott mintval sem egyezik.
A .-tal kezd od o llomnyneveknl expliciten ki kell tenni a pontot a minta
elejre, klnben a shell nem helyettesti be azokat.
Lehet oleg ne adjunk olyan llomny s knyvtrneveket, melyek csillagot,
krd ojelet vagy szgletes zrjeleket tartalmaznak.
Aszgletes zrjelek kztt hasznlhatk mg az el ore denilt karakteroszt-
lyok is [:Osztly:] alakban, ahol az osztly a C-nyelv ctype rutinjainak meg-
felel oen a kvetkez o lehet: alnum, alpha, digit, lower, print, punct, space,
upper, xdigit.
9.14. Ki- s bemenetek tirnytsa
A shell mg miel ott vgrehajtan a parancsokat lehet osget biztost, hogy
azok bemenett s kimenett tirnytsuk. Az tirnytsi parancsokra is vgre-
hajtdik a shell helyettestse, de csak a kifejtett rtkek addnak t a meghvott
programnak.
9.15. HELYETTEST

O NEVEK (ALIAS) 99
<File
A File llomnybl veszi a standard bemenetet.
>File
A File llomnyba teszi a standard kimenetet. Amennyiben az llomny
ltezik, fellrja, ellenkez o esetben ltrehozza.
> ||File
Ugyanaz, mint a >, de a noclobber opci esetn is fellrja a ltez o l-
lomnyt.
> >File
A File llomnyba teszi a standard kimenetet gy, hogy ltez o llomny
esetn annak vghez hozzr.
<>File
A File llomnyt rs-olvassra nyitja meg standard bemenetknt.
<<Sz
A shell a Sz el ofordulsig vagy a le vge jelig olvassa be a standard
inputot. Az gy keletkezett szveg lesz a standard bemenet. Amennyiben
a Sz brmely karaktere le van vdve, akkor a keletkezett szvegen nem
trtnik shell helyettests, klnben paramter s parancssor helyettests
zajlik le. Ha a Sz el a - karaktert helyezzk, akkor ez a szvegb ol kivgja
a sor eleji tabultorokat.
<&Szmjegy
A standard inputot a Szmjegy llomnylerbl kapja.
>&Szmjegy
A standard kimenetet a Szmjegy llomnylerba teszi.
A fenti jelek el otti szm az adott szmhoz tartoz llomnyler tirnytst
jelli. A 2>&1 helyettests a 2-es llomnylerj eszkzt (standard hibakimenet)
az 1-be (standard kimenet) irnytja. Tbbszrs tirnyts esetn gyelni kell a
sorrendre. A 1>File 2>&1 kifejezs az 1. llomnylert a File-hoz rendeli,
majd a 2. llomnylert az 1.-hz, ami mr a File, azaz mindent a File-ba r.
Fordtott sorrend esetn a hibakimenetet a standard kimenetre, az eredeti standard
kimenetet pedig a File-ba rja.
9.15. Helyettest o nevek (alias)
Minden parancs els o szavt a shell kicserli, amennyiben az adott szt helyettest o
nvnek (alias) deniltuk. A helyettest o nv els o karaktere tetsz oleges nyomtat-
hat karakter lehet, de a tbbi karakterre ugyanazok a megktsek rvnyesek,
100 FEJEZET 9. A KORN SHELL
mint a vltoz nevekre. A helyettest o szveg (amire a shell az alias-t kicse-
rli) tartalmazhat brmely ltez o shell scriptet, akr metakarakterekkel is. A shell
a helyettest o szveg sszes parancsnak els o szavt is megprblja helyettest o
nvknt kifejteni. Amennyiben a helyettest o rtk utols karaktere szkz, ak-
kor a shell az alias utni szra is megprbl alias helyettestst elvgezni. Alias-
okat hasznlhatunk a beptett parancsok jradenilsra, de nem hasznlhatk
a fenntartott szavak tdenilsra. Helyettest o neveket az alias paranccsal
hozhatunk ltre, s az unalias paranccsal trlhetnk. Ha aleljrsokban is
akarunk hasznlni egy helyettest o nevet, azt exportlni kell.
Az alias helyettests a parancs beolvassakor trtnik meg, s nem vgrehaj-
tsakor. Ezrt id oben kell gondoskodni a helyettest o nv denilsrl.
A kvetkez o exportlt aliasokat beptettk a Korn shellbe (de ezek trlhet ok
s tdenilhatk):
autoload=typeset -fu
false=let 0
functions=typeset -f
hash=alias -t
history=fc -l
integer=typeset -i
nohup=nohup
r=fc -e -
true=:
type=whence -v
9.16. A tilde helyettests
Az alias helyettests utn a shell megvizsgl minden szt, hogy nem ~ jellel
kezd odik-e. Az utna a / jelig kvetkez o szt a shell megnzi, hogy el ofordul-e
a /etc/passwd llomnyban felhasznli nvknt. Ha igen, akkor az adott fel-
hasznl bejelentkezsi knyvtrt helyettesti be a sz helyre, ellenkez o esetben
nemtrtnik helyettests. Amennyiben a ~ a / jelet kzvetlenl megel ozi, akkor a
HOME vltoz rtkre helyettest odik. A ~+ a PWD, a ~

- az OLDPWD vltoz rtkre


helyettest odik.
9.17. Paramter helyettests
A paramter egy azonost, a *, @@, #, ?, -, $, ! karakterek valamelyike,
illetve egy vagy tbb szmjegy lehet. A szmjegyes paramterek az n. pozi-
cionlis paramterek, melyek egy shell hvsakor a shellnek tadott argumen-
9.17. PARAMTER HELYETTESTS 101
tumokat tartalmazzk a megadott sorrendben. A specilis karakteres paramterek
a shell ltal hasznlt s ltalban belltott paramterek.
A paramtereknek ltalban rtkk s belltott tulajdonsgaik vannak. A
bellthat tulajdonsgokat a typeset parancsnl, a 95. oldalon ismertettk.
A Korn shell tmogatja az egy dimenzis tmbk hasznlatt. A tmb egy
elemre annak indexvel (szgletes zrjelek kzti aritmetikai kifejezs) hivat-
kozunk. rtket egy tmbnek a set -A paranccsal adhatunk. A tmb indexe 0
s 512 kztti rtk lehet. E hatrok kzt a shell automatikusan ltre is hozza a
tmbt. Ha egy tmbre index nlkl hivatkozunk, az a 0. elemt jelli.
Egy paramter rtkt megadhatjuk mg egyszer u hozzrendelssel:
$ Nv=rtk [ Nv=rtk ]
formban is. Amennyiben -i (egsz) tpusnak lltottuk be a Nv vltozt, akkor
az rtk egy aritmetikai kifejezs is lehet, amit a shell kirtkel. A pozicionlis
paramtereknek a set specilis paranccsal adhatunk rtket. Ha scriptet hvunk
meg, akkor a $0 a hv parancs neve, $1, $2, ... pedig az tadott argumentumok.
A $* s a $@@ az sszes tadott argumentumot jelenti.
A shell a kvetkez o helyettestseket hajta vgre:
${Paramter}
A shell beolvassa az sszes kt kapcsos zrjel kzti karaktert egy szknt,
mgha kapcsos zrjeleket vagy metakaraktereket tartalmaz is. Amenny-
iben denilva van ilyen vltoz, annak rtkt helyettesti be. A kapcsos
zrjeleket elhagyhatjuk, ha nem kell a vltoz neve utn kzvetlenl egy
bet ut, szmot, vagy alhzs karaktert illeszteni, vagy ha a paramternek
indexet adunk. Az egy szmjegynl nagyobb pozicionlis paramtereket is
kapcsos zrjelbe kell tenni.
${#Paramter}
AParamter rtknek a hosszt helyettesti be. A* illetve a @ Paramternl
a pozcis paramterek szmt adja meg.
${#Azonost[*]}
A tmbben tallhat elemek szma.
${Paramter:-rtk}
Ha a Paramter ltezik, s nem nulla az rtke, akkor azt helyettesti be,
klnben az rtket.
${Paramter:=rtk}
Ha a Paramter nem ltezik, vagy nulla az rtke, akkor az rtkre lltja
be, s ezutn helyettesti be.
102 FEJEZET 9. A KORN SHELL
${Paramter:?rtk}
Ha a Paramter ltezik, s nem nulla az rtke, akkor azt helyettesti be,
klnben kirja az rtket s kilp a shellb ol.
${Paramter:+rtk}
Ha a Paramter ltezik, s nem nulla az rtke, akkor az rtket helyettesti
be, klnben semmit nem helyettest be.
${Paramter#Minta} vagy ${Paramter##Minta}
Ha a Paramter rtknek eleje egyezik a Mintval, akkor a Mintnak meg-
felel o rszt kitrlve helyettesti be a Paramtert, klnben a teljes rtkt.
A # jells a minimlis, a ## jells a maximlis egyez o tartomnyt trli ki.
${Paramter%Minta} vagy ${Paramter%%Minta}
Ugyanaz, mint az el oz o, csak a Paramter rtke vgnek egyezst gyeli.
A fenti esetekben az rtk egy kifejezs is lehet, s nem rtkel odik ki, hacsak
nem ot hasznlja a shell helyettestsre. Pldul az echo ${d:-$(pwd)} utasts-
ban a pwd parancs nem kerl vgrehajtsra, ha a d paramter rtke nem nulla.
A kvetkez o paramtereket a shell automatikusan belltja:
# A shellnek tadott pozicionlis paramterek szma.
- A shell hvsakor bekapcsolt opcik.
? Az utoljra vgrehajtott parancs visszatrsi rtke. A legtbb parancs si-
keres vgrehajtskor 0 rtkkel tr vissza.
$ A shell processz-szma (PID). Leggyakoribb alkalmazsa egyedi llomny-
nv generlsa: pl. a /tmp/temp.$$ a processz egyedi szmval elltott
llomnynevet jelenti.
_ Az el oz o parancs utols argumentuma.
! A httrben utoljra elindtott eljrs processz-szma.
ERRNO A hibakddal utoljra visszatrt eljrs hibakdja.
LINENO A script llomnyon vagy a fggvnyen belli, ppen vgrehajts alatt ll
sor szma.
OLDPWD A cd parancs ltal belltott el oz o munkaknyvtr.
OPTARG A getopts parancs ltal feldolgozott utols opci argumentuma.
OPTIND A getopts parancs ltal feldolgozott utols opci indexe.
PPID A shell szl oeljrsnak processz szma.
PWD Az aktulis munkaknyvtr.
RANDOM Minden hvskor egy 0 s 32767 kztti "vletlen szmot" generl. A
kezd ortke bellthat.
9.17. PARAMTER HELYETTESTS 103
REPLY A select s a read specilis parancsok ltal belltott vltoz, mely a
vlaszt tartalmazza.
SECONDS A shell meghvsa ta eltelt id ot rja ki msodpercekben. Ha kezd ortket
adunk neki, onnan szmolja az id ot.
A shell a kvetkez o vltozkat hasznlja:
CDPATH A cd parancs keressi tvonala.
COLUMNS A shell ennek a vltoznak az rtkt hasznlja a szerkesztsi mdokban s
a select parancs alkalmazsakor az ablak szlessgnek megllaptshoz.
EDITOR Ha ennek rtke emacs, gmacs, vagy vi-ra vgz odik, s a VISUAL vltoz
nincs belltva, akkor a megfelel o parancsszerkesztsi md lp m ukdsbe.
ENV j shell meghvsa el ott e vltoz a paramterhelyettestssel kapott llo-
mnynevet futtatja le. ltalban helyettest o nevek s fggvnyek deni-
lsra hasznljk.
FCEDIT Az fc parancs alatt hasznland szvegszerkeszt ot denilja.
IFS A shell szbetrdelsre hasznlt elvlasztkaraktereket tartalmazza (sz-
kz, tabultor, j sor).
HISTFILE A vgrehajtott parancsokat trol llomny neve.
HISTSIZE rtke adja meg, hogy az utols vgrehajtott parancsok kzl hnyat trol
el a shell.
HOME A cd parancs argumentumnlkl ebbe a knyvtrba ugrik. A bejelentkezsi
eljrs a bejelentkezsi knyvtrra lltja az rtkt. Ha tbb gpen dolgo-
zunk, clszer u programjainkat gy megrni, hogy ne a teljes le-nevekkel,
hanem ennek a vltoznak az rtkvel hivatkozzunk az llomnyokra, mi-
vel ezltal programjaink ttehet ok egyik gpr ol a msikra.
LINES A select hasznlja a rendelkezsre ll sorok meghatrozsra. A select
a listt a LINES rtknek ktharmadig rja ki.
MAIL Az j leveleket tartalmaz llomny neve. Ha a MAILPATH vltoz nincs
belltva, akkor a shell az llomny megvltozst j levl rkezseknt
jelzi.
MAILCHECK rtke meghatrozza, hogy a shell milyen gyakran ellen orizze le a MAILPATH
vagy MAIL vltozkban megadott llomnyokat. Alaprtke 600 msod-
perc.
MAILPATH A benne felsorolt, kett osponttal elvlasztott llomnyneveket ellen orzi a
shell j levl rkezse cljbl. Minden llomnynv utn kzvetlenl a
krd ojel utn megadhatjuk az zenetet, amit a shell kir, ha vltozs trtnt
az llomnyban. Az zenetben a shell elvgzi a paramter helyettestst. A
104 FEJEZET 9. A KORN SHELL
megvltozott llomny nevt a $_ vltozban trolja. Az zenet alapbel-
ltsa: YOU HAVE MAIL IN $_.
PATH A parancsok keressi tvonala. Egymstl kett osponttal elvlasztott knyv-
trneveket tartalmaz, melyeknek megadsi sorrendjben keresi a shell a ki-
adott parancsnak megfelel o llomnynevet. A nulla knyvtrnv az aktulis
knyvtrat jelli.
PS1 Az els odleges rendszer promptot tartalmazza. rtke a prompt kiiratsa
el ott tmegy a paramter helyettestsen. Ha felkiltjelet adunk meg benne,
az a parancs sorszmra helyettest odik. Alaprtke a dollr s egy szkz.
PS2 A msodlagos rendszer prompt. Alaprtke a nagyobbjel s egy szkz.
PS3 A select parancsban a prompt rtke. Alaprtke a #? s egy szkz.
SHELL A shell elrsi tvonala. (Sok program ezt hasznlja, ha ki akarunk lpni
bel ole a shellbe).
TMOUT Ha a PS1 prompt kiadsa utn a TMOUT-ban megadott szm percig nem
adunk ki parancsot, a shell befejezi futst. Akkor clszer u hasznlni, ha el
szoktuk felejteni a kijelentkezst. 0 rtke esetn nem lp ki a shell.
VISUAL Ha ennek rtke emacs, gmacs, vagy vi-ra vgz odik, akkor a megfelel o
parancsszerkesztsi md lp m ukdsbe.
A shell a PATH, PS1, PS2, MAILCHECK, TMOUT, IFS vltozknak ad rtket, mg
a HOME, SHELL, ENV, MAIL vltozkat nemlltja be (a HOME rtkt a login parancs
lltja be).
A krnyezeti vltozk belltsra kvetkezzen egy mintaknt hasznlhat
.profile llomny:
# @(#).profile 5.1 ULTRIX 4/23/91
umask 22
export PATH=$PATH:/u/local:/usr/local/bin:/usr/bin/X11:.
PS1=$LOGNAME@
\
hostname
\
$
VISUAL=vi
FCEDIT=vi
export TERM=vt100
export VISUAL FCEDIT
export PS1
if [ -z "$DISPLAY" ]
then
export DISPLAY=
\
who am i || awk {l=length($6); print substr($6,2,l-2) ":0.0"}
\
else
if [ "$DISPLAY" = ":0.0" ]
9.17. PARAMTER HELYETTESTS 105
then
export DISPLAY=":0.0"
else
export DISPLAY=
\
who am i || awk {l=length($6); print substr($6,2,l-2) ":0.0"}
\
fi
fi
alias ls=ls -g
alias archie=telnet 131.130.1.23
Az llomnyban el oszr belltjuk az n. umask rtkt (azaz a 755-s alap
vdelmi kdot), majd a PATH, PS1, VISUAL, FCEDIT s TERM krnyezeti vltozkat
(gyeljk meg, hogy a PS1 rtke egy shell parancsot is tartalmaz!) Ezutn egy
dupla if felttelvizsglattal megllaptjuk, hogy honnan jelentkeztnk be (helyi
gpr ol vagy a hlzaton keresztl), s ennek megfelel oen belltjuk az X11 Win-
dow ltal hasznlt DISPLAY vltoz rtkt (ez adja meg az X11 ablakokat meg-
jelent o grakus terminl nevt). Az llomnyt nhny alias dencival zrjuk:
az ls parancs a csoportot is fel fogja tntetni a hosszabb le listkban, az archie
parancs pedig egy bcsi archie-szerver gpre jelentkezik be (ott felhasznli
archie
parancs
lersa a 217.
oldalon
azonostknt szintn az archie-t hasznljuk!).
AKorn-shell parancsainak hasznlatra vegyk a kvetkez o parancsllomnyt,
amely helyi hirdet otblaknt m ukdtethet o:

#!/usr/bin/ksh
PS3="Enter your choice> "
select ans in "exit"
\
ls -d /u/local/info/*/* \
|| sed "s/\/u\/local\/info\/\(.*\)\.news/\1/"
\
do
if [[ $ans = exit ]]
then
exit
fi
more /u/local/info/$ans.news
echo "Hit enter to continue ... "
done
Az llomny els o sorban a #! megjegyzs utn kvetkezik a parancsot fut-
tat shell neve. Esetnkben tekintve, hogy a select parancs nincs a Bourne-
shellben ez a Korn-shell. A msodik sorban belltjuk a select parancs ltal
hasznlt PS3 prompt rtkt. A hirdet otbla a /u/local/info knyvtr alknyv-
106 FEJEZET 9. A KORN SHELL
traiban elhelyezked o .info vgz ods u llomnyokbl ll: egy-egy ttel cme
megegyezik az llomny nevvel. A select parancs argumentumban az ls s
sed parancsok automatikusan felptik a pillanatnyi listt (gyeljk meg a foly- sed
lersa a 110.
oldalon
tatsorok hasznlatt a sorvgi \ karakterrel), amib ol aztn a felhasznl a kvnt
sorszm betsvel vlaszthat. Az ans vltoz a kivlasztott ttellel tr vissza,
amit aztn a do ciklusban elhelyezked o more utasts jelent meg. A ciklus az ans
vltoz exit rtkig ismtl odik.
A for ciklus hasznlatra plda a kvetkez o parancsllomny:
#!/usr/bin/ksh
for File in ls *.c
do
cp -i $File $File.old
echo $File
done
A parancssorozat az adott knyvtrban tallhat minden .c vgz ods u l-
lomnybl msolatot kszt, aminek neve az eredeti nv .old-dal kiegsztve.
10. fejezet
llomnyok feldolgozsa
A UNIX opercis rendszerben sok parancs az llomnyok feldolgozst: kife-
jezsek megkeresst, gyors szerkesztst (pipe-ot hasznlva), rendezst, ismt-
l odsek kisz urst teszi lehet ov. A tovbbiakban ezeknek a parancsoknak a rs-
zletes ismertetsvel foglalkozunk.
A UNIXopercis rendszerben a grep parancs szolgl arra, hogy llomnyok-
ban megadott karaktersorozatokat keressnk. A sed parancs a kimenet sz ur o-
szint u szerkesztsre ex ill. viszer u utastsokkal ad lehet osget. A uniq
parancs kisz uri az egy llomnyban tallhat ismtl od o sorokat. A UNIX l-
talnos cl llomny feldolgoz programja az awk, amely megadott mintj so-
rokon utastsokat hajt vgre.
Az llomnyok bizonyos szempont szerinti sorrendbe ttelre a sort parancs
szolgl.
10.1. A grep parancs ismertetse
A grep parancs szolgl arra a UNIX opercis rendszerben, hogy llomnyokban grep
rvid lersa
a 33. oldalon
megadott karaktersorozatokat keressnk. Agrep csaldjba tartozik mg az egrep
s a fgrep parancs is. A karaktersorozat tartalmazhat ltalnos helyettest o karak-
tereket is (l. ed, vi, sed parancsok). A parancsnak a kapcsolkon kvl kt argu-
mentuma van: az els o a keresett minta, a msodik a llomnyok listja, amiben
keressk. Az utbbi hinyban a standard bemenetr ol olvassa be az llomnyt
(sz ur oknt is alkalmazhatjuk). Ha csak egy llomnyt adunk meg, akkor csak
a mintt tartalmaz sorokat rja ki, klnben eljk rakja annak az llomnynak
nevt is, amiben a keresett minta el ofordul.
107
108 FEJEZET 10. LLOMNYOK FELDOLGOZSA
A keresend o minta megadsnl vigyzni kell arra, hogy a shell ltal spe-
cilisan kezelt karaktereket ($, *, [, ||, ^, (, ), \ ) levdjk. Ha a minta
nemegy sszefgg o karaktersorozat, akkor azt aposztrfok (vagy macskakrmk)
kz kell tenni. A f obb helyettest o karakterek a $, mely a sor vgt, a ^, mely
a sor elejt, a ., mely egy tetsz oleges karaktert, a *, mely az utolsnak mega-
dott karakter tetsz oleges szm megjelenst jelli s a [] pr, mely azt hatrozza
meg, hogy a karakternek a zrjelek kzti rtkek valamelyikt kell felvennie.
Itt megengedett pl. az [a-z] hasznlatval egy egsz tartomny kijellse is. A
zrjelben egy kifejezs el otti ^ azt jelzi, hogy azt az rtket nem veheti fel a
helyettestend o karakter. A -e kapcsol hasznlatval lehet osg van tbb minta
megadsra is (l. a 34. oldalon tallhat lerst is!).
A grep parancs hasznlatakor a kvetkez o korltozsokat clszer u szem el ott
tartani: a sorok maximlisan 2048 karakter hosszak lehetnek, a hosszabb sorokat
a grep betrdeli. A paragrafusok (l. -p kapcsol) maximlis hossza 5000 karak-
ter. A parancsot ne futassuk specilis llomnyokban a rendszergazda s sajt
bknk rdekben. A bemen o llomny nem tartalmazhat NULL karaktert, s j
sor karakterre kell vgz odnie.
A grep parancs kapcsoli:
-c
Azt rja ki, hogy hny sort tallt, mely tartalmazta a mintt.
-E
Kiterjesztett regulris kifejezsknt rtelmezi mindegyik mintt
1
. A semmi
minta (NULL) minden sorral egyezik.
-e Minta
Egy vagy tbb keresend o mintt lehet megadni. Igen hasznos, ha a Minta
a - (mnusz) jellel kezd odik. A mintkat egymstl jsor karakterrel kell
elvlasztani. A mintkat a grep a -E s -F kapcsolk hinyban egy-
szer u regulris kifejezsknt rtelmezi. Tbb megadott minta esetn minden
olyan sort kir, amelyik legalbb az egyik mintt tartalmazza. A -e kapcsol
el is hagyhat, de ilyenkor a Mintnak a grep parancs els o argumentum-
nak kell lennie. A kapcsol tbbszr is kiadhat, s ekkor a mintkat nem
kell az jsor karakterrel elvlasztani.
-F
Mindegyik megadott mintt sz szerint, s nem regulris kifejezsknt r-
1
Ha a kapcsol egy adott rendszerben nem ltezik, akkor a grep helyett az egrep parancsot
hasznlva ugyanezt a funkcit megkapjuk.
10.1. A GREP PARANCS ISMERTETSE 109
telmezi, ezrt sokkal gyorsabban lefut
2
.
-f llomny
Megadja a keressi mintkat tartalmaz llomny nevt. Az llomnyban
minden mintnak j sorban kell llnia.
-h
Hatsra tbb llomny esetn sem rja ki az llomnyneveket.
-i
Az sszehasonlts sorn nem tesz klnbsget a kis- s nagybet uk kztt.
-l
Csak azon llomnyok nevt sorolja fel, amelyekben a megadott kifejezs
megtallhat.
-n
Minden sor el kirja, hogy az llomny hnyadik sorban tallhat a meg-
adott minta.
-p[Elvlasztkarakter]
A mintt tartalmaz teljes paragrafust kirja. A paragrafusokat egymstl
az res sorok vlasztjk el. Amennyiben megadjuk az
Elvlasztkaraktert, a grep annak megfelel oen rtelmezi a paragrafust.
-q
Nem r ki semmit a kimenetre, pusztn nulla visszatrsi rtket ad, ha a
megadott minta ltezik.
-s
Nem rja ki a nem ltez o, vagy nem olvashat llomnyokra vonatkoz hi-
bazeneteket.
-v
A megadott mintt nem tartalmaz sorokat rja ki.
-w
Egsz szavakat keres.
-x
Azokat a sorokat rja ki, melyeknl a megadott minta a teljes sorral egyezik.
Pldk (l. mg a 33. s a 36. oldalon tallhat pldkat is): tovbbi
grep
pldk a
33. s a 36.
oldalon
A proba llomnyban keressk meg azokat a sorokat, melyek bet uvel kezd od-
nek:

2
Ha a kapcsol egy adott rendszerben nem ltezik, akkor a grep helyett az fgrep parancsot
hasznlva ugyanezt a funkcit megkapjuk.
110 FEJEZET 10. LLOMNYOK FELDOLGOZSA
$ grep ^[a-zA-Z] proba Enter
A mintban szerepl o ^ (sor eleje) jel mgtti kifejezs kivlaszt minden bet ut,
mely ABC sorrendben a s z illetve A s Z kz esik azaz minden kis s nagy
bet ut.
A proba llomnybl rjunk ki minden olyan sort, mely vagy az abc vagy a
xyz karaktereket tartalmazza:
$ grep -e abc -e xyz proba Enter
vagy
$ grep abc Enter
> xyz proba Enter
vagy
$ grep -E abc||xyz proba Enter
Ez utbbi esetben kiterjesztett regulris kifejezst hasznltunk, melyben a sz ur o
jel grep VAGY m uveletet jelent.
10.2. A sed pipe szerkeszt o
A sed parancs szolgl a kimenet sz ur oszint u szerkesztsre. Argumentumknt
megadhat egy vagy tbb llomnynv: ilyenkor ezeknek az llomnyoknak a
tartalmt szerkeszti t a standard kimenetre. llomnynv hinyban a sed a
standard bemenetet dolgozza fel.
A szerkeszts sorn lehet osg van kivlasztani azokat a sorokat, melyekre a
szerkesztst el akarjuk vgezni, s csak azokat mdostani. A sed nagyon hason-
lt az ed szerkeszt o csaldra (l. vi), s ennek megfelel oen a parancsok ltalnos
alakjban meg lehet adni a tartomnyt (sorok), melyekre a parancs vonatkozik,
egy parancsot, illetve az azt mdost kapcsolkat. A sed beolvassa a megadott
llomnyokbl (standard bementr ol) a sorokat a minta munkaterletre, vgreha-
jtja azon a megadott parancsokat sorjban, s vgl kirja a standard kimenetre.
Ezek utn letrli a minta munkaterletet, s ugyanezt elvgzi a kvetkez o sor-
ral. Nhny parancs egy msik munkaterletre (trol) el tudja menteni a minta
munkaterletet vagy annak egy rszt, hogy a ks obbiekben azt jra felhasznl-
hassa.
Ha a sed parancs nem tartalmaz cmtartomnyt, akkor minden sorra vonatko-
zik, klnben csak a kijellt sorokra. A cm lehet a sor szma, a $ jel (a bemenet
utols sort jelli), vagy egy regulris kifejezs, mely kijelli azt a sort, amellyel
a mintja illeszkedik. A szoksos regulris kifejezsekt ol (l. vi) a sed megenged
10.2. A SED PIPE SZERKESZT

O 111
nhny eltrst.
A mintkat nem ktelez o a / trtjellel elvlasztani, brmely ltalunk kivlasz-
tott (nem a szkz vagy jsor) karakter lehet, de az els o el ofordulsakor fordtott
trtjellel kell berni. Pldul
\RmintaR
esetn az R bet u az elvlaszt karakter. Ha maradunk a trtjelnl, akkor nem kell
az els o fordtott trtjelet kirni.
A \n a nem a sor vgt jell o jsor karaktert fejezi ki. A pont minden karaktert
helyettest, mg a nem sorvgi jsor karaktert is, eltr oen az ed (vi) szerkeszt ot ol.
A cmtartomny llhat nulla, egy vagy kt cmb ol. Ha nincs megadva cm, a
parancs minden sorra vonatkozik. Amennyiben egy szm(illetve a $ jel), vagy egy
regulris kifejezs van megadva, az utna jv o parancs a megadott szm sorra,
illetve a regulris kifejezssel megegyez o sorra vonatkozik. Ha kt szmot adunk
meg vessz ovel elvlasztva, akkor a kt sorszm kztt minden sorra vonatkozik
a parancs. Amennyiben a msodik szm kisebb vagy egyenl o az els onl, akkor
csak az els o szmmal megegyez o sorszm soron vgzi el a parancsot.
A sed a megadott parancsokat vagy a standard bementr ol veszi (els o argumen-
tum, vagy -e kapcsol), vagy egy llomnybl (-f kapcsol). Egyszerre sszesen
99 parancsot lehet megadni.
A sed kapcsoli a kvetkez ok:
-e Utasts
A megadott Utasts alapjn dolgozza fel a szveget. Amennyiben nem
hasznljuk a -f kapcsolt, s csak egy utastst adunk meg, nem kell kitenni
a kapcsolt.
-f llomny
Az utastsokat tartalmaz llomny nevt adja meg.
-n
Nemrja ki a standard kimenetre a szerkeszts eredmnyt (csak az Utasts-
ban szerepl o kln parancs esetn). Ezzel lehet elrni, hogy a sed ne rjon
ki olyan sorokat, melyeket nem szerkesztnk.
10.2.1. A sed parancsai
A parancsok sokszor valamilyen szveget tartalmaznak. Az a c vagy i paran-
csok esetn egy sornl hosszabb szveget is berhatunk, ha az utols sor kivtel-
vel mindegyik egy fordtott trtjelre vgz odik. Mivel a parancsllomnyban a sed
112 FEJEZET 10. LLOMNYOK FELDOLGOZSA
gyelmen kvl hagyja a sor elejn ll szkz s tabultor karaktereket, azokat a
megadott szvegben a fordtott trtjellel kell levdeni.
A parancsok el ott zrjelben szerepel, hogy hny cmet fogad el az adott
parancs:
(1) a Szveg
A kvetkez o sor beolvassa el ott a Szveget kirja a kimenetre. Az a parancs
utn fordtott trtjelet kell tenni, s a Szveget j sorba rni.
(2)b[Cimke]
A :Cimkvel kezd od o sorra ugrik a parancsllomnyban. Ha nem adunk
meg Cimkt, a parancsllomny vgre ugrik.
(2)c Szveg
Letrli a minta munkaterletet, s kirja a Szveget a kimenetre. Cmtar-
tomny megadsa esetn csak a tartomny vgn rja ki a Szveget. Az a
parancshoz hasonlan itt is a c parancs utn fordtott trtjelet kell tenni, s
a Szveget j sorba rni.
(2)d
Letrli a minta munkaterletet.
(2)D
A minta munkaterlet elejr ol az els o j sor karakterig trl.
(2)g
A minta munkaterletet letrli, s a trol munkaterletet tlti t.
(2)G
A trol munkaterlet tartalmt a minta munkaterlet vgre illeszti.
(2)h
A trol munkaterletre bemsolja a minta munkaterlet tartalmt.
(2)H
A minta munkaterlet tartalmt a trol munkaterlet vgre illeszti.
(1)i Szveg
A Szveget a kimenetre teszi, miel ott a minta munkaterlet tartalmt kirn.
Az a parancshoz hasonlan itt is az i parancs utn fordtott trtjelet kell
tenni, s a Szveget j sorba rni.
(2)l
A minta munkaterletet kirja a standard kimentre gy, hogy a nem nyom-
tathat karaktereket 4 szmjegy u hexadecimlis formban rja ki. A hossz
sorokat betrdeli (folytatsor esetn az el oz o sor vgre egy fordtott trt-
jelet tesz). Igen hasznos, ha olyan llomnyunk van, melyben hossz (pl-
10.2. A SED PIPE SZERKESZT

O 113
dul 2048 karakternl hosszabb) sorok vannak, mivel azokat nem minden
szvegszerkeszt o kpes kezelni.
(2)n
A minta munkaterletet a standard kimenetre rja, s annak helyre be-
olvassa a kvetkez o sort.
(2)N
A feldolgozand llomny kvetkez o sort a minta munkaterlethez f uzi
egy jsor karakterrel elvlasztva, s megvltoztatja az aktulis sorszmot.
Olyan mintk keressekor clszer u alkalmazni, melyek kt (vagy tbb) egy-
ms utni sorban lehetnek.
(2)p
A minta munkaterletet a standard kimenetre rja.
(2)P
A minta munkaterlet elejt az els o jsor karakterig a standard kimenetre
rja.
(1)q
A parancsllomny vgre ugrik, de nem indt el j ciklust, hanem kilp.
(2)r llomny
Beolvassa az llomny tartalmt, s a standard kimenetre teszi a kvetkez o
sor beolvassa el ott. Az llomnynak a parancssor vgn kell llnia, s
pontosan egy elvlaszt karakter (szkz vagy tabultor) lehet el otte.
(2)s/Minta/Helyettests/Kapcsolk
A munkaterleten lev o, a megadott Mintval egyez o karaktersorozatot a
Helyettests karaktersorozatra rja t. Ha nem adjuk meg a g kapcsolt,
csak az els o el ofordul legnagyobb mintt cserli le. A helyettests szin-
taxisa megegyezik az ed s vi szerkeszt oknl lertakkal. A kvetkez o kap-
csolkat adhatjuk meg (egyszerre tbbet is):
g Az sszes el ofordul, a megadott mintnak megfelel o karaktersorozatot
lecserli.
n Csak a mintnak megfelel o n. karaktersorozatot cserli le.
p Kirja a minta munkaterletet, ha sor kerlt a helyettestsre.
w llomny
A minta munkaterletet az llomnyba rja, ha sor kerlt a helyettes-
tsre. A munkaterletet az llomny vghez f uzi hozz (vagy ha az
nem ltezik, akkor ltrehozza).
(2)tCimke
A :Cimke sorra ugrik a parancsllomnyban, amennyiben a helyettest o
114 FEJEZET 10. LLOMNYOK FELDOLGOZSA
parancs hatsra vltoztats trtnt a munkaterleten. Ha nem adunk meg
Cimkt, a parancsllomny vgre ugrik.
(2)w llomny
Amunkaterletet az llomny vgre f uzi. Az llomny a parancssor vgn
kell, hogy lljon, s pontosan egy elvlasztkarakter el ozi meg.
(2)x
Kicserli a minta s a trol munkaterlet tartalmt.
(2)y/Minta1/Minta2/
A Minta1-ben felsorolt karaktereket lecserli a Minta2-ben felsoroltakkal.
A kt mintban a karakterek szmnak meg kell egyezni, az jsor karaktert
a \n jelli.
(2)!sed-parancs
A megadott sed parancsot azokra a sorokra alkalmazza, melyeket a cmki-
vlaszts nem jellt ki.
(0):Cimke
A b s t parancsok szmra egy cimkt ad meg a parancsllomnyban. A
Cimke legfeljebb 8 karakterb ol llhat.
(1)=
Kirja az aktulis sor szmt a standard kimentre.
(2){Parancs1 Parancs2 ... }
A sed utastsokat csoportostja. Mindegyik Parancsnak kln sorban kell
llnia.
Az res parancssorokkal a sed nem tr odik. Megjegyzseket a sor elejn ll
# jellel tehetnk a parancsllomnyban. Amennyiben az els o sorban a # utn
kzvetlenl egy n bet u ll, az ugyanazt jelenti mintha kiadtuk volna a -n kapcso-
lt.
Pldk:
Teljes csere vgrehajtsa: trunk minden alma stringet eper-re a
BemenoAllomany llomnyban. A kimenetet az UjAllomanyba rjuk:
$ sed "s/alma/eper/g" BemenoAllomany >UjAllomany
A pr parancs ltal el olltott lap sorszmokat zrjelbe szeretnnk tenni, s
gy kinyomtatni a BemenoAllomanyt:
$ pr BemenoAllomany || sed "s/Page *\([0-9]*\)$/(\1)/" | lpr
Ez az utasts a Page szt tartalmaz, s szmra vgz od o sorokat cserli le, gy
hogy a szmot rja csak ki zrjelben (az \1 jelli az els o, \( - \) prral kijellt
rsszel egyez o mintt).
10.3. A UNIQ UTASTS 115
Ha csak a keresem szt tartalmaz sorokat szeretnnk megjelenteni a
BemenoAllomanyban, akkor a
$ sed -n "/keresem/p" BemenoAllomany
A -n kapcsol miatt nem rdik ki semmi olyan a kimenetre, amire nem szltot-
tuk fel a sedet. Jelen esetben ez a p parancs (az utasts helyett a grep parancsot
is hasznlhattuk volna).
A parancsllomny hasznlatra vegyk a kvetkez o pldt: azt akarjuk, hogy
a sed a legels o sor el a Kezdet szt rja ki, az utols sor utn pedig azt, hogy:
Veg. Az sszes fordtott trtjelre vgz od o sorokat f uzze ssze az utnuk jv ovel a
fordtott trtjel nlkl. A parancs.sed llomnyunk pldul ilyen lehet:
1i\
Kezdet
:fuzes
/\\$/{N
s/\\\n//
b fuzes
}
$a\
Veg
Az N parancs f uzi ssze a sorokat, az s parancs kisz uri az jsor karaktert, s a
b parancs ismtelteti meg az eljrst (enlkl csak kt sort f uzne ssze a sed).
Fontos, hogy az N parancs lelltja a sed parancsot, ha llomny vge jelet
tall, s nem msolja t ekkor a minta munkaterletet a kimenetre. Ezltal, ha egy
llomny fordtott trtjelre vgz odik, akkor a fenti parancsllomny nem rja ki
az utols sort.
A parancsokat a BemenoAllomanyra a kvetkez o utasts alkalmazza:
$ sed -f parancs.sed BemenoAllomany
10.3. A uniq utasts
A uniq parancs kisz uri az egy llomnyban tallhat egyms utn ismtl od o so-
rokat, s csak egyszer rja ki az ismtl od o sort (clszer u lehet ezrt az llomnyt
el oszr a sort utastssal rendezni). Aparancsot olyankor hasznljuk, amikor pl-
dul egy listban ki akarjuk sz urni az ismtlseket. A parancsnak a kapcsolkon
kvl kt argumentuma lehet, a bemeneti s a kimeneti llomny. Ezek hinyban
a standard kimenetre illetve bemenetr ol dolgozik.
A parancs alaprtelmezsben teljes sorokat hasonlt ssze. Lehet osg van
116 FEJEZET 10. LLOMNYOK FELDOLGOZSA
arra is, hogy az sszehasonlts sorn ne vegyen gyelembe megadott mez oket
(a mez o egy olyan karaktersorozat, melyet egy vagy tbb elvlasztkarakter
ltalban szkz vagy tabultor vlaszt el egy msik karaktersorozattl).
Az uniq parancs kapcsoli a kvetkez ok:
-c A kimeneten megjelen o sorok el berja, hogy az adott sor hnyszor fordult
el o a bemen o llomnyban.
-d Csak az ismtl od o sorokat rja ki.
-u Csak az egyszer el ofordul sorokat rja ki.
-f Szm Az sszehasonlts sorn a Szmnak megfelel o szm mez ot gyelmen
kvl hagy. A kapcsolt -Szm alakban is hasznlhatjuk.
-s Szm Az sszehasonlts sorn a Szmnak megfelel o szm karaktert hagy -
gyelmen kvl. Ha a -f kapcsolval egytt hasznljuk, akkor a megadott
szm mez ot hagyja el oszr gyelmen kvl, majd az els o, az sszehason-
ltsnl hasznland mez ob ol hagy gyelmen kvl Szm darab karaktert.
A kapcsolt +Szm alakban is hasznlhatjuk.
Vegyk pldul a tagok nev u llomnyt, amely a kvetkez o neveket tartal-
mazza:
joska
pista
joska
lajos
pista
joska
A
$ uniq tagok osszes
parancs ltrehozza az osszes nev u llomnyban a
joska
pista
lajos
sorokat.
10.4. AZ AWK PROGRAMNYELV 117
10.4. Az awk programnyelv
A UNIX ltalnos cl llomny feldolgoz programja az awk. M ukdsnek
alapja, hogy megadott mintj sorokat keres, s azokon az ltalunk megadott
utastsokat hajta vgre.
Az awk nyelv a legels o vltozat kialakulsa ta b ovlt: nmely UNIX rend-
szerben az jabb verzit nawk-nak (new awk) nevezik. Mi csak a program jabb
vltozatval foglalkozunk, ezrt amennyiben az adott rendszerben ltezik a
nawk parancs a pldkban mindenhol azt kell hasznlni az awk utasts helyett.
A parancs els o argumentuma az awknak szl utastsokat tartalmazza, majd
ezutn kvetkezik az az llomny, amit az awk feldolgoz. Ha nem adunk meg
llomnyt, akkor a standard bemenetr ol vr adatot. Tbb llomny esetn az awk
gy dolgozza fel oket, mintha a megadott sorrendben egyms utn f uztk volna
oket. Mivel ltalban hosszasabb utastssorozatot adunk meg, ezrt lehet osg van
az utastsokat tartalmaz llomnyt (parancsllomny) megadni az awknak a -f
Parancsllomny alakban. A feldolgozott adatokat az awk alaprtelmezsben a
standard kimenetre rja.
A feldolgozs sorn az utastsokban megadott kiterjesztett regulris kife-
jezsek szerint elemzi az adatllomny aktulis sort, s egyezs esetn vgreha-
jtja a minthoz tartoz parancsot. Az awk a parancsllomny sszes sort vgig-
nzi tovbbi egyezseket keresve, s csak utna tr r az adatllomny kvetkez o
sorra.
Az awk megengedi vltozk, szmokkal vagy karakterekkel operl fggv-
nyek s logikai kifejezsek hasznlatt.
Az awk interpreter szinten m ukdik, azaz a parancsllomnyt nem kell leford-
tani (mint ltalban a programozsi nyelvek forrskdjt), emiatt azonban lassab-
ban futnak le az utastsok.
Az awk kapcsoli a kvetkez ok:
-f llomny
Az awk parancs az llomny parancsllomnybl veszi az utastsokat. A
kapcsol ismtelhet o, s ilyenkor a megjelens sorrendjben sszef uztt l-
lomnyt hasznlja parancsllomnynak az awk.
-F KRK
A KRK-t (kiterjesztett regulris kifejezs, l. 10.4.3 fejezet a 118. oldalon)
hasznlja mez o elvlaszt karakternek.
-v Hozzrendels
rtket ad egy vltoznak. A Hozzrendels Nv = rtk alak. A hoz-
118 FEJEZET 10. LLOMNYOK FELDOLGOZSA
zrendelst az awk mg a BEGIN rsz lefuttatsa el ott elvgzi.
10.4.1. Az adatllomny feldolgozsa
Az awk programnyelvben a BEGIN specilis parancs denilja azokat az utast-
sokat, melyeket az adatllomny feldolgozsa el ott kell vgrehajtani (pldul szm-
llk nullzsa, stb.) Ennek vgrehajtsa utn az awk beolvas egy rekordot az
llomnybl. A rekord az n. rekord elvlasztjellel szeparlt adattmeg. Ez
az elvlasztjel alapesetben az jsor karakter, de az RS vltoz rtknek vltoz-
tatsval tllthat (pl. a BEGIN utastsnl).
A kvetkez o lpsben az awk a beolvasott rekordot sszehasonltja a parancs-
llomnyban lv o mintkkal azok megjelensi sorrendjben, s egyezs esetn
vgrehajta a hozzjuk tartoz parancsokat. A parancsban a rekordokban lv o
mez okkel is operlhatunk (alapesetben a szkzzel vagy tabultorral elvlasztott
karaktersorozatok). A mez o elvlasztkaraktert vagy az awk -F kapcsoljval,
vagy az FS vltoz rtkvel lehet belltani. A mez ok rtkeire a $1, $2 ...
kifejezsekkel hivatkozhatunk, melyek rendre az els o, msodik, stb. mez ot jelen-
tik. A $0 az egsz rekordot jelenti.
Miutn az awk a rekordot az sszes mintval sszehasonltotta s vgrehajtotta
az el ort parancsokat, beolvassa az adatllomny kvetkez o rekordjt. Ez egszen
addig folytatdik, amg van bemenet. Az utols llomny utols sornak feldol-
gozsa utn az awk vgrehajta az END specilis parancsban megadott utastsokat.
10.4.2. Az awk programnyelv
Az awk parancs ltalnos szerkezete a kvetkez o :
Minta { Utasts }
Ha a Minta megegyezik a rekorddal, akkor az Utasts vgrehajtdik. Ha
nem adunk meg Utastst, akkor a teljes rekord vltoztats nlkl a standard
kimenetre kerl. A Minta nlkli Utasts minden rekordra vgrehajtdik.
A Minta vagy egy kiterjesztett regulris kifejezst, vagy egy sszehasonltst
tartalmaz, de lehet ezek kombincija, esetleg a BEGIN vagy END specilis szavak
egyike is.
10.4.3. A kiterjesztett regulris kifejezs
A kiterjesztett regulris kifejezs a regulris kifejezsekre (RK) pl (l. az ed s
vi parancsokat). A keresett mintt trtjelek kz tesszk. A kiterjesztett RK a
10.4. AZ AWK PROGRAMNYELV 119
kvetkez o specilis karaktereket hasznlja:
+
Az el otte lev o karakter egy vagy tbb el ofordulst helyettesti. Hasonlt a
*-hoz, mely nulla, vagy tbb el ofordulst helyettest.
?
Az el otte ll karakter nulla vagy egy el ofordulst helyettesti.
.
Apont az jsor karakter kivtelvel mindent karakterrel egyezik. A/a..at/
helyettesti az allat kifejezst.
*
Az el otte ll karakter nulla vagy tbb el ofordulst helyettesti.
, !
Az el otte megadott vltozra vizsglja meg, hogy az utna megadott RK-
val egyezik-e. A $1~/n/ kifejezs minden olyan sorral egyezik, melyben az
els o mez o tartalmazza az n bet ut.
^
A mez o vagy a rekord elejre hivatkozik. A $2~/^h/ kifejezs a msodik
mez o elejn ll h bet u esetn ad egyezst.
$
A mez o vagy a rekord vgre hivatkozik.
||
A sz ur o jel kt oldaln lev o kifejezs brmelyiknek egyezse esetn egye-
zst r el o. Pldul a /kutya||macska/minden olyan sort kivlaszt, melyben
vagy a kutya vagy a macska sz el ofordul.
( )
Csoportostja egy RK-n bell a karaktersorozatokat. A + vagy a ? kapcso-
lval egytt szoks hasznlni. Pldul a /(zi)?(zi)?/ kifejezs az res
sorral (nulla el ofordulsa mindkt kifejezsnek), a zi s a zizi szavakkal
egyezik meg.
{m}
Az el otte lev o karakter pontosan m darab egyms utni el ofordulst helyet-
testi. A /l{2}/ kifejezs pldul az allat sz esetn igaz.
{m, n}
Az el otte lev o karakternek m s n kztti szmszor kell egyms utn el ofor-
dulnia (m < n).
120 FEJEZET 10. LLOMNYOK FELDOLGOZSA
[Karaktersorozat]
A Karaktersorozatban el ofordul brmelyik karakternek kell a vizsglt
rekordban el ofordulnia. Egsz tartomnyok is megadhatk, pldul a /ll[a-e]/
az allat s az ellet szavakkal is egyezik (a kifejezst a /ll[abcde]/
alakban is megadhattuk volna). A kapcsos zrjelen belli els o helyen a ^
karakter azt jelenti, hogy az utna megadott karaktereknek nem szabad el o-
fordulniuk. A /ll[^b-e]/ kifejezs az allattal egyezik, de az ellettel
mr nem.
Ha a specilis karakterek valamelyikt szeretnnk expliciten megjelentetni
a kifejezsekben, azokat a fordtott trtjellel kell levdeni. Pldul trtjelet a
szvegben a kvetkez o kifejezssel lehet keresni:
/szoveg\/blabla/
A minta az sszes szoveg/blabla kifejezst tartalmaz rekorddal megyezik.
Az awk ismeri a C nyelvben hasznlatos specilis szekvencikat is, gy a \ddd
kifejezs megadsval tetsz oleges karakter ASCII kdjt is megadhatjuk a ddd
oktlis formban. A fordtott trtjellel levdett specilis kifejezsek kzl az awk
ismeri a macskakrm, trtjel, a fordtott trtjel (nmaga levdse), a b (karakter
vissza), a n (jsor), a r (kocsi-vissza), t (tabultor) s az a (cseng o), f (lapdobs)
s a v (vertiklis tabultor) vezrl o karaktereket.
10.4.4. Az sszehasonltsok
Az sszehasonlts sorn kt kifejezst mrnk ssze a <, >, <=, >=, == s !=
jelekkel (sorrendben: kisebb, nagyobb, kisebb egyenl o, nagyobb egyenl o, egyenl o,
nem egyenl o). A
$1 < $4
minden olyan rekorddal egyezik, melyben a negyedik mez o nagyobb az els onl
(vagy mint szm, vagy karakterek esetn az ABC sorrend alapjn). Hasonl m-
don megadhatjuk, hogy az els o mez o ne legyen q bet u:
$1 != "q".
10.4.5. A mintk kombincija
Ha kt mintt vessz ovel vlasztunk el, akkor az awk tbb rekordot is kivlaszt
a megfelel o utastsra: kivlasztja az adott tartomnyban azt a sort, amelyik az
els o mintval egyezik, majd utna keresi azt a sort, amelyik a msodik mintval
10.4. AZ AWK PROGRAMNYELV 121
egyezik, s rjuk, valamint minden kzttk lv o rekordra is vgrehajtja a paran-
csot.
Alkalmazhatunk logikai m uveleteket a mintk kztt a kvetkez o kifejezsek-
kel: a || (s), && (vagy), ! (nem). A
$1 == "igen" && $2 == "42"
minden olyan sort kivlaszt, melyben az els o mez o az igen, a msodik pedig 42.
A mintkat zrjelekkel is csoportosthatjuk.
10.4.6. A BEGIN s END kifejezsek
A BEGIN-nel felsorolt parancsok az els o rekord beolvassa el ott, az END-del fel-
soroltak az utols rekord feldolgozsa utn hajtdnak vgre. Ha a parancsllo-
mny csak egy BEGIN-b ol ll, akkor az hajtdik vgre, s nem olvassa be a rekor-
dokat. Ha csak egy END-b ol, akkor beolvassa az sszes rekordot, miel ott vgreha-
jtan az END parancsokat.
10.4.7. Vltozk
Az awkban hasznlhatunk skalr, mez o, tmb s specilis vltozkat. A vltozk
neve nem kezd odhet szmjeggyel. A hasznlt vltozkat nem kell el ore denilni.
Ha nem adunk kezd ortket egy vltoznak, akkor numerikus vltoz esetn 0
lesz az rtke (akr skalr, akr tmb), karakterlnc esetn pedig a nulla karak-
terlnc. A vltozk a szvegkrnyezet alapjn automatikusan numerikus, vagy
string rtket kapnak. A stringek esetn az rtket macskakrmk kz kell tenni.
Pldul az
x = "4" + "8"
kifejezsben kt stringet adunk ssze, de mivel az awk ezt szmknt tudja rtel-
mezni, s gy az x vltozhoz 12-t rendel. Ha egyszer uen azt akarjuk, hogy egy-
ms utn kerljn a 4 s a 8 szmjegy (48-at mutatva), akkor nem kell a plusz jel.
Amennyiben a vltoz stringet tartalmaz, akkor numerikus kifejezsekben rtke
0 lesz.
Tmbkre a vltoz utn rt szgletes zrjelekkel hivatkozhatunk, ahol a
zrjelek kztt a tmb indexe ll. A tmbk mrett az awk automatikusan vl-
toztatja. A tmb indexe lehet szm is, de string is! (Ez utbbi esetben persze
kicsit nehzkes vgigmenni a tmb elemein, de erre val az awk sajt for Index
in Tmb ciklusa.) Pldul a bolha, elefnt s csiga szavak el ofordulst a be-
men o llomnyban a kvetkez o parancsokkal szmolhatjuk meg (mivel stringeket
keresnk, ezrt pl. a csigabiga kifejezs is a csiga csoportjba tartozik):
122 FEJEZET 10. LLOMNYOK FELDOLGOZSA
/bolha/ { x["bolha"]++ }
/elefant/ { x["elefant"]++ }
/csiga/ { x["csiga"]++}
END {print "bolha ", x["bolha"];
print "elefant ", x["elefant"];
print "csiga ", x["csiga"];}
Egy tmbnek tbb indexe is lehet, ezeket a szgletes zrjelen bell vessz ovel
kell elvlasztani.
A specilis vltozk az awk m ukdst befolysoljk. Itt csak a legfontosab-
bakat soroljuk fel, b ovebbet a
$ man awk
paranccsal tudhatunk meg.
FILENAME
Az aktulis feldolgozs alatt ll llomny teljes neve.
FNR
Az ppen feldolgozs alatt lv o rekordnak az aktulis llomnybeli sorszma.
FS
A beolvasott rekordokra vonatkoz mez o elvlasztkarakter, alapesetben a
szkz (ilyenkor a mez oket tetsz oleges szm szkz vlaszthatja el). Az
FS rtke lehet KRK (kiterjesztett regulris kifejezs) is.
NF
Az aktulis rekordban lev o mez ok szma, ami legfeljebb 99 lehet.
NR
Az ppen feldolgozs alatt ll rekord sorszma. Egy adatllomny esetn
megegyezik az FNR vltozval, de ez utbbi minden j llomny esetn nul-
lzdik.
OFS
A kirs sorn a mez oket elvlaszt karakter. Alaprtke a szkz. Pldul
a
$ awk {OFS=":"; print $1,$2} gyakorlas
a gyakorlas llomny minden sornak els o kt szavt :-al elvlasztva rja
ki.
ORS
A kirs sorn a rekordokat elvlaszt karakter. Alaprtke az jsor. Pldul
a
10.4. AZ AWK PROGRAMNYELV 123
$ awk {ORS="+"; print $0} gyakorlas
a gyakorlas llomny sorait egyben, csak egy + jellel elvlasztva rja ki.
RS
A bemeneti rekordokat elvlaszt karakter. Alaprtke az jsor. Ha nullra
lltjuk rtkt, akkor a rekordokat egy vagy tbb res sor vlasztja el egy-
mstl, s az jsor mindig mez o elvlaszt karakter lesz, fggetlenl az FS
rtkt ol.
10.4.8. Az awk utastsai
Az awknak rengeteg utastsa van. Itt csak a legfontosabbakat soroljuk fel. Az
utastsok kapcsos zrjelek kztt llnak. Tbb utastst is fel lehet sorolni, egy-
mstl pontosvessz ovel elvlasztva. Megjegyezzk, hogy a felhasznl maga is
rhat sajt fggvnyeket.
A kvetkez o matematikai opertorokat hasznlhatjuk a kifejezsekben: +, -,
/, ^, * % (sszeads, kivons, oszts, hatvnyozs, szorzs, s modulo). Pldul
a
$2=$1^$3
a msodik mez ohz az els o mez o harmadik mez obeli hatvnyt rendeli. A ++ s -
a C nyelvbeli inkrementlst s dekrementlst jelli (llhat mind a vltoz el ott,
mind utna). Ugyangy m ukdnek a C-ben megszokott rvidtsek is: +=, -=,
/=, *=.
Karakterlncokat a legegyszer ubben gy f uznk ssze, hogy egyms utn r-
juk oket. Pldul:
$3 = $1 $2.
Az awk fggvnyei
A beptett fggvnyek kztt tallhat a cos(x), sin(x), atan2(y,x), exp(x), log(x),
sqrt(x), int(x), rand(x) (cosinus, sinus, arcus tangens y/x radinban , e alap
hatvnyozs, termszetes alap logaritmus, ngyzetgyk, egszrsz, s egy 0 s 1
kztti vletlenszm). A karakterlncokkal a kvetkez o fggvnyek operlnak:
sub(KRK,Hely,[Vltoz])
A KRK-ban denilt, a Vltozban el ofordul els o egyez o karakterlncot
a Helyben denilt mdon lecserli. Ha nem adunk meg Vltozt, akkor
az egsz rekordot veszi. A fggvny visszatrsi rtke a helyettestsek
124 FEJEZET 10. LLOMNYOK FELDOLGOZSA
szma. Az & jel a Hely kifejezsben a Vltoz azon karakterlnct veszi
fel, amelyikre a KRK minta illett.
gsub(KRK,Hely,[Vltoz])
Ugyanaz, mint a sub fggvny, de a Kiterjesztett Regulris Kifejezs (KRK)
minden el ofordulst cserli.
index( String1,String2 )
Megmondja azt a pozcit (1-el kezdve), ahol a String2 kifejezs a String1-
ben kezd odik. Ha a String2 nem fordul el o a String1-ben, nullt ad.
length[(String)]
A String1 karakterlnc hosszt adja meg.
substr( String,M,[N] )
AStringben megadott karakterlncbl kivg az M. pozicitl Ndarab karak-
tert (ha N nincs megadva, akkor a String vgig).
tolower(String)
Kisbet ukk konvertlja a String rtkt, s azzal tr vissza.
toupper(String)
Nagybet ukk konvertlja a String rtkt.
sprintf(Formtum, Kifejezs1, Kifejezs2, ... )
A C nyelv szablyai szerint a megadott Formtumban kirja a felsorolt Kife-
jezseket, s az gy ltrejtt karakterlnccal tr vissza.
Az aritmetikai s karakterfggvnyeken kvl van mg nhny ltalnos fgg-
vny is. Az egyik leghasznosabb a system(Parancs), mely egy shell Parancsot
hajt vgre, s annak visszatrsi rtkvel tr vissza.
Felttelek
A legtbb awk feltteles kifejezs szintn a C nyelv alapjn pl fel. A feltteleket
a { } zrjelek segtsgvel csoportosthatjuk. A felttel s az annak teljeslse
esetn vgrehajtand parancs kln sorban is lehet, de egy sorba is rhat. Ha egy
felttel esetn tbb utastst is kiadunk, azokat kapcsos zrjelek kz, pontos-
vessz ovel elvlasztva egy sorban vagy kln sorban kell berni.
A C nyelv feltteles utastsai kzl az awk a kvetkez oket ismeri:
if (Kifejezs) { Utasts } [ else Utasts ]
Feltteles utastsvgrehajts a Kifejezs rtkt ol fgg oen.
while (Kifejezs) { Utasts }
Ciklus vgrehajtsa a Kifejezs rtkt ol fgg oen.
10.4. AZ AWK PROGRAMNYELV 125
for (Kifejezs1; Kifejezs2; Kifejezs3) { Utasts }
Ciklus vgrehajtsa a Kifejezsekben megadott rtktartomnyra.
break
A while vagy for cikluson bell a ciklusbl val kilpst jelenti.
continue
A while vagy for cikluson bell a ciklus kvetkez o tagjra val ugrst
jelenti.
A C nyelvt ol eltr o felttelek a kvetkez ok:
for(Vltoz in Tmb ) Utasts
A Vltoz rtkt a Tmb egyms utni indexeinek felelteti meg, s vgre-
hajtja az Utastst.
delete Tmb[Kifejezs]
Kitrli a Tmb Kifejezssel megadott index u elemt. Ha g egy tmb, akkor
a
for (i in g)
delete g[i];
kitrli a g tmb sszes elemt.
next
Befejezi az aktulis rekord feldolgozst, s a kvetkez o rekord feldolgo-
zst kezdi el az utastssorozat elejr ol.
exit [Kifejezs]
Vgrehajtja az ssze END ltal denilt parancsot, majd befejezi az awk
futst, s a Kifejezsben megadott rtkkel tr vissza. Az END parancs-
sorozaton bell kiadva nem hajtja vgre a tovbbi END parancsokat, hanem
kilp a programbl.
#
Megjegyzst rhatunk mg. Brhol kezd odhet a sorban, s az jsor karak-
terig tart.
Kirats
Az awkban kt parancs szolgl a kiratsra, a print s a printf.
A print a mgtte felsorolt kifejezsek rtkeit rja ki a standard kimenetre.
A kirs sorn a szkzzel vagy tabultorran elvlasztott kifejezseket kzvetlenl
egyms utn rja. A vessz ovel elvlasztott kifejezseket az OFS specilis vltoz
126 FEJEZET 10. LLOMNYOK FELDOLGOZSA
rtke vlasztja el egymstl (ez alapesetben a szkz), a sor vgn pedig az ORS
vltoz rtkt (alapesetben jsor) rja ki a print. A kimenetet tirnythatjuk a
parancs vgre rt >, > >, || szoksos tirnyt jelekkel, s utna megadjuk az
llomny nevt (ha magt az llomnynevet adjuk meg, tegyk idz ojelbe, hogy a
print karakterlncnak, s ne vltoznak gondolja), vagy a sz ur o esetn a parancs
nevt.
A printf parancs nagyon hasonlt a printre, de a kifejezsek el ott egy, a
kirs formtumt el or kifejezst vr. Ennek formtuma a C nyelvbeli szab-
lyokkal adhat meg. A formtum utn llhatnak a kiirand kifejezsek s esetle-
ges tirnytsok.
10.4.9. Pldk
A prog.f llomny hetedik sort a kvetkez o mdon rathatjuk ki:
$ awk NR == 7 { print } prog.f
A gyakorlas llomnybl az sszes Eb mintt a msodik mez oben tartalmaz
sort a kvetkez o paranccsal rathatjuk ki a sorszmmal egytt:
$ awk $2 /Eb/ { print NR, $0 } gyakorlas
A 72 karakternl hosszabb sorokat (FORTRAN programozk, gyelem!) a
kvetkez o mdon sz urhetjk ki a prog.f llomnybl:
$ awk length($0) >72 prog.f
Az utasts minden 72 karakternl hosszabb sort kivlaszt, s mivel nincs
utasts mellkelve kirja a standard kimenetre.
A kvetkez o plda minden sort kir a minta.txt llomnybl a start s stop
szavakat tartalmaz sorok kztt:
$ awk /start/,/stop/ minta.txt
Tegyk fel, hogy a berszam.fejts adatllomnyban a msodik oszlop a
brutt, az tdik pedig a nett brt tartalmazza. A kvetkez o paranccsal ssze-
gezhetnk a msodik s az tdik oszlopban:
$ awk -f ossz.awk berszam.fejtes
Itt az ossz.awk parancsllomny pldul a kvetkez oket tartalmazhatja:
{
sum2 += $2
sum5 += $5
}
END {
10.5. LLOMNYOK SORRENDBE RENDEZSE: A SORT UTASTS 127
print "Brutto ber: ", sum2, "Netto ber: ", sum5;
printf "Brutto atlag %f, netto atlag %f\n:", sum2/NR, sum5/NR;
}
A programllomnyban kt vltozt hasznlunk, s mivel nem adtunk nekik kez-
d ortket, ezrt azok nullrl indulnak. Nincs megadva sorkivlaszts, gy a prog-
ram minden sorra a sum2 vltozhoz a msodik, a sum5 vltozhoz az tdik osz-
lop rtkt adja hozz. A legvgn (l. END parancs) az awk kirja a msodik s
tdik oszlop sszegeit, valamint az tlagrtkeket is (az NR vltoz a beolvasott
rekordok (sorok) szmt tartalmazza).
A kvetkez o awk program az egymstl tetsz oleges (de legalbb egy) szm
vessz ovel, szkzzel vagy tabultorral elvlasztott mez ok esetn fordtott sorrend-
ben kirja az els o kt mez ot, majd az eredeti els o mez oben sszegez. Legvgl
kirja az sszeget s az tlagot:
BEGIN {FS = "[, \t]"}
{print $2, $1}
{s += $1}
END {print "az osszeg ",s,", atlaga ", s/NR }
Ha a kvetkez o sort betesszk a $HOME/.profile llomnyunkba, akkor az
itt ltrehozott REMOTE vltoz rtke megadja annak a gpnek a nevt, ahonnan
bejelentkeztnk:
export REMOTE=
\
who am i || awk {gsub("[()]","",$6); print $6}
\
10.5. llomnyok sorrendbe rendezse: a sort utasts
Az llomnyok bizonyos szempont szerinti sorrendbe ttelre, illetve a mr ren- sort
rvid lersa
a 33. oldalon
dezett llomnyok helyes sorrendben val sszef uzsre szolgl a sort parancs.
A parancs az argumentumban megadott llomnynevet (ennek hinyban a
standard inputot) rendezi, s az eredmnyt a standard kimenetre rja (kivve ha a
-o kapcsolval megadjuk a kimeneti llomny nevt). Tbb bemeneti llomny-
nevet is megadhatunk, ilyenkor a sort parancs sszef uzi oket, s az gy kapott
llomnyra vgzi el a rendezst. Az alaprtelmezsbeli rendezs az (angol) ABC
sorrend szerint trtnik.
A rendezs mez ok s oszlopok kijellsvel trtnhet. A mez o az elvlasz-
tkarakterek (ez ltalban a szkz s a tabultor) kztti karaktersorozat. Az
elvlasztkaraktert a -t kapcsolval adhatjuk meg. Az oszlop a mez on belli
karakterpozic. A mez o s/vagy az oszlop szmt rendezsi kulcsnak hvjuk.
128 FEJEZET 10. LLOMNYOK FELDOLGOZSA
A sort parancs a rendezst a megadott kulcsok sorrendjben vgzi, azaz
el oszr az els o kulcs szerint rendez, s a kulcson bell megegyez o sorokat a m-
sodik megadott kulcs alapjn rendezi tovbb (stb.).
A sort parancs kapcsoli kzl ha a -b, -d, -f, -i, -n s a -r kapcsolk
egy rendezsi kulcs el ott llnak, akkor mdostjk annak hatst. Ezek a kapcso-
lk nem llhatnak magukban a -k kapcsol utn. Ha ezek a kapcsolk a (-k-nl
szerepl o) n. KulcsDencihoz vannak rendelve, gy csak az adott rendezsi
kulcsra vonatkoznak. Amennyiben ezen kapcsolk egyike a +MSzm.OSzm vagy
-MSzm.OSzm kulcsok valamelyike utn fordul el o, csak arra a kulcsra fejti ki
hatst.
-A
Az ASCII szekvencia szerint vgzi el a rendezst (az alaprtelemzst a helyi
nyelvre is t lehet lltani).
-b
Figyelmen kvl hagyja a sor elejn ll szkzket vagy tabultorokat az
oszlopok kiszmolsnl.
-c
Lellen orzi, hogy a megadott llomny a megadott szablyok szerint sorba
van-e rendezve. Ha igen, nulla rtkkel tr vissza.
-d
ABC sorrend szerint vgzi a rendezst. Csak a bet uk, szmok s a szkzk
szmtanak.
-f
Rendezs el ott az sszes kisbet ut nagyra cserli.
-i
Figyelmen kvl hagyja az sszes nem nyomtathat karaktert az sszeha-
sonlts sorn.
-kKulcsDefinci
Egy keressi kulcsot denil, a kvetkez o formtumban:
[Kezd oMez o][.Kezd oOszlop][Mdost][,[VgMez o][.VgOszlop][Mdost]]
A szgletes zrjelek azt jelzik, hogy nem ktelez o megadni a bennk lev o
szmokat. A rendezs a Kezd oMez o Kezd oOszlopa s a VgMez o Vg-
oszlopa kztti karakterek szerint trtnik. A Mdost a b,d,f,i,n s
r rtkek valamelyike lehet. Hatsuk megfelel az azonos bet uvel jellt kap-
csolknak. A fenti mennyisgek alaprtkei: a Kezd oMez o a sor eleje, a
Kezd oOszlop az els o oszlop a mez oben, a VgMez o az utols mez o, s a
VgOszlop a mez o utols oszlopa. A
10.5. LLOMNYOK SORRENDBE RENDEZSE: A SORT UTASTS 129
-k 3.2,3r
kapcsol olyan rendezst jelent, melyben a 3. mez o 2. pozcijtl a 3.
mez o vgig (nincs kitve a VgOszlop) folyik a rendezs, fordtott sorrend-
ben (l. -r kapcsol). A fenti denci megadhat a -k kapcsol hasznlata
nlkl is, ha pl. a Kezd oMez o el plusz, a VgMez o el mnusz jelet runk.
Ilyenkor a + kapcsol jelzi az tugrand mez ok szmt, mg a - kapcsolval
adjuk meg azt a legutols mez ot, amelyik mg szmt. Az el oz o plda ezzel
a mdszerrel ezrt ilyen:
+2.1 -3r
-m
Tbb, mr rendezett llomnyt f uz ssze egy rendezett llomnyba.
-n
A szmokat tartalmaz mez oket a szmrtkk szerint rendezi. Mivel az
ASCII sorrend szerint pl. a 10 el obb van, mint a 2 (a 2-es szmjegyet
megel ozi az 1), a numerikus kifejezseket csak gy lehet sorbarendezni. A
numerikus mez o tetsz oleges szm szkzzel s tabultorral kezd odhet, tar-
talmazhat el ojelet, tizedes rtkeket, az ezreseket elvlaszt jelet. Minden
ms jel a felhasznl szmra is rdekes eredmnyt szolgltat.
-o llomny
A rendezs eredmnyt a megadott llomnyba irnytja. Megadhatjuk itt
ugyanazt az llomnynevet is, amelyiket ppen rendeznk.
-r
Megfordtja a rendezs sorrendjt.
-tKarakter
A megadott Karaktert tekinti a sort a mez oket elvlaszt karakternek.
-u
Ha a rendezs sorn tbb sort egyenrtk unek tall a sort, akkor a -u kap-
csol hatsra csak egyet r ki.
-T Knyvtr
Az sszes, a rendezs sorn hasznlatos tmeneti llomnyt a megadott
Knyvtrba helyezi. Akkor clszer u hasznlni, ha nagy llomnyt ren-
deznk, s a mi knyvtrunkban (le rendszer) kevs a hely.
Pldul rendezzk a kvetkez o minta.txt llomnyt klnbz o szempontok
szerint:
+Kalmanka 16
lajoska 4
Peterke 28
130 FEJEZET 10. LLOMNYOK FELDOLGOZSA
Jozsika 12
lajoska 34
peterke 28
Sanyika 111
A legegyszer ubb sorbattel a kvetkez o:
$ sort minta.txt
+Kalmanka 16
Jozsika 12
Peterke 28
Sanyika 111
lajoska 34
lajoska 4
peterke 28
A rendezs el oszr a jeleket, aztn a nagybet uket, utna a kisbet uket veszi
ABC sorrendben. Ha lexikograi rendezst hajtunk vgre a -d kapcsolval, ak-
kor az gyelmen kvl hagyja a jeleket, gy +Kalmanka a Jozsika s Sanyika
kz kerl. ASCII rendezs (-A kapcsol) esetn a jelek a kis s nagybet uk kz
kerlnek, s +Kalmanka Sanyika s lajoska kz kerl.
A kvetkez o parancs lexikograkus sorrendbe teszi az llomnyt gy, hogy
nem tesz klnbsget kis- s nagybet u kztt (l. -f kapcsol), s az ismtl od o
sorokat csak egyszer rja ki (l. -u kapcsol):
$ sort -d -f -u minta.txt
Jozsika 12
+Kalmanka 16
lajoska 34
lajoska 4
peterke 28
Sanyika 111
Most nemtesznk klnbsget kis- s nagybet u kztt, ezrt hinyzik a Peterke
28 sor is.
Rendezzk most az llomnyt a msodik mez o (szmok) szerint. A kvetkez o
parancs ABC sorrend szerint rendez, azaz minden 1-gyel kezd od o megel ozi a 2-
vel kezd od oket:
$ sort +1 minta.txt
Sanyika 111
Jozsika 12
+Kalmanka 16
Peterke 28
10.5. LLOMNYOK SORRENDBE RENDEZSE: A SORT UTASTS 131
peterke 28
lajoska 34
lajoska 4
A kvetkez o parancs a szmsorrend szerinti rendezshez szolgl:
$ sort +1 -n minta.txt
lajoska 4
Jozsika 12
+Kalmanka 16
peterke 28
Peterke 28
lajoska 34
Sanyika 111
Amikor a mez oket egymstl nem szkzk, hanem pldul kett ospontok v-
lasztjk el, mint pl. a /etc/passwd llomnyban, akkor meg kell adni az elv-
lasztkaraktert. A rendszer sszes felhasznljrl a
$ sort -t: +4 /etc/passwd
paranccsal kapunk a nevek szerinti ABC sorrendben listt (ha a rendszergazda
nem volt lusta, s berta a neveket).
132 FEJEZET 10. LLOMNYOK FELDOLGOZSA
11. fejezet
Archivls s archv llomnyok
hasznlata
A UNIX hasznlata sorn el obb-utbb szksgnk lesz nem csak egy le, hanem
egsz knyvtrak ill. knyvtrrendszerek archivlsra (elmentsre). Erre
tbb ms, hasonl parancs mellett (pl. cpio, backup/restore) a tar parancs
biztost knyelmes lehet osget. Gyakran az llomnyok klnsen az archv
llomnyok sok, ismtl od o rszt tartalmaznak, s ezrt jl tmrthet ok: erre a
pack vagy a compress utastst hasznlva kb. felre cskkenthet o az llomnyok
mrete. Ezek az utastsok minden UNIX rendszerben ugyangy m ukdnek, ezrt
jl hasznlhatk klnbz o tpus rendszerek kztti adatcserre is: pl. az egyik
gpen ltrehozott tar llomnyt egy msik tpus gp is szt tud csomagolni.
A programok mellett tbb, els osorban DOS-os krnyezetb ol szrmaz pub-
lic domain archvl program is megjelent a UNIX vilgban (pl. arc, zoo, zip
stb.). Ezek hasznlata azonban csak a DOS fel trtn o adattvitelnl s csak
el ozetes kiprbls utn ajnlott: az ilyen programokkal szinte mindig verzibeli
(inkompatibilitsi) problmk lpnek fel, gyakran a DOS-ban rt tmrtett l-
lomnyt a UNIX nem tudja olvasni s viszont. J megolds lehet viszont a tar s
a compress IBM PC-n val hasznlata.
A klnbz o binris llomnyokat (amik lehetnek pl. archv llomnyok vagy
fordtprogrammal s linkerrel ltrehozott programok) elektronikus levlben csak
ASCII formtumba val talakts utn tudjuk tvinni. A kt leggyakoribb ilyen
kdolsi eljrst a tradicionlis uuencode/uudecode, illetve a hatkonyabb atob/btoa
parancsprral hasznlhatjuk.
Anagy llomnyokat az E-levlben trtn o tovbbtshoz clszer u feldarabolni.
Erre a split parancsot hasznljuk.
133
134 FEJEZET11. ARCHIVLS S ARCHVLLOMNYOKHASZNLATA
11.1. Knyvtrak archivlsa
11.1.1. A tar parancs
A tar parancs knyvtrak ill. knyvtrrendszerek archivlsra szolgl. Az
utasts archv llomnyknt nemcsak a lerendszer egyik llomnyt tudja kezelni,
hanem kzvetlenl is rhatja/olvashatja pl. a kls o szalagos eszkzt (tape).
A tar parancs ltalnos alakja a kvekez o:
$ tar [ Opcik ] -f Archvllomny llomny(ok)
A tar parancsban az llomny(ok) nevnek mrete nem haladhatja meg a 100
karaktert.
Leggyakoribb opciknt a kvetkez o kapcsolk hasznlatosak
1
:
-c Egy j Archvllomnyt hoz ltre a -f kapcsolval megadott nven, majd
belerja a megadott llomny(ok)at.
-r A megadott Archvllomny vghez rja az llomny(ok)at. Ez az opci a
szalagos egysgnl nem hasznlhat.
-u Amegadott Archvllomny vghez rja az llomny(ok)at, amennyiben azok
nem szerepelnek az Archvllomnyban, vagy az archivls ta megvltoz-
tak. Az opci a szalagos egysgnl nem hasznlhat.
-t Kilistzza az Archvllomny tartalmt.
-v Kirja az egyes llomnyok nevt, ahogy azokra sor kerl a feldolgozs sorn.
-x Kiolvassa az Archvllomnybl a megadott llomnyokat. Ha az
llomny(ok)at nem adjuk meg, akkor az sszes llomnyt kiolvassa az
archv llomnybl. Ha a megadott llomny ugyanazon a nven tbbszt
is szerepel, akkor csak a legutols vltozatot olvassa el (l. a -u s -r kap-
csolkat). Vigyzat! A helyettest o karakterek nem a megszokott mdon
m ukdnek (a 139. oldalon egy jl m ukd o vltozat lthat).
-f Archvllomny
Megadja a hasznland Archvllomny nevt. Amennyiben ennek a -
(mnusz jel) rtket adjuk, a tar a standard inputrl olvas, ill. a standard
outputra r.
1
Megjegyzend o, hogy a kapcsolkat egyben szoktuk megadni, azaz -xvf s nem -x -v
-f. Erra azrt van szksg, mivel bizonyos UNIX rendszerek mskppen nem tudjk helyesen
rtelmezni.
11.1. KNYVTRAK ARCHIVLSA 135
-b Blokkmret
A rekordok mrtett adja meg 512 byte mret u blokkokban. A Blokkmret
alaprtelmezsben 20, ami egyben a maximum is egyes UNIX rendszerek-
ben. Ez az rtk megfelel hlzaton keresztli mentsre is, mivel a rekor-
dok ilyenkor mg nem nagyon szegmentldnak a TCP/IP tvitelben. Ha
nagyobb Blokkmretet vlasztunk, az adathordoz tbb adatot tud trolni.
Amennyiben nem a 20-as rtket hasznljuk, er osen ajnlott ezt az adathor-
dozn feltntetni a ks obbi frusztrcik elkerlsre.
-B Hlzati ments vagy visszallts sorn hasznlni kell ezt a kapcsolt. Ha-
tsra a tar addig vr, amg a kommunikcis csatornban nem gy ulik
ssze egy rekordnyi adat.
-h Kveti a szimbolikus linkeket, azaz a linkekkel megadott llomnyokat s
knyvtrakat is elmenti. A tar alaprtelmezsben csak a szimbolikus link
informcit rja be az archv llomnyba.
-p A kiolvasott llomnyokat az eredeti, az archv llomnyban trolt vdelmi
kdokkal, felhasznli s csoport azonostkkal ltja el.
-C Knyvtr Amennyiben a felsorolt llomnyok el ott a -C Knyvtr kifejezs
van, a tar egy cd utastst hajt vgre a Knyvtrban. A paranccsal csak
abszolt knyvtrneveket adhatunk meg, s az elmentend o llomnyokat is
egyenknt kell felsorolnunk.
-d A tar a kapcsol hatsra a klnleges (res knyvtr, hardver le, FIFO,
stb.) llomnyokat is helyesen kezeli el. Ezt az opcit a tar nem minden
UNIX rendszerben ismeri.
Pldkat a tar parancs hasznlatrl a 11.1.4 fejezetben, a 138. oldalon tall- tar
pldk a 138.
oldalon
hatunk.
11.1.2. A dd adatkonvertl utasts
A dd parancs adatok formtumnak talaktsra hasznlatos a
dd [Opci=rtk]
alakban. Mret megadsakor hasznlhatjuk az rtk utn a b jelzst, ami 512
byte-os egysget, s a k jelzst, ami 1024 byte-os egysget jell. A leggyakrab-
ban hasznlt Opcik a kvetkez ok:
if=llomnynv
A bemeneti le neve. Alaprtelmezsben ez a standard input.
136 FEJEZET11. ARCHIVLS S ARCHVLLOMNYOKHASZNLATA
of=llomnynv
A kimeneti le neve. Alaprtelmezsben ez a standard output.
bs=Mret
A blokkok mrete byte-ban. Mrete alapesetben gpfgg o, ltalban 512
byte, de van, amikor 1024 byte. Fellbrlja az ibs s obs kapcsolkat.
ibs=Mret
A bemeneti blokkok mrete byte-ban. Amennyiben a Mret utn egy b-t
runk, akkor a tar-nl megismert 512 byte mret u egysgeket hasznl (pl.
ibs=20b).
obs=Mret
A kimeneti blokkok mrete byte-ban. Amennyiben a Mret utn egy b-t
runk, akkor a tar-nl megismert 512 byte mret u egysgeket hasznl (pl.
obs=20b).
skip=Szm
A msols megkezdse el ott a dd tugorja Szmmal megadott blokkot.
conv=ascii
Az EBCDIC-r ol ASCII-ra alakt.
conv=ebcdic
Az ASCII-rl EBCDIC-re alakt.
conv=block
A vltoz hosszsg rekordokat x hosszsgv alaktja.
conv=unblock
A x hosszsg rekordokat vltoz hosszsgv alaktja.
conv=lcase
A bet uket kisbet uv alaktja.
conv=ucase
A bet uket nagybet uv alaktja.
cbs=Mret
A konverzis blokkok mrett adja meg byte-ban. Csak a conv opcival
egytt hasznljuk. A Mrettel megadott szm karakter kerl egyszerre
konverzira. Az ascii s az unblock konverzinl a vezet o szkzket a
dd gy levgja, s egy jsor karakter kerl a sor vgre. Az ebcdic, ibm s
block talaktsnl a Mrettel megadott szm karakter kerl a bufferebe,
majd a dd res karakterekkel tlti fel a kimeneti blokkmretre a blokkot.
Pldul egy gyakorlas ASCII llomnyt a kvetkez o paranccsal konvertl-
hatunk t az ejnye EBCDIC llomnyba:
11.1. KNYVTRAK ARCHIVLSA 137
$ dd if=gyakorlas of=ejnye conv=ebcdic
Egy, a /dev/rmt0h eszkzben lv o EBCDIC szalagot, amely tz 80 byte mret u
virtulis EBCDIClyukkrtyt tartalmaz rekordonknt, a ejnye ASCII llomnyba
a
$ dd if=/dev/rmt0h of=ejnye ibs=800 cbs=80 conv=ascii,lcase
parancs alakt.
Add parancs hasznlatrl tovbbi pldkat a 11.1.4 fejezetben, a 138. oldalon dd
pldk a 138.
oldalon
tallhatunk.
11.1.3. Mgnesszalagos egysgek
A szalagos egysgeket az mt parancson keresztl vezrelhetjk:
mt [-f Eszkz] Parancs [Szm]
Az Eszkzre a /dev knyvtrban tallhat specilis llomny(ok)on keresztl
hivatkozhatunk, melyek neve gpenknt ms s ms lehet. Emellett a szalagos
egysg klnbz o zemmdjaihoz (rss ur usg, stb.) is klnbz o llomnyok
tartoznak. Az ppen hasznlhat eszkzkr ol a rendszergazda adhat felvilgostst:
ennek hinyban SUN rendszereknl a /dev/rst0, IBM AIX rendszereknl a
/dev/rmt0, mg DEC Ultrix rendszereknl a /dev/rmt0h eszkzket prbl-
hatjuk meg hasznlni. A felsorolt eszkzk rs vagy olvass utn azonnal visz-
szatekerik a szalagot, s ezrt ltalban ltezik n. nem visszacsvl o (no rewind)
vltozat is: ehhez az egysg neve el egy n bet ut kell illeszteni. Pldul ha a
/dev/rmt0h eszkz helyett a /dev/nrmt0h eszkzre hivatkozunk, akkor a szala-
gos egysg nem fog automatikusan visszacsvlni.
Amennyiben nem adunk meg eszkzt a -f kapcsolval, akkor az mt meg-
prblja a TAPE krnyezeti vltzban denilt eszkzt hasznlni.
A leggyakrabban hasznlatos Parancsok a kvetkez ok (a Szm alaprtelme-
zsben egy):
bsf
A megadott Szm le vge (EOF, End of File) karaktert lp vissza a sza-
lagon. A szalag az EOF jel szalagkezdeti oldalra ll r.
bsr
A megadott Szm rekordot lp vissza.
138 FEJEZET11. ARCHIVLS S ARCHVLLOMNYOKHASZNLATA
fsf
A megadott Szm llomnyt lp el ore a szalagon.
fsr
A megadott Szm rekordot lp el ore.
rewind
Visszacsvli a szalagot.
retension
Teljesen el oretekeri a szalagot, majd visszacsvli. Hatsra a szalag fe-
szltsgmentes lesz.
status
Kijelzi a szalagos egysg llapott.
eof
Az adott szalagpozcira llomnyvg (EOF, End of File) karaktert r.
erase
Letrli a szalagot.
A kvetkez o pldkban a /dev/nrmt0h mgnesszalagos eszkzt kezeljk:
Krdezzk le a szalagos egysg llapott:
$ mt -f /dev/nrmt0h status
A kvetkez o parancs visszatekeri a szalagot:
$ mt -f /dev/nrmt0h rewind
Hrom le-t a kvetkez o paranccsal lphetnk vissza:
$ mt -f /dev/nrmt0h bsf 3
Kt EOF karatert a
$ mt -f /dev/nrmt0h eof 2
utasts r a szalagra.
11.1.4. Pldk archivlsra
A pldkban a /dev/nrmt0h mgnesszalagos eszkzt hasznljuk.
Az aktulis knyvtrrl s annak alknyvtrairl a kvetkez o utastssal k-
szthetnk tar mentst:
$ tar -cvf /dev/rmt0
11.1. KNYVTRAK ARCHIVLSA 139
Az allomany1 s allomany2 llomnyokat a kvetkez o utastssal rhatjuk
szalagra:
$ tar -cvf /dev/rmt0 allomany1 allomany2
Az sszes llomnyt a szalagrl a
$ tar -xvf /dev/rmt0
parancs lltja vissza. A visszallts a szalagon megadott nvre trtnik, azaz pl.
a /tmp/test.1 nev u llomnyt a /tmp/test.1 llomnyba, mg a tmp/test.1
nev u llomnyt az aktulis knyvtr alatti ./tmp/test.1 llomnyba rja.
A /usr/local/doc knyvtrat a
$ tar -cvf /dev/rmt0 -C /usr/local doc
utastsssal menthetjk el. Ennek hatsra a szalagon keletkez o llomnyok nevei
a /usr/local/doc/ helyett csak a doc/ rszt fogjk tartalmazni.
Az sszes llomnyt a szalagon a
$ tar -tvf /dev/rmt0
parancs listzza ki.
Az innen knyvtrat a kvetkez o parancs msolja t az oda knyvtrba az
alknyvtrakkal egytt
$ cd innen; tar -cvf - . || (cd oda; tar -xBpf -)
Acompress utastssal (l. a 11.2.1 fejezetet a 140. oldalon) tmrtett test.tar.Z
llomnyt a
$ zcat test.tar.Z || tar -tvf -
vagy az ezzel egyenrtk u
$ cat test.tar.Z || uncompress | tar -tvf -
parancs listzza ki.
Mivel a kifejezseket a tar nem a megszokott formban kezeli, ezrt pl. az
sszes, a gon mintt tartalmaz nev u llomnyt a
$ tar -xvf... /dev/rmt0
\
tar -tf /dev/rmt0 || grep gon
\
utastssal llthatunk vissza. Megjegyezzk, hogy a parancs futsa meglehet osen
lass, valamint elg knnyen tllphetjk a parancssor maximlis hosszt (ami
ltalban nhny ezer karakter).
Az allomany1 s allomany2 llomnyokat a kvetkez o utastssal rhatjuk
szalagra 20 blokkos mretben a dd parancs hasznlatval:
$ tar -cvf - allomany1 allomany2 || dd of=/dev/rmt0 obs=20b
Tegyk fel, hogy a szalagon egyms utn kt archvum van rgztve. Az
elolvasshoz el oszr tekerjk vissza a szalagot (gyeljk meg, hogy itt mr min-
140 FEJEZET11. ARCHIVLS S ARCHVLLOMNYOKHASZNLATA
denhol a vissza nem csvl o /dev/nrmt0 llomnyt hasznljuk):
$ mt -f /dev/nrmt0 rewind
Ezutn olvassuk ki az els o llomnyt:
$ tar -xvf /dev/nrmt0
A szalag az olvass vgn nem a kvetkez o llomnyon ll, hanem az EOF (l-
lomny vge) jelen. Ez lpjk t:
$ mt -f /dev/nrmt0 fsf 1
Ezutn kiolvashatjuk az kvetkez o llomnyt:
$ tar -xvf /dev/nrmt0
A hlzaton keresztl is hasznlhatjuk a ms gpen elhelyezett szalagos egy-
sgeket: ehhez a clgpre rsh utastssal be kell tudnunk lpni (ennek belltst
l. a rlogin s rsh parancsokat a 216. oldalon). Pldul az anglia tvoli gpre a
kvetkez o utasts kszt archv llomnyt:
$ tar -b 20 -cvf - * || rsh anglia dd of=/dev/rmt0 obs=20b
A tvoli gpen elhelyezett archv llomnyt a
$ rsh -n anglia dd if=/dev/rmt0 bs=20b || tar -xvBb 20 -f -
paranccsal szedhetjk szt.
11.2. Tmrt o programok
11.2.1. A compress eljrs
A compress parancs az n. Lempel-Ziv eljrssal tmrti az llomnyt. Az
eljrs az ismtl od o rszeket rvidebb kifejezsekkel helyettesti, s gy tipikusan
kb. felre cskkenti egy llomny mrett. Az eljrs dinamikusan m ukdik,
nincs szksg a teljes llomny ismeretre, ezrt pipe-ban is hasznlhat. A
tmrtett llomny a .Z vgz odst kapja meg.
Atmrtett llomnyokat az uncompress parancs segtsgvel llthatjuk visz-
sza. Sikeres visszallts utn az uncompress kitrli a tmrtett le-t.
A zcat parancs a standard outputra rja ki az eredeti le tartalmt.
Pldul a gyakorlas.o llomnyt a kvetkez o paranccsal tmrthetjk ssze:
$ compress gyakorlas.o
A gyakorlas.o llomny visszalltsa a kvetkez o paranccsal trtnik:
$ uncompress gyakorlas.o.Z
11.3. KDOLSI ELJRSOK 141
Egy tar mentst a kvetkez o utastssal tmrthetnk s rhatunk szalagra :
$ tar -cvf - allomany1 allomany2 || compress | dd of=/dev/rmt0 obs=20b
Az elmentett archvumot a
$ dd if=/dev/rmt0 ibs=20b || uncompress | tar -xvBf -
parancs lltja vissza.
11.2.2. A pack eljrs
A pack parancs az n. Huffmann eljrssal tmrti az llomnyt. Az eljrs
a karaktereket gyakorisguk alapjn rvidebb bitmintkkal helyettesti, s gy kb.
ktharmadra (esetleg felre) cskkenti egy llomny mrett. Az eljrshoz a
teljes llomny ismerete szksges, azaz nem m ukdik dinamikusan ezrt pipe-
ban nem hasznlhat. Az eljrs lass, s csak ritka, klnleges esetekben tmrt
jobban a compressnl. A tmrtett llomny a .z vgz odst kapja meg.
A tmrtett llomnyokat az unpack parancs segtsgvel llthatjuk vissza.
A sikeres visszallts utn a tmrtett le kitrl odik.
A pcat parancs a standard outputra rja ki az eredeti le tartalmt.
11.3. Kdolsi eljrsok
11.3.1. Az uuencode/uudecode parancs
Az uuencode parancs segtsgvel egy binris llomnyt (pl. tar archvum, fut-
tathat le, magyar kezetes llomny) az ASCII karaktertartomnyba kdol-
hatunk t. Erre pl. levl kldsnl van szksgnk: a UNIX elektronikus le-
veleket tovbbt programja csak 7 bitet (azaz az ASCII tartomnyt) viszi t (l. a
213. oldalt), s ezrt binris llomnyok kzvetlen kldsre nem alkalmas.
A kdolsi eljrs 3 byte-ot 4 ASCII karakterr (+ a kontroll informci)
alakt, azaz kb. 35%-kal megn o a le mrete. Ennek ellenre lass vonalakon
rdemes egy szveges llomnyt el oszr tmrteni (tipikusan 50%-ra), majd ezt
az llomnyt uuencode-olni: a le mrete gy kb. 30%-kal cskken.
A parancs ltalnos alakja a kvetkez o:
uuencode [llomny] Tvolillomny
Az utasts a megadott Tvolillomny nven kdolja a bemeneti llomnyt, ill.
142 FEJEZET11. ARCHIVLS S ARCHVLLOMNYOKHASZNLATA
annak hinyban a standard inputot. A vgeredmny a standard outputon jelenik
meg.
Pldul a gyakorlas.tar llomnyt a
$ uuencode gyakorlas.tar gyakorlas.tar >gyakorlas.uue
utastssal kdolhatjuk.
A kdolt llomnybl a uudecode parancs lltja vissza az eredeti le-t a
uuencodeban megadott Tvolillomny nven.
Az el oz o gyakorlas.uue llomnybl az eredetit a
$ uudecode gyakorlas.uue
utasts bontja ki.
11.3.2. A btoa/atob eljrs
A btoa sz ur outasts binris llomnyt olvas be a standard inputon, majd ezt
ASCII karakterekkel kdolva kirja a standard outputon. A kdbl a szintn
sz ur oknt m ukd atob utasts lltja vissza az eredeti llomnyt.
A btoa eljrs egy kompakt, 85-s szmrendszer u eljrst hasznl, gy 4 byte-
bl 5 byte lesz. Az eljrs gazdasgosabb a tradicionlis uuencode mdszernl,
de nem minden UNIX rendszer rsze.
11.3.3. llomnyok sztdarabolsa
Nhny elektronikus hlzat (pl. a BITNET) a nagyon nagy (kb. 100 kbyte
feletti) elektronikus leveleket nem kpes tovbbtani. Az Interneten ugyan nincs
ilyen korlt, mgis rdemes a nagyon nagy (2-300 kbyte feletti) llomnyokat
feldarabolni, ha azokat valamilyen okbl levlben akarjuk elkldeni. Egy na-
gyobb llomnyt tbb kisebb le-ra szvegszerkeszt ovel is feldarabolhatunk, et-
t ol a fradsgos (mi tbb, knnyen elhibzhat) m uvelett ol a split parancs kml
meg minket. A parancs alakja a kvetkez o:
split [-Szm] [llomny [Prefix] ]
Az utasts a megadott llomnyt (alapesetben a standard inputot) Szmnyi
(alapesetben 1000) sorral rendelkez o llomnyokra bontja. Az llomnyok neve a
Prex-szel (alapesetben ez x) kezd odik, s vgz odsk el oszr az aa, majd az ab
stb. rtkeket veszi fel, a legutols a zz lesz. Ilymdon legfeljebb 676 llomnyra
bonthatjuk a bemeneti llomnyt.
A split soronknt kpes darabolni az llomnyokat. Binris llomnyok
sztbontshoz hasznlhatjuk a hasonl bsplit parancsot, amely tekintve,
11.3. KDOLSI ELJRSOK 143
hogy kzprogram nem tallhat meg minden UNIX rendszeren.
Pldul a hosszufile llomnyt a kvetkez o utastssal bonthatjuk fel rovid
kezdet u, 100 sort tartalmaz darabokra:
$ split -100 hosszule rovid
Az utasts ltrehozza a rovidaa, rovidab, stb. llomnyokat. Tegyk fel, hogy
nincsen ms rovid kezdet u llomny a knyvtrban. Ekkkor a
$ cat rovid* > ujhosszule
parancs visszalltja a hosszufile-t ujhosszufile nven.
144 FEJEZET11. ARCHIVLS S ARCHVLLOMNYOKHASZNLATA
12. fejezet
Programok fordtsa s futtatsa
A UNIX opercis rendszerben lehet osg van arra, hogy ne csak a UNIX el ore
denilt parancsait s parancsllomnyokat (script) futtassunk, hanem ms magas
szint u programnyelvben rt progamokat is.
A UNIX, ms nagygpes rendszerekhez hasonlan a forrskdbl els o lps-
ben egy n. object llomnyt hoz ltre. Az object llomnybl az n. linkels
sorn jn ltre a futtathat llomny, amely mr a CPU-nak szl gpi kd
utastsokat tartalmazza. A fordts ilyen mdon trtn o kt lpsre bontsval
lehet ov vlik, hogy tbb nyelvb ol szrmaz forrskdot is egy futtathat llo-
mnyba egyestsnk, mivel az object llomnyok formtuma mindig azonos.
A sztvlaszts msik kvetkezmnye, hogy a klnbz o program-knyvt-
rakban trolt rendszer s felhasznli fggvnyek hozzf uzse (linkels) is elvlik
a forrsnyelvi fordtstl.
A UNIX rendszerben lehet osg van sajt knyvtr ltrehozsra is az object
llomnyokbl.
A UNIX rendszer lehet osget nyjt a futtathat llomnyoknl a hibakeressre
s nyomkvetsre (debug). A debugnak klnbz o szintjei lteznek a gpi kdtl
egszen a forrsnyelvben val visszakeressig. A UNIX alaprtelmezsben betesz
bizonyos alapvet o debug informcikat a futtahat llomnyokba. Amennyiben
biztosak vagyunk, hogy a futtathat llomnyban lev o debug informcikra nincs
szksgnk, akkor helytakarkossg s sebessgnvels cljbl a strip parancs-
csal azokat kitrlhetjk.
ltalban minden UNIX alaprtelmezsben tartalmazza a C fordtt, linkert
s a loadert, valamint kiegsztsknt beszerezhet ok C++, FORTRAN, Pascal,
COBOL, Ada s ms magasszint u programnyelvek fordti is. Megjegyzend o,
hogy a GNU project keretben elrhet o a teljes GNU fordtcsald (C, C++, FOR-
145
146 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
TRAN, Pascal, Ada, debugger, stb.). Ezek a j min osg u programok relis alter-
natvi a gyri fordtknak, radsul trtsmentesen beszerezhet ok.
12.1. A UNIX C Fordt (cc)
A UNIX opercis rendszer standard C fordtja acc. Hasznlata:
$ cc [ Opci | llomny ] Aklnbz o UNIXrendszerek rendelkezhetnek mg ms
C fordtval is (pl. az IBM RS/6000 alap C fordtja az xlc), de a cc parancsot
szinte mindegyik ismeri.
A parancsok feldolgozzk az assembler s az object llomnyokat is. Hacsak
a -c opcit nem lltjuk be, a parancsok behvjk a linkel o programot is. Az llo-
mnynevek kiterjesztsre a kvetkez o konvenci hasznlatos:
.c C forrskd
.i preprocesszlt C forrskd
.o object llomny (az ld parancs dolgozza fel)
.a object knyvtr (az ld parancs dolgozza fel)
.s assembler forrskd
A parancsok opcijaknt a kvetkez ok llhatnak:
Egy kapcsols opcik:
-#
Rszletes informcit kzl a fordts menetr ol, de maga nem hv be sem-
milyen programot.
-c
Csak fordtst vgez, a linkel o programot nem hvja be.
-DNv [= Definci]
A Nv szt gy tekinti, mintha #define-ban szerepelne. Ha a Dencit
nem adjuk meg, az 1 rtket veszi fel.
-E
Csak preprocesszlst vgez el, fordtst nem. Akimenet a standard kimenet.
-g
Debug informcikat is belefordt.
12.1. A UNIX C FORDT (CC) 147
-IKnyvtr
A nem teljes knyvtrnvvel megadott include llomnyokat a Knyvtrban
keresi.
-lObjectKnyvtr
A libObjectKnyvtr.a fordtsi knyvtrllomnyt keresi.
-LKnyvtr
A -l opcival megadott fordtsi knytrllomnyok helyt adja meg.
-oNv
Afordts eredmnyeknt ltrejv o (ltalban vgrehajthat) llomny neve.
Alapesetben a Nv a.out, ha futtathat llomny a cl, az object llomny
pedig a .o kiterjesztst veszi fel a .c helyett.
-O
Optimalizcit hajt vgre.
-p
Egyszer u prole-t (futtats kzbeni informcik gy ujtst lehet ov tev o k-
dot) generl a forrskdhoz.
-pg
Rszletesebb prole-t generl a forrskdhoz.
-P
Csak preprocesszlst vgez, fordtst nem. A kimenet egy .i kiterjeszts u
llomny. (A kapcsolt bizonyos UNIX rendszerek nem ismerik).
-UNv
Megsznteti a nv dencijt gy, mintha az #undef direktvt adtuk volna
meg a programban.
-v
Rszletes informcit kzl a fordts menetr ol.
-w
Nem r ki informcis s gyelmeztet o zeneteket.
-yKulcs
A lebeg opontos kifejezsek futs kzbeni kerektst hatrozza meg. A
Kulcs a kvetkez ok valamelyike lehet:
n : a legkzelebbi rtkre kerekt
m : mnusz vgtelen fel kerekt
p : plusz vgtelen fel kerekt
z : a nulla fel kerekt
148 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
Az egyb opcikat a kvetkez o mdon adjuk meg:
-qOpci
ahol az Opci ki/be kapcsolknt van megadva. Pldul a -qOpci bekapcsolja
az Opci opcit, mg a -qnoOpci kikapcsolja azt (pl. ha Opci=source, akkor a
-qsource kapcsol forrskd listt kszt, mg a -qnosource megakadlyozza
ilyen lista ksztst). A kvetkez okben felsorolt opcik fellbrljk az eredeti
fordtsi belltst:
attr A hivatkozott neveket felsorolja attribtumaikkal.
extchk Ellen orzi az eljrsoknak tadott rtkek konzekvens hasznlatt.
list Object listt generl.
listopt A listba berja az sszes opci belltott rtkt.
source Forrskd listt generl.
stat Id o- s mrettblzatot is generl a forrskd listba.
xref Kereszt-referencia listt kszt a hivatkozott nevekr ol.
12.2. A UNIX FORTRAN fordt (f77)
A UNIX opercis rendszerben a standard Fortran fordt azf77:
$ f77 [ Opci ] [ llomny ]
A klnbz o UNIX rendszerek rendelkezhetnek mg ms FORTRAN fordt-
val is (pl. az IBM RS/6000 alap FORTRAN fordtja az xlf).
Az f77 parancs a FORTRAN forrskd llomnyokat fordtja le. FORTRAN
programokon kvl assembler gpi kd, valamit object llomnyokat is feldol-
goz. Amennyiben nem adtuk meg a -c opcit, az f77 parancs behvja a linkel o
programot is, mely a ksz futtathat llomnyt lltja el o. A parancs bemen o l-
lomnya(i) a kvetkez o tpus(ak) lehet(nek):
.f kiterjeszts u FORTRAN forrskd
.o kiterjeszts u object le az ld parancs szmra
.s kiterjeszts u gpi kd forrsprogram
A leggyakrabban hasznlt opcik nagy rsze (# c g I l L o O v w y) meg-
egyezik a C fordtval. A klnbsgek:
-1 A DO ciklust legalbb egyszer lefutattja.
12.3. A PASCAL FORDT 149
-C Futs kzben ellen orzi a tmbkre alkalmazott indexeket (nem lptk-e tl
a tmb denilt mrett), illetve a karakterlncokat.
-D Azokat a sorokat is lefordtja a FORTRAN forrskd programbl, melyek
els o sorban D bet u ll.
A -q utni opcik j rsze is (extchk, list, listopt, source, stat, xref) meg-
egyezik a C fordtnl lertakkal. Az eltrsek:
dpc A lebeg opontos llandkat dupla pontosan kezeli.
extchk Ellen orzi az eljrsoknak tadott rtkek, valamint a common blokkok kon-
zekvens hasznlatt.
extname Minden external neve el egy alhzs karakert tesz (kivve a MAIN prog-
ramok neve). Ez olyankor hasznos, amikor klnbz o nyelveken rt
1
prog-
ramokat kevernk.
noobj Nem hozza ltre az object llomnyt.
recur Lehet ov teszi rekurzv alprogramok rst.
12.3. A Pascal fordt
A UNIX opercis rendszerben a Pascal fordtnak nincsen ltalnos neve (lehet-
sges pl. pc, pascal). Pldul az IBM RS6000 rendszereken a Pascal fordt
formtuma:
xlp [Opci] [ llomny ]
ltalban hasonl a tbbi gpen is a parancs kiadsa. A fordt pontos nevt a
$ apropos pascal
vagy a
$ man -k pascal
paranccsal nzhetjk meg (esetleg a rendszergazdt is megkrdezhetjk). A hasz-
nlhat opcik nagyrszt megegyeznek a C s FORTRAN rszben felsorolt op-
cikkal.
1
C s FORTRAN programokat hasznlk gyelmbe ajnljuk a cfortran programcso-
magot, amely a kt nyelv egyszerre val hasznlatt jelent osen egyszer usti. A programcsomag
pl. az ftp.elte.hu gpen anonymous ftp-vel (l. 217. oldal) tallhat meg.
150 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
12.4. A UNIX fordti knyvtrkezelse (ar, ranlib)
A UNIXban a fordtsi (object) knyvtrak kezelsre az ar parancs szolgl:
$ ar [ -Kapcsol(k) [ File ] Archvllomny llomny(ok)
Az ar parancs egy vagy tbb llomnyt r vagy trl az Archvllomnyba speci-
lis formtumban. Az n. headereket knnyen thelyezhet o mdon trolja, object
knyvtr ltrehozsakor, illetve fellrsakor mindig jrapti a szimblum-tblt.
Az ld(linkel o) program ezeket az archv llomnyokat hasznlja fel a vgrehajt-
hat program ksztsre. Az archv llomny formtumt a /usr/include/ar.h
llomny rja le. Az archv llomnyon bell nvismtls is el ofordulhat, s ilyen-
kor szmt a sorrend. Egyes gpeken gyelni kell, hogy az egymsra hivatkoz
llomnyok az object knyvtron bell megfelel o sorrendben legyenek. Az IBM
AIX nem kveteli meg az object knyvtrllomny ilyen szigor felptst. A
parancs kapcsoli is vltozhatnak gpr ol gpre. Itt a IBM RS6000 AIX f obb
kapcsolit ismertetjk:
a File A File-lal megjellt llomny utn helyezi be a megnevezett llomnyokat.
b File A File-lal megjellt llomny el helyezi be a megnevezett llomnyokat.
c Nem rja ki az object knyvtr ltrehozsakor szoksos zenetet.
d Kitrli a megadott llomnyokat az object knyvtrbl.
l Az tmeneti llomnyokat az aktulis knyvtrba helyezi, s nem a /tmp
knyvtrba. (Akkor clszer u hasznlni, ha a /tmp-ben kevs a hely).
o Egyms utn rendezi az llomnyokat, s kompresszlja az archv llomnyt.
Az archv llomnyban trolt UNIX llomnyok nem szksgszer uen van-
nak egyms utn elhelyezve. Pldul, ha trlnk vagy tmozgatunk egy
llomnyt, fel nem hasznlt szabad hely keletkezhet az archv llomnyon
bell. Ez az opci jrapti az archv llomnyt gy, hogy az llomnyokat
egyms mg helyezi, s az sszes szabad helyet megsznteti.
p Kirja a standard kimenetre a megnevezett llomny, vagy az sszes (ha
nem adunk meg llomnynevet), az Archvllomnyban tallhat llomny
tartalmt.
q A megadott llomnynevet az object knyvtr vghez csatolja. A poz-
cikapcsolk hatst megsz unteti. Ez az opci NEM ellen orzi le, hogy az
adott llomnynv alatt van-e mr valami a object knyvtrban, gy ha kt-
szer adunk meg egy llomnynevet, az ktszer rdik be az object knyv-
trba.
12.4. A UNIX FORDTI KNYVTRKEZELSE (AR, RANLIB) 151
r A megadott llomnyt (ha ltezik az object knyvtrban) az jjal helyet-
testi. Mivel az llomny helye adott, ezrt a pozcikapcsolknak nincs
semmi hatsa. Ha az u(update) kapcsolval hasznljuk, az r csak azokat
az llomnyokat helyettesti az object knyvtrban, melyek az utols bers
ta megvltoztak.
s j szimblum-tbla felptsre kszteti az ar programot, mg az esetben
is, ha nem vltozott kzben az object knyvtr tartalma. A kapcsolt a
strip parancs utn hasznljuk a szimblum-tbla jraptsre.
t Az object knyvtr tartalomjegyzkt rja ki a standard kimenetre. Ameny-
nyiben megadunk llomnyneveket, csak azok jelennek meg.
u Csak azokat az llomnyokat msolja be, melyek a legutbbi msols ta
vltoztak. (lsd az r kapcsolt).
v Rszletes, llomnyokra lebontott informcit ad az j object knyvtr fel-
ptsr ol. A t kapcsolval egytt hasznlva az ls -l parancshoz hasonl
listt ad. Az x kapcsolval minden llomny el kirja a nevt, a h kapcso-
lval pedig felsorolja az llomnyok nevt s mdostsi idejt.
w Az archv llomny szimblum-tbljt rja ki. Minden szimblum annak
az llomnynak a nevvel rdik ki, amelyben megjelenik.
x Kimsolja az object knyvtrbl a megadott llomnyt az aktulis knyv-
trba. Az j llomnyok az eredeti, az object knyvtrban maradt llomny
nevt veszik fel. Ha nem adunk meg llomnynevet, az x minden, az arc-
hvban lev o llomnyt kimsol.
Amennyiben a megadott llomnyNv nincs az object knyvtrban, az ar
hozzadja azt az object knyvtrhoz. Ez esetben a pozcikapcsolkkal megad-
hatjuk az llomny helyt az object knyvtrban. Amennyiben nem intzkednk
a helyr ol, az j llomny automatikusan az object knyvtr vgre kerl. Ha u-
gyanazt az llomnynevet ktszer adjuk meg, az llomny ktszeresen kerlhet be
az object knyvtrba.
Pldk:
A libem.a llomny ltrehozsa a basic.o buffer.o char.o object modu-
lokbl:
$ ar vq libem.a basic.o buffer.o char.o
ar: creating archive file libem.a
q - basic.o
q - buffer.o
q - char.o
152 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
Amennyiben a libem.a object knyvtr nem ltezik, akkor az ar ltrehozza,
s elhelyezi benne a basic.o, buffer.o s char.o llomnyokat. Amennyiben a
libem.a ltezik, akkor ellen orzs nlkl hozzadja a vghez a kt llomnyt.
Ezrt a duplzsok elkerlsre clszer u letrlni a rgi object knyvtrat, ha
teljesen jjptjk. A v kapcsol hatsra a folyamatrl rszletes tjkoztatst
kapunk.
A libem.a llomny tartalmt a kvetkez okppen listzhatjuk ki:
$ ar vt libem.a
rw-r--r-- 100/100 8860 Sep 11 18:33 1991 basic.o
rw-r--r-- 100/100 9871 Sep 11 18:34 1991 buffer.o
rw-r--r-- 100/100 3568 Sep 11 18:34 1991 char.o
Az ls -l-hez hasonl, hossz listt kapunk. Az egyszer u felsorolshoz
hagyjuk el a v kapcsolt.
A libem.a object knyvtrhoz adjuk hozz a crypt.o llomnyt gy, hogy a
mr a knyvtrban lev o buffer.o el pozicionljuk:
$ ar vrb buffer.o libem.a crypt.o
a - crypt.o
$ ar vt libem.a
rw-r--r-- 100/100 8860 Sep 11 18:33 1991 basic.o
rw-r--r-- 100/100 2362 Sep 11 18:35 1991 crypt.o
rw-r--r-- 100/100 9871 Sep 11 18:34 1991 buffer.o
rw-r--r-- 100/100 3568 Sep 11 18:34 1991 char.o
ltalban a UNIX rendszerekben az ar nem vgzi el a szimblum-tbla le-
gyrtst (az IBM RS6000 AIX rendszeren az s kapcsol ezt elvgzi). Ilyenkor
a ranlib parancs vgzi el az archv object knyvtr "random" object knyvtrr
alaktst, gy az el oz o pldban a
$ ranlib libem.a
utastssal pthetjk jra a szimblum-tblt.
12.5. A futtathat program sszeszerkesztse: az ld
parancs
A klnbz o object llomnyokat, object knyvtrakat s kls o vltozkat az ld
parancs tvzi egy betlthet o s vgrehajthat llomnyba, mikzben kirtkeli a
12.5. AFUTTATHATPROGRAMSSZESZERKESZTSE: AZLD PARANCS153
klnbz o hivatkozsokat. Az alaprtelmezsbeli kimenet vagy az a.out vgre-
hajthat llomny, vagy az ld parancs egy msik hvsakor felhasznland, mr
el oksztett llomnyt generl (pl. ha nincs mg feloldva az sszes hivatkozs).
Az ld parancs formtuma a kvetkez o:
$ ld [ Kapcsolk ] llomny(ok)
A felsorolt llomnyokat (object, object knyvtr, import lista) az ld a fel-
sorols sorrendjben szerkeszti ssze. (Nmely UNIXrendszerben az object knyv-
trakat rtkeli ki legutoljra az ld).
A fordtsi knyvtrak .a-ra vgz od o nev u archv llomnyok (l. az ar paran-
csot a 150. oldalon). A fordtsi knyvtrakat megadhatjuk abszolt vagy relatv ar
rszletes
lersa a 150.
oldalon
tvonallal is, pl. a -lxzy kapcsol a libxyz.a fordtsi knyvtrllomnyt speci-
klja, mely vagy a -L kapcsolval megadott knyvtrakban, vagy a standard
knyvtrakban (/lib s /usr/lib knyvtrak) helyezkedik el.
Az ld parancs pontos m ukdse, kapcsoli eltrhetnek a klnbz o UNIX
rendszerekben, de hasznlatuk ltalban elkerlhet o a cc paranccsal (l. a 155. cc
rszletes
lersa a 155.
oldalon
oldalon). Ha mindenron hasznlni akarjuk a parancsot, el otte felttlenl olvassuk
el a manult (man ld).
Az ld parancs kapcsoli
Akapcsolk sorrendje ltalban nembefolysolja az ld parancs m ukdst, kivve
a -f s -L, melyek az ld szmra el oksztett llomnyokat jellik meg. A -f
kapcsolk a parancssorban val megjelens sorrendjben rtkel odnek ki. A -l
kapcsolkkal jellt llomnyokat szintn a megjelens sorrendjben dolgozza fel
az ld, de csak az sszes object llomny kirtkelse utn. Ha egymsnak ellent-
mond kapcsolkat hasznlunk, az ld az utols kapcsolt veszi gyelembe, az
annak ellentmond megel oz oeket gyelmen kvl hagyja.
A leggyakrabban hasznlt kapcsolk a kvetkez ok:
-f File A .o s .a vgz ods u llomnyok neveit az File llomnybl veszi.
A bemen o object llomnyokat, valamint a -f kapcsolval kijellt object
llomnyokat az ld a parancssorban val megjelens sorrendjben dolgozza
fel. A kapcsol ismtelhet o.
-lKnytr A -L kapcsolval megadott, vagy a standard object knyvtrak va-
lamelyikben lev o libKnyvtr.a fordtsi knyvtrat is belef uzi a kime-
netbe. A kapcsol utni llomnyokat az sszes a bemeneten lv o, valamint
a -f kapcsolval megadott llomny feldolgozsa utn rtkeli ki. A kap-
154 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
csol ismtelhet o, a megadott fordtsi knyvtrakat a megjelens sorrend-
jben keresi meg az ld.
Az IBM RS6000 AIX alatt az ld parancs az sszes objectet s object knyv-
trllomnyt azonos mdon kezeli. El oszr beolvassa a szimblum-tblt,
s kiszedi a mr denilt szimblumokat, gy nem szksges a fordtsi
knyvtrllomnyok specilis rendezse, melyet nmely szerkeszt oprogram
ignyel. Viszont ezltal a szimblum els o el ofordulsa a mrvad, ami akr
meg is el ozheti az illet o szimblum dencijt.
-LKnyvtr
A -l kapcsolval megadott fordtsi knyvtrllomnyoknak a le-rend-
szerben elfoglalt helyt (path) adja meg. A kapcsol ismtelhet o. A meg-
adott Knyvtrakat az ld a kimeneti llomnyba is bejegyzi az esetleges
dinamikus betlts hasznlathoz.
-o Nv
A kimeneti llomnyt a Nv nev u llomnyba helyezi s nem az a.out-ba.
-r
Lehet ov teszi, hogy a ld ltrehozza a kimeneti llomnyt mg akkor is,
ha abban nem denilt hivatkozsok vannak. ltalban az gy ltreho-
zott llomnyt az ld parancs egy ks obbi hvsakor hasznljuk llomny-
paramterknt.
-s
Kiszedi a szimblum-tblt, a sorszm s pozciinformcikat a kimeneti
llomnybl. Ezzel helyet lehet megtakartani, de lehetetlenn teszi a de-
bugger hasznlatt. A m uvelet utlag is elvgezhet o a kimeneti llomnyon
a strip paranccsal.
-v
Rszletes informcit ad a szerkeszts menetr ol.
Pldk:
Tbb object llomny sszeszerkesztse a.out vgrehajthat programm:
$ ld -T512 /lib/crt0.o pgm.o subs1.o subs2.o -lc
Az ld hasznlatakor neknk kell megmondani, hogyan helyezkedjenek el az egyes
szegmensek. Az IBM RS6000 AIX rendszerben a -T512 egy ltalnosan m ukd o
paramter. Utna kvetkezik az object le-ok felsorolsa: a /lib/crt0.o a UNIX
rendszer rsze. A felhasznli object le-ok utn a -lc kapcsol a C nyelv ob-
ject knyvtrt linkeli mg a programhoz. Azaz itt a felhasznlnak kell gondo-
skodnia az sszes olyan object knyvtr, object modul felsorolsrl, melyet egy
fordtprogram automatikusan megcsinl.
12.6. PROGRAMOK FUTTATSA 155
A parancs kiadsnak egyszer ubb mdja a cc parancs hasznlata, mely a szk-
sges kapcsolkat automatikusan belltja:
$ cc pgm.o subs1.o subs2.o
Plda fordtsi knyvtrllomny hasznlatra:
$ cc -o pgm pgm.o subs1.o subs2.o mylib.a -ltools
A pgm.o, subs1.o, subs2.o object llomnyokat, a mylib.a object knyvtr ruti-
njait, s a -ltools-szal speciklt fordtsi knyvtrbeli (ami a /lib/libtools.a
vagy /usr/lib/libtools.a le lehet) rutinokat szerkeszti ssze pgm nev u vg-
rehajthat llomnny.
12.6. Programok futtatsa
A ksz, vgrehajthat programokat a UNIX opercis rendszerben a nevkre
hivatkozva futtatjuk. A program knyvtrnak vagy benn kell lennie a PATH
krnyezetvltozban, vagy teljes nvvel kell r hivatkozni. Az gy indtott prog-
ram standard bemenet s kimenete a terminl, gy azt msra a program futsnak
ideje alatt nem hasznlhatjuk. A ki- s bemenet a shellnl ismertetett mdon
tirnythat.
A program futtatsnak el obbi mdjt az el otrben val (vagy interaktv) fut-
tatsnak nevezzk. Lehet osg van arra, hogy a programot a httrben futtassuk;
ilyenkor annak futsa alatt a terminl hasznlhat msra is. A programokat tet-
szs szerint rakhatjuk t az el otrb ol a httrbe s viszont. Az ppen fut interak-
tv programot a Ctrl s Z billenty uk egyidej u lenyomsval llthajuk meg. A
prompt megjelense utn vgrehajthatunk egyszer u parancsokat, majd az eredeti
program futtatst folytathatjuk az el otrben, vagy a httrben.
A httrfuttatshoz a program neve, s az sszes tirnyts, kapcsol s ar-
gumentum utn egy & jelet kell tenni (l. a 60. oldalon). A rendszer kirja az
eljrshoz tartoz azonost szmot (PID), mely alapjn ks obb hivatkozhatunk
az eljrsra. Bourne shell esetn az gy indtott eljrsok befejezik futsukat, ha
a szl o processz megsz unik (pl. kilpnk a rendszerb ol). Ezt megakadlyozza
a parancssor elejn ll nohup utasts. A nohup hasznlata szablyozhat a C-
s Korn-shellekben is, ltalban nlkle sem llnak le a httrben indtott eljr-
sok.
2
A rendszerbe val jbli belps utn a nohuppal elindtott eljrsokat a ps
paranccsal kereshetjk meg.
2
Az eltr o belltsok miatt sok UNIX rendszerben szksges a nohup hasznlata Korn-shell
esetn.
156 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
A programot a httrbe a bg, az el otrbe az fg paranccsal tehetjk. Lehet osg
van a parancsok prioritsnak megvltoztatsra, egy parancs egy adott id oben
trtn o indtsra illetve egy parancs rendszeres futtatsra, valamint a rendszer
egyenletes terhelse rdekben a parancsok egyms utni futtatsra.
A program, hacsak nem fordts s linkels eredmnyeknt ltrejtt linkelt
program (pl. az a.out llomny), egy kln n. alshellben (subshell) indul el. Ha
egy script programot az adott shellben akarunk lefuttatni, akkor hasznljuk az .
Scriptllomny parancsot.
A program prioritsnak lltsa: a nice parancs.
A nice paranccsal egy Parancsot az alapbelltsnl alacsonyabb prioritssal fut-
tathatunk:
$ nice [-Szm] Parancs
A Szm 1 s 19 kzti rtk, s a nvekv o rtkek cskken o prioritsra utalnak. Az
alaprtk a 10.
A root jogokkal rendelkez o felhasznlk ezzel a paranccsal nvelhetik egy
processz prioritst, gy, hogy negatv rtket adnak a Szmnak.
A C shellben van a nice parancson kvl beptett nice is, melyek bizonyos
esetekben mskppen viselkednek.
A nice magtl nem futtat a httrben. gy a
$ nice Program
a Program nev u llomnyt futtatja le 10-es prioritssal az el otrben, azaz a ter-
minl msra nem hasznlhat, mg a
$ nice Program &
a httrben fut le alacsonyabb prioritssal.
Programok id oztse: az at parancs.
Egy utasts ks obbi id opontban val vgrehajtsra szolgl az at parancs. For-
mtuma:
$ at [Kapcsolk] Id o [Dtum] [Nvekmny ]
Az at parancs beolvassa a standard bemenetr ol a ks obbi id opontban vgreha-
jtand parancsokat. A betblzott parancsok standard kimenetre s hibaeszkzre
rkez o zeneteit postzza, kivve, ha tirnytottuk a kimenetet (pl. a mail utas-
tssal levlbe). A standard hibaeszkzre kirja az adott eljrs szmt s az indtsi
id ot.
12.6. PROGRAMOK FUTTATSA 157
Az at parancs az aktulis eljrs krnyezett veszi t (kivve a prioritst).
Arendszergazda szablyozhatja, hogy melyik felhasznlnak legyen joga hasz-
nlni az at parancsot.
Az id oztett parancsokat kilistzhatjuk a
$ at -l
paranccsal. Az at hasznlatakor minden feladat kap egy azonostt (ez bet ukb ol
s szmokbl ll, pl: ctw.635677200.a). Ezt is kirja a lista. Az elkldtt felada-
tot, mg miel ott elkezdene vgrehajtdni, trlhetjk a
$ at -r Feladat
paranccsal, ahol a Feladat jelli az azonostt.
Az id ot a kvetkez okppen adhatjuk meg:
Szm, melyet opcionlisan valamely kiegszts kvet. Az egy s ktjegy u
szmokat az at rnak rtelmezi, a ngyjegy ueket ra-percnek. Pldul
0852 8 ra 52 percet jelent.
A noon, midnight, now specilis szavakat szintn id onek rtelmezi az at.
A dtumot megadhatjuk a hnap (angol) nevvel s a nap szmval (eset-
leg vessz ovel utna az vet), vagy a ht napjval. Kt klnleges napot is
megadhatunk: a today-t s a tomorrow-t.
Az opcionlis Nvekmny az id o kifejezsben a kvetkez o lehet:
+ jellel elltott szm, melyet a kvetkez o szavak valamelyike kvet: minute[s],
hour[s], day[s], week[s], month[s], year[s].
a next specilis sz, melyet az el obb felsorolt szavak kvethetnek. gy a
next day a megadott id opontot msnapra rtelmezi.
A mr ismertetett l s d kapcsoln kvl hasznlhat mg a:
-c A csh paranccsal futtatja az eljrst.
-k A ksh paranccsal futtatja az eljrst.
-s A bsh paranccsal futtatja le az eljrst.
-m Postzza a felhasznlnak a parancs sikeres vgrehajtst.
Plda:
Az (aktulis knyvtrban lv o) uuclean parancs futtatsa pntek dlutn 5
rakor:
$ at 5 pm Friday uuclean
158 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
vagy
$ at 5 pm Friday
uuclean
Ctrl-D
A jv o hten ugyanebben az id oben trtn o futtats:
$ at now next week uuclean
Kt nap mlva ugyanebben az id oben:
$ at now +2 days uuclean
Janur 24-n dlutn 3 rakkor:
$ at 3:00 pm Jan 24 uuclean
Egy betblzott feladat betblzhatja magt jra a kvetkez o napra, gy hogy
futsa vgn ismtelten meghvja az at utastst. Ilyen rendszeres futtatsokra
szolgl a UNIX crontab (l. 12.6.2. fejezet) parancsa. A crontab hasznlata
rendszeres futtatsokra el onysebb, mivel egy esetleges hiba esetn is jraindul
(az at futtatsa ilyenkor megszakad).
12.6.1. A batch parancs
Abatch paranccsal indthatjuk el a programot gy, hogy az akkor kezdjen el futni,
ha a rendszer nincs tlsgosan leterhelve. A batch parancs az ltala elindtott
program standard kimenett s hibakimenett postzza, hacsak azok nincsenek
tirnytva. Kirja a feladat szmt s betblzsi idejt. A program az aktulis
krnyezetb ol s knyvtrbl indul:
$ batch <<"vege"
nagyfeladat 2>&1 >kimenet ||@ mail $LOGNAME
vege
Az gy elkldtt nagyfeladat program standard kimenete az aktulis knyv-
tr kimenet nev u llomnya lesz, a hibazeneteket pedig postzza a felhasznl-
nak.
12.6.2. Feladatok rendszeres futtatsa: a crontab parancs
Feladatok rendszeres futtatsokra a crontab parancs szolgl:
$ crontab [ -l | -r | -v ] [ llomny ]
12.6. PROGRAMOK FUTTATSA 159
A crontab parancs bemsolja a megadott llomnyt, vagy annak hinyban a
standard bemenetet a crontab llomnyait tartalmaz knyvtrba. Az llandan
fut cron daemon ezen llomnyok utastsai szerint jr el. A megadott paran-
csok standard kimenett illetve hibakimenett a crontab postzza, hacsak nincs
tirnyts. A crontab rsakor az sszes el oz o bersunk trl odik.
A crontab parancs hasznlatt a rendszergazda szablyozhatja (engedlyez-
heti, illetve letilthatja).
A crontab bejegyzsek 6 mez ob ol llnak. A mez oket szkz vagy tabultor
vlasztja el. A mez ok tartalma sorrendben:
Perc (0 s 59 kztti szm)
ra (0 s 23 kztti szm)
A hnap napja (1 s 31 kztti szm)
Az v hnapja (1 s 12 kztti szm)
A ht napja (0 s 6 kztti szm: vasrnaptl szombatig)
A futtatand shell parancs
Az id opontra vonatkoz mez ok tartalmazhatnak:
Egy, az adott hatrok kztti szmot.
Kt ojellel (-) elvlasztott kt szmot, melyek egy tartomnyt hatroznak
meg.
Vessz ovel elvlasztott szmokat.
A * az sszes megengedett rtket jelenti.
A napot kt helyen is meghatrozhatjuk. gy pldul a
0 0 1,15 * 1 parancs
bejegyzs minden hnap els o s 15. napjn fut le, valamint minden htf on.
A cron daemon a hatodik mez oben megadott parancsot futtatja le az adott
id oben. A hatodik mez oben esetlegesen megjelen o % jel utni rszt a cron a meg-
adott parancs standard bemenetre teszi (kivve a \% vagy "%" hasznlatakor). A
hatodik mez oben megjelen o nem vdett felkiltjel jsor karakternek szmt. A
shell csak a parancsmez o els o sort futtatja le. Az sszes tbbi az adott parancs
standard bemenetre kerl.
A cron daemon a HOME knyvtrunkbl indtja a subshellt. Nem futtatja le au-
tomatikusan a .profile llomnyt, gy ha szksgnk van a benne foglaltakra, a
felhasznlnak kell err ol a crontab bejegyzsben gondoskodnia. A cron daemon
a kvetkez o krnyezetvltozkat adja t a subshellnek: HOME, LOGNAME, SHELL
(alapesetben ez a /bin/sh), PATH (alapesetben ez a :/bin:/usr/bin).
Kapcsoli a kvetkez ok:
160 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
-l Kilistzza a crontab llomnyt.
-r Trli a crontab llomnyt a crontab knyvtrbl.
-v Rszletesen kilistzza a crontab llomnyokat.
Pldk:
Minden htkznap du. 5-kor rjon ki neknk egy zenetet:
0 17 * * 1-5 echo "Itt az ideje hazamenni!" | write $LOGNAME
Minden Karcsony el ott (dec 20 s 31 kztt 12 s 17 ra kztt rnknt)
kszntsn minden, a gpen dolgoz embert:
0 12-17 20-31 12 5 /etc/wall%Kellemes Unnepeket!
12.7. Hibakeress s ellen orztt futtats (dbx)
A dbx egy szimbolikus debugger program. Alkalmazhat C, Pascal, FORTRAN
s COBOL programok elemzsre a kvetkez o mdokon:
Kirtkeli az object illetve a (programok vratlan lellsakor keletkez o) n.
core llomnyokat.
A program futtatshoz egy felhasznl ltal ellen orizhet o krnyezetet te-
remt.
Lellsi pontok denilhatk, vagy soronknt futtathat a program.
A szimbolikus vltozk rtkeit nv szerint ellen orizhetjk.
Hasznlata:
dbx [-a ProcessID] [-c ParancsFile] [-d KvetsiMlysg]
[-I Knyvtr] [Kapcsolk] [ObjectFile[CoreFile]]
Az Objectllomny a fordt ltal generlt (vgrehajthat) llomny. A dbx
program hasznlathoz a fordtsnl hasznljuk a -g kapcsolt (szimblum-tbla
generlsa). Amennyiben ezt nem tesszk, vagy a szimblumtblt a strip pa-
ranccsal megszntettk, a dbx szimbolikus lehet osgei er osen lecskkennek.
Indulskor a dbx a kezdeti parancsokat az aktulis knyvtr .dbxinit l-
lomnybl, ennek hinyban a HOME knyvtr ilyen nev u llomnybl prblja
beolvasni.
Ha a program futsa valamilyen hiba miatt megllt, az sszes szksges infor-
mcit a rendszer a core nev u llomnyban trolja. Amennyiben az adott knyv-
trban van ilyen llomny, vagy a dbx hvsakor megadtuk a CoreFilet, akkor a
dbx segtsgvel elemezhet o a program llapota a hiba idejn.
12.7. HIBAKERESS S ELLEN

ORZTT FUTTATS (DBX) 161


A dbx kifejezsei
A dbx kifejezseket C vagy Pascal (Modula-2) szabvny szerint kell megadni. A
* el otag vagy ^ uttag indirekt cmzst jelent. Egy tmb rszt megadhatjuk, ha
az els o s utols elemt kt ponttal (..) vlasztjuk el (pl. a(4..7) ). A tmbk
elemeire szgletes vagy kerek zrjelben megadott index szerint hivatkozhatunk.
A pointerek s rekordok mez oire a ponttal (.) hivatkozunk, gy a C nyelv ->
opertort nem szksges hasznlni (br lehet).
A kvetkez o m uveletek megengedettek:
Algebrai: + , -, *, / (lebeg opontos), div (egsz), mod, exp
Bitm uvelet: -, |, bitand, xor, ~, <{}<, >{}>
Logikai: or, and, not, ||, &&
sszehasonlts: < , >, <=, >=, !=, = vagy ==
Egyb: sizeof, :: (C++ scope m uvelet)
A dbx kapcsoli
-a ProcessID
A debug programot az ppen fut ProcessID azonostj eljrshoz rendeli.
A debug program aktv lesz, mihelyt az eljrs beindul.
-c llomny
Lefuttatja az llomnybeli dbx parancsokat, miel ott a standard bemenetr ol
vrna parancsot.
-d KvetsiMlysg
Belltja a program blokkjainak kvetsi mlysgt. Az alaprtk 25.
-f
Gyors mdban indtja el a dbx parancsot. Csak a szksges szimblum-
tblt olvassa be indulskor, gy sokkal gyorsabban indul be a dbx, valamint
kevesebb memrit hasznl.
-I Knyvtr
A keressi tvonalhoz hozzadja a Knyvtrat. Az alapkeress az aktulis
knyvtr, valamint a vgrehajthat llomny knyvtra. A debugon bell a
use paranccsal llthatjuk be a keressi tvonalat.
-r
Azonnal elindtja a vgrehajthat llomnyt. Ha sikeresen r vget, a dbx
program is befejezi futst. Ellenkez o esetben a dbx program elindul, s
kzli a hiba okt.
162 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
A -r kapcsol hasznlatnak kivtelvel a dbx felhasznli utastsra vr, s
nem indtja el automatikusan a vgrehajthat llomnyt.
A dbx parancsai
A dbx elinduls utn interaktv mdon futtathat. A leggyakrabban hasznlt
utastsok a kvetkez ok (a parancsok pontos szintaxisrl a help parancs ad felvil-
gostst):
/ Keress a forrskdban el ore.
? Keress a forrskdban htrafel.
alias Helyettest o nv denilsa a dbx parancsokra.
assign Vltozk rtknek belltsa.
call Lefuttatja a program megnevezett eljrst.
clear Az adott forrskd sorra belltott stop utastst trli.
cont Folytatja a program futtatst az utols lellsi ponttl.
delete Nyomkvetseket s lellsi pontokat trl.
detach Kilp a debuggerb ol, s folytatja a program futst.
dump Kirja az adott eljrsbeli neveket s rtkeiket.
edit Az aktulis llomnyra behvja a szvegszerkeszt ot. Az alapbellts a vi,
de az EDITOR krnyezetvltozval bellthat.
file Az aktulis forrskdot cserli ki.
goto A program futtatst a jelzett sorra teszi t.
help Informcit ad a dbx parancsok hasznlatrl.
list Kilistzza az aktulis forrskd sorait.
move A forrskd listban a jelzett sorra ugrik.
next A jelzett sorig futtatja a programot.
print Kirja a kifejezs rtkt, vagy eljrs esetn lefuttatja azt, s a visszatrsi
rtket adja meg.
prompt Belltja a dbx promptjt.
quit Befejezi a dbx futst.
rerun Elindtja a program futst az el oz o argumentumokkal.
return Folytatja a program futst, amg az vissza nem tr a jelzett eljrsba.
run Elindtja a program futst.
set A dbx programvltozinak ad rtket.
sh Lefuttat egy parancsot a shellben.
12.7. HIBAKERESS S ELLEN

ORZTT FUTTATS (DBX) 163


skip Folytatja a program futst az aktulis lellsi ponttl s az esetlegesen
megadott szm lellsi pontot gyelmen kvl hagyja.
source A jelzett llomnybl beolvassa a dbx parancsokat.
status Megjelenti az aktv nyomkvetseket.
step Egy forrskd sort futtat le.
stop Lelltja a program futst adott felttelek mellett (forrskd).
trace Nyomkvetsi informcit r ki az adott eljrsra, sorra, kifejezsre, vl-
tozra a jelzett felttelek mellett.
unalias Megsznteti az alias-szal megadott helyettest o nevet.
unset Trli egy dbx vltoz rtkt.
use A forrskd llomnyok keressi knyvtrt lltja be.
whatis A programbeli vltozk, fggvnyek, eljrsok deklarcijt mutatja meg.
where Az aktv eljrsokat s fggvnyeket listzza ki.
whereis A megadott mintnak megfelel o szimblumok teljes lerst adja meg.
which Az adott azonost teljes lerst adja.
A kvetkez okben egy egyszer u pldn bemutatjuk a dbx szimbolikus debug-
ger programjnak hasznlatt.
Hozzuk ltre a kvetkez o test.c llomnyt:
#include <stdlib.h>
#include <stdio.h>
main(argc,argv)
int argc;
char *argv[];
{
int a, b, c;
a=1;
b=2;
putchar(65);
for(c=0; c<10; c++)
{
a=a*c+b;
b=b*2;
printf("a: %d b: %d c: %d", a, b, c);
}
}
A fordtst s linkelst a cc paranccsal vgezhetjk el, a -g opcit hasznlva
(ekkor a fordts s linkels sorn a debug informcik is bekerlnek a vgrehajt-
hat llomnyba):
$ cc -g test.c
164 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
Ezek utn a ltrejtt a.out llomnyt indtsuk el a dbx debuggerrel:
$ dbx a.out
dbx version 3.1 for AIX.
Type help for help.
reading symbolic information ...
(dbx) list Kilistzzuk a forrskdot.
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 main(argc,argv)
5
6 int argc;
7 char *argv[];
8 {
9
10 int a, b, c;
(dbx) list Kilistzzuk a kvetkez o 10 sort.
11
12 a=1;
13 b=2;
14 putchar(65);
15 for(c=0; c<10; c++)
16 {
17 a=a*c+b;
18 b=b*2;
19 printf("a: %d b: %d c: %d", a, b, c);
20 }
(dbx) stop at 13 Belltunk egy trspontot a 13. sorban.
[1] stop at 13
(dbx) run Elindtjuk a programot.
[1] stopped in main at line 13 A program a 13. sorban lell.
13 b=2;
(dbx) step El ore lpnk egy utastst.
stopped in main at line 14
14 putchar(65);
(dbx) step 3 El ore lpnk 3 utastst.
stopped in main at line 18
12.7. HIBAKERESS S ELLEN

ORZTT FUTTATS (DBX) 165


18 b=b*2;
(dbx) print a, b, c Kiratjuk az a, b s c vltozk rtkt.
2 2 0
(dbx) trace b at 18 Belltjuk a nyomkvetst a b vltozra a 18. sorban.
[3] trace b at 18
(dbx) step El ore lpnk egy utastst.
stopped in main at line 19
19 printf("a: %d b: %d c: %d", a, b, c);
(dbx) step El ore lpnk egy utastst.
stopped in main at line 17
17 a=a*c+b;
(dbx) step El ore lpnk egy utastst.
at line 18: b = 4 A nyomkvets megtrtnt.
[3] stopped in main at line 18
18 b=b*2;
(dbx) step 3 El ore lpnk 3 utastst.
stopped in main at line 19
at line 18: b = 8
[3] stopped in main at line 18
18 b=b*2;
(dbx) step 2 El ore lpnk 2 utastst.
stopped in main at line 17
17 a=a*c+b;
(dbx) print a Kiratjuk az a vltoz rtkt.
20
(dbx) assign a=1 Megvltoztatjuk az a vltoz rtkt 1-re.
(dbx) print a Ellen orzskppen kiratjuk jra az a rtkt.
1
(dbx) step El ore lpnk egy utastst.
at line 18: b = 16
[3] stopped in main at line 18
18 b=b*2;
(dbx) skip 1 Az [1]-es szm trspontot tugorva futtatjuk a
programot.
at line 18: b = 64
at line 18: b = 128
at line 18: b = 256
at line 18: b = 512
166 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
at line 18: b = 1024
execution completed (exit code 10)
(dbx) quit Kilpnk a dbxb ol.
12.8. Programok jrafordtsa: a make parancs
A make a sok lebl felpl o vgrehajthat llomny el olltst segti el o:
$ make [ Kapcsolk ] [ -f Makellomny] [ Clllomny]
A make egy lerllomnyt hasznl, mely tartalmazza, hogy egy llomny
megvltoztatsa milyen ms llomnyokat rint, s hogyan kell egymsbl el ol-
ltani oket. Azt, hogy egy llomny megvltozott, abbl veszi szre a make, hogy
az utols mdostsi dtuma ks obbi, mint azok az llomnyok, amelyek t ole
fggnek.
Nzzk azt a pldt, amikor van egy pelda.c programunk, melyet pelda vg-
rehajthat programm a cc utastssal fordtunk le. A pelda.c le #include-dal
behv egy pelda.h llomnyt is. A make ler llomnyban (ez a makefile vagy
Makefile alaprtelmezsben) ekkor a kvetkez o bejegyzs szerepel:
pelda: pelda.c pelda.h
cc -o pelda pelda.c
A make parancs hatsra a rendszer jrafordtja a pelda.c programot, ha az
utols fordts ta megvltoztattuk a pelda.c vagy a pelda.h llomnyokat,
klnben nem csinl semmit. Amennyiben egy llomny hinyzik (pldul a
pelda), akkor azt mindennl rgebbinek tekinti, gy el olltja. Ha a ler llomny
neve nem makefile vagy Makefile, akkor a -fllomny kapcsolval vehetjk
r a make parancsot, hogy az llomnybl rtkelje ki a feladatokat.
A make parancssorban az sszes kapcsol feltntetse utn megadhatunk
makrdencikat is MakrNv=Karakterlnc alakban (l. 168. oldalon). A pa-
rancssorban az sszes, a kapcsolkat kvet o sz, mely nem tartalmaz egyenl osg-
jelet Clllomnynv, azaz azt mondja meg, hogy melyik llomnyokat hajtjuk
el olltani a ler le-bl. A Clllomnynv a kett ospontok el otti bejegyzs, azaz
pldnkban a pelda. A ler llomny felsorolhat tbb program el olltshoz
szksges informcit is, de ha megadjuk a Clllomny neveket, akkor csak a
felsorolt llomnyokat gyrtja le.
A bejegyzsek ltalnos alakja a kvetkez o:
cl [cl] :[:] [llomny] [
\
shell parancs
\
] [;Parancs] [Parancs]
12.8. PROGRAMOK JRAFORDTSA: A MAKE PARANCS 167
A bejegyzs els o sora tartalmazza a clllomnyok jegyzkt. Ezt egy ket-
t osponttal zrja, s opcionlisan kvetheti azon llomnyok neve, melyekt ol ezek
fggnek. Megadhat shell parancs is fordtott aposztrfok kztt, melynek rtke
adja meg az llomnyok nevt (pl.
\
ls *.c
\
). Amennyiben az llomnyok el ol-
ltshoz szksges shell parancsokat tesznk ebbe a sorba, azokat pontosvessz o-
vel kell bevezetni. Minden kett osponttal, vagy j sorban tabultorral kezd od o
parancs tartalmazza azokat a shell utastsokat, melyekkel a clllomny felpt-
het o.
Megadhatunk tbb parancssorozatot is a Clllomnyra vonatkozan. Ilyen-
kor tbb bejegyzst kell rni, melyeknl a Clllomnyt kt kett ospont kveti.
Utna ugyangy kell felsorolni az llomnyok nevt, melyt ol a Clllomny fgg,
valamint a szksges parancsokat.
A # utn a sor vgig kvetkez o minden karakter megjegyzsnek szmt. Meg-
jegyzsek brhol elhelyezhet ok a ler llomnyban. Az res sorokat a make -
gyelmen kvl hagyja, viszont egy listn bell nem szabad res sort hagyni.
A nem # karakterrel vagy tabultorral kezd od o j sor j bejegyzst vagy mak-
rdencit jelent. A parancssorokat egyenknt, kln subshellben futtatja le a
make, gy nhny shell parancs (pl. a cd) hatsa nem rvnyesl, ha kzben j
sort kezdtnk. Viszont hasznlhat a \ folytatsor jellsre.
12.8.1. Kiterjesztsek
A make parancs a szabvnyos llomnyok felptsre nzve rendelkezik bizonyos
alapszablyokkal. Ezeket a szabvnyos llomnykiterjesztsek alapjn alkalmazza.
A szablyok deniljk a kiindulsi s a ksz llomny tpust. gy pldul egy .o
llomny esetn felttelezi, hogy ltezik egy hozz tartoz .c llomny, s tudja,
hogy azt a cc -c paranccsal kell lefordtani.
A csak egy kiterjesztst tartalmaz (azaz .c:) szably azt rja el o, hogy a
programot az sszes forrskd alapjn kell felpteni. Szablyokat a ler llo-
mnyban is denilhatjuk. A make parancs minden ponttal (.) kezd od o, s / jelet
nem tartalmaz Clt szablynak tekint.
A make parancs futtatsa sorn tbb szinten is befolysolhatjuk annak m uk-
dst. A parancs (emelked o) sorrendben a kvetkez o hierarchia szerint dolgozza
fel a kapcsolkat s makrkat:
1. a make sajt alapszablyai
2. a krnyezetvltozk (MAKEFLAGS s MFLAGS)
168 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
3. a ler llomny
4. a parancssor
12.8.2. Makrk
A Karakterlnc1 =Karakterlnc2 tpus bejegyzsek a ler llomnyban makr-
nak szmtanak. A Karakterlnc2-t a sor vgig, illetve az els o # megjelensig
rtelmezi. Lehet folytatsort hasznlni. A denci utn a make a ler llomny-
ban a $(Karakterlnc1) minden el ofordulst Karakterlnc2-re cserli. Az
eljrs rekurzvan is alakalmazhat, a $($(Karakterlnc1)) vagy ($($(Karakterlnc1)))
bellr ol kifel helyettest odik. Legfeljebb 10 szint mlysgig hasznlhat az eljrs.
A makr nevt nem kell zrjelbe tenni, ha az csak egy karakterb ol ll. Mivel a
make a $-t hasznlja makrhelyettestsre, ezrt ezt lehet oleg llomnynevekben
s a ler llomnybeli parancsokban ne hasznljuk. t el ore denilt makr ll a
rendelkezsnkre:
$* A forrsllomny neve (kiterjeszts nlkl).
$@@ Az aktulis clllomny teljes neve.
$< A nem id oszer u modul forrsllomnya. A
.c.o: cc -c $<
bejegyzsben a $< brmely nemid oszer u .o llomny esetn a hozz tartoz
.c llomnyra utal.
$? A nem id oszer u llomnyok listja. A make akkor rtkeli ki, amikor a
Makellomnybl megkeresi a konkrt szablyokat.
$% Az archv llomny tagjnak neve. Csak a lib(llomny.o) formj cl-
llomny esetn rtkeli ki a make. Ebben az esetben a $@@ magra az archv
llomnyra, a $% pedig az llomny.o tagra mutat.
A D az llomnynv tvonalra, az F a nv rszre utal az sszes bels o mak-
rban a $?-t leszmtva. gy a $(@@D) a $@@ llomny knyvtrra utal. A $ jelet
$$ mdon adhatjuk meg a ler llomnyban.
Ha a clllomny neve zrjelet tartalmaz, a make fordtsi knyvtrllomny-
knt kezeli azt. A zrjelek kzti rsz a knyvtrllomny megfelel o tagja. Ez
lehet pldul library(llomny.o) alak, de ha pl. deniltunk egy LIB makrt,
akkor $(LIB)(llomny.o) alak is lehet. A cllllomnyokat mindig az archv
llomny nevvel kell megadni. A$(LIB) + (tag1.o tag2.o) kifejezst a make
NEM tudja rtelmezni.
12.8. PROGRAMOK JRAFORDTSA: A MAKE PARANCS 169
Az archv knyvtrakra vonalkoz szablyok .x.a formjak, ahol a .x azon
llomny kiterjesztse, melyet a knyvtrhoz akarunk adni. gy a .c.a szably
azt jelzi, hogy C forrskd llomnybl hogyan kell felpteni a knyvtrtagot.
Pldul a
lib: lib(tag1.o) lib(tag2.o) lib(tag3.o)
@echo A lib keszen van
ler llomnybeli bejegyzshez tartoz make alapszably a
.c.a:
$(CC) -c $(CFLAGS) $<
ar rv $@@ $*.o
rm -f $*.o
(a CC makr az alap C fordtt tartalmazza, a CFLAGS makr pedig a fordts sorn
hasznland kapcsolkat. A CC denilva van a UNIX rendszerekben, s trhat
ms fordtra is).
12.8.3. A make kapcsoli
-d Debug md: rszletes informcit kzl, hogy a make mely llomnyokat
mennyi ideig dolgozta fel.
-e A krnyezetvltozk hasznlatra knyszerti a make-et, mgha a ler llo-
mnyban jra is lenne denilva.
-fMakellomny Beolvassa a Makellomnyt, mely tartalmazza a clllomny
felptsnek mdjt. Ha csak - (mnusz) jelet adunk meg Makellomnynak,
akkor azt a standard bemenetr ol veszi. Ha nem hasznljuk a -f kapcsolt,
akkor az aktulis knyvtrban sorban vgigkeresi a makefile, Makefile,
s.makefile s s.Makefile llomnyokat. A kapcsol ismtelhet o, gy
egyszerre tbb ler llomny is megadhat.
-i Figyelmen kvl hagyja a parancsok ltal visszaadott hibakdokat. Normlis
esetben hiba esetn a make befejezi futst.
-k Befejezi az aktulis clllomny feldolgozst hiba esetn, de folytatja a t ole
nem fgg o egyb llomnyok feldolgozst.
-n Kijelzi, hogy mely parancsokat hajtan vgre a make, de nem futtatja le oket.
A @@-cal kezd od o sorokat kirja. Amennyiben a ler llomny tartalmazza
a $(MAKE) szimblumot, meghvja jra a make parancsot. Ezzel a kapcso-
lval ellen orizhetjk le a ler llomnyt.
-p A parancsok lefuttatsa el ott kirja az sszes makrdencit, s cl lerst.
-q Nulla rtkkel tr vissza, ha a clllomnyt nem kell jrafordtani, nem null-
val, ha szksges.
170 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
-s Nem jelenti meg a vgrehajtand parancsokat.
-t A felsorolt parancsok lefuttatsa helyett pusztn trja az llomnyok keletke-
zsi idejt. Akkor hasznljuk, ha a forrskdban csak lnyegtelen vltoz-
tatst hajtottunk vgre. A parancs az sszes a ler llomnyban, illetve a
parancssorban megjelen o clllomny idejt trja.
Plda : # A prog nevu allomany legyartasa 3 object allomanybol
prog: x.o y.o z.o
# A prog-ot a cc paranccsal kell leforditani
cc x.o y.o z.o -o prog
# Az x.o-t ket masik allomanybol (x.c es defs) kell legyartani
x.o: x.c defs
# Az x.o-t a cc-vel allitjuk elo
cc -c x.c
# Az y.o-t ket masik allomanybol kell legyartani
y.o: y.c defs
# Az y.o-t a cc-vel allitjuk elo
cc -c y.c
# Az z.o-t ket masik allomanybol kell legyartani
z.o: z.c defs
# Az z.o-t a cc-vel allitjuk elo
cc -c z.c
A beptett szablyok felhasznlsval egyszer usthetnk ezen a ler llom-
nyon:
# A prog nevu allomany legyartasa 3 object allomanybol
prog: x.o y.o z.o
# A prog-ot a cc paranccsal kell leforditani
cc x.o y.o z.o -o prog
# Az objecteket a forraskodbol es a defs allomanybol allitjuk elo
x.o y.o z.o: defs
A make ismeri a kvetkez o kiterjesztseket: .a (archv llomny), .c (C for-
rsnyelv), .f (FORTRAN forrsnyelv), .h (Cheader llomny), .l (Lex llomny),
.o (object llomny), .s (assembler forrsnyelv) forrskd, .sh (shell parancsl-
lomny), .y (Yacc llomny). Ismeri az SCCS llomnyokat is, ezekre az el oz o
kiterjeszts utni ~-vel kell hivatkozni.
Plda: a /usr/include-beli llomnyok felfrisstse az aktulis knyvtrban lev ok
12.8. PROGRAMOK JRAFORDTSA: A MAKE PARANCS 171
alapjn:
# Az INCDIR konyvtarnev definialasa
# (ha mas konyvtarbol inditjuk a make-t)
INCDIR = /usr/include
# A konyvtarbeli allomanyok egy csoportjanak definialasa
# INCLUDES makronev alatt
INCLUDES = \
$(INCDIR)/stdio.h \
$(INCDIR)/pwd.h \
$(INCDIR)/dir.h \
$(INCDIR)/a.out.h \
# Mindegyik felsorolt allomany a hasonnevu aktualis
# konyvtarbeli allomanytol fugg.
$(INCLUDES): (@F)
# Masolja at az ujabb aktualis konyvtarbeli allomanyt
# a /usr/include konyvtarba
cp $? $@@
# Allitsuk be csak olvashatora a statuszt
chmod 0444 $@
172 FEJEZET 12. PROGRAMOK FORDTSA S FUTTATSA
13. fejezet
A vi editor hasznlata
A vi kpes tbb llomnyt is szerkeszteni, ha egyms utn megadjuk az l- vi
rvid lersa
a 45. oldalon
lomnyok nevt:
$ vi llomny1 llomny2 ...
A vi szerkeszt o a UNIX opercis rendszer ex editorra pl, ezrt az ex
parancsok hasznlhatk a vi-on bell. Az exnek megfelel o szoksos vi korltok
a kvetkez ok:
- 2048 karakter soronknt
- 256 karakter globlis parancsonknt
- 128 karakter az el oz oleg beszrt s trlt szveg esetn
- 128 karakter shell parancsonknt
- 128 karakter stringenknt
- 30 karakter az n. tag nv maximlis hossza
- 1 048 560 sor soronknt 2048 karakterrel szmolva
- 128 makr 2048 ssz karakterszmmal
13.1. zemmdok a vi-ban
A vi hromfle zemmdot hasznl: a parancs, a szvegrs s az n. utols sor
zemmdot.
A parancs zemmdba a belps utn kerlnk be. Ekkor klnbz o kurzor-
mozgat, keres o, trl o, llomnykezel o (rs/olvass), stb. parancsokat adhatunk a
vi-nak. Parancs zemmdban hasznljuk pl. a Ctrl-L parancsot, ami a kperny ot
173
174 FEJEZET 13. A VI EDITOR HASZNLATA
rja jra. A vi mindig a parancsmdba tr vissza, amikor az alparancsok s ms
zemmdok befejez odnek. Egy adott alparancs megszaktshoz az Esc , vagy a
Ctrl-C gombot
1
hasznlhatjuk.
A szvegrs mdban kzvetlenl vltoztathatunk a szvegen. A parancs
mdbl a szvegrs mdba a szvegrs parancsok egyikvel (a, A, i, I, o, O, c,
C, s, S s R parancsok) lphetnk be. Az zemmdbl az Esc gombbal trhetnk
vissza a parancs mdba, ill. az Ctrl-C gombot is hasznlhatjuk az zemmd
megszaktshoz.
Az n. utols sor zemmdban a vi a kperny o legaljn olvassa be a paran-
csot. Ilyenek a :, /, ? s !! parancsok. A parancssor lefuttatshoz azt Enterrel
(vagy Esc -el) kell zrnunk, mg megszaktani a Ctrl-C gombbal tudjuk. A
parancsoknl a kvetkez okppen hivatkozhatunk a le soraira:
% minden sor
^ els o sor
$ utols sor
. az aktulis sor
/Minta/ a Mintt tartalmaz sor az aktulis sor alatt
?Minta? a Mintt tartalmaz sor az aktulis sor el ott
mBet u az adott pozcit megjelli egy Bet u jellel. A Bet u brmilyen ASCII kisbet u
karakter lehet
Bet u az adott Bet u jellel jellt sorra hivatkozik
\
Bet u az adott Bet u jellel jellt karakterre hivatkozik
13.2. A vi editor klnbz o belltsai
Leggyakrabban a vi-t klnbz o (kls o ill. bels o) paramterekkel hvjuk meg. A
parancssorban a kvetkez o kapcsolkat hasznlhatjuk:
-l LISP zemmd. A vi ekkor a LISP nyelv u programok rsra hasznlhat
knyelmesen, s megvltoztatja a klnbz o zrjeleket a LISP parancsok
rsnak megknnytsre.
1
A vezrl o (Ctrl) karakterek kiadshoz nyomva kell tartanunk a Ctrl (esetleg Cntrl )
gombot, s ekzben kell a megadott gombot lenyomni.
13.2. A VI EDITOR KLNBZ

O BELLTSAI 175
-r egy el oz o szerkeszts vletlen megszakadsa utn visszanyeri az el oz o llapo-
tot. Az esetleges llomny megadsa nlkl csak kilistzza a visszakaphat
le-okat.
-R csak olvashatra nyitja meg az llomnyt.
-tTagnv Ha ltezik a (ctag paranccsal ltrehozott) n. tag lista, ami pl. egy
programot tartalaz le esetn a fggvnynevek s azok pozcija lehet, ak-
kor a le szerkesztsekor a Tagnvvel jelzett pozcira (fggvnyre) ugrik.
-wSzm az ablak mrett Szm sornyira lltja.
-ySzm a maximlis sorok szmt a Szmra lltja.
+ex-parancs a szerkeszts elkezdse el ott vgrehajtja az ex-parancsot.
A vi bels o vltozit ideiglenesen a
:set Vltoz=rtk
utastssal llthatjuk be. Az alaprtelmezst ol val rendszeres eltrs esetn
rdemes a vltozk rtkt permanensen tlltani. A vi elindulsakor vgreha-
jtja a .profile le-ban az EXINIT krnyezeti vltozval megadott belltsokat,
vagy ha ez nincs megadva, a HOME knyvtrban tallhat .exrc llomnyban lert
parancsokat. Ezek utn a vi vgrehajtja az aktulis knyvtrban lv o ./.exrc
llomnyban tallhat parancsokat (feltve, hogy ltezik ilyen llomny). Mivel
ez az itt lv o parancsokat kls o ellen orzs (meger osts) nlkl lefuttatja, bizton-
sgi problmnak tekinthet o, s az jabb rendszerekben ezt a set exrc utastssal
kln engedlyezni kell.
Az .exrc llomnyban soronknt fel kell sorolni az rtkadsokat, pl.:
set cp=3.,;
set number
set noedcompatible.
A leggyakrabban hasznlt, settel bellthat vltozk a kvetkez ok (a zr-
jelben a hasznlhat rvidtsek szerepelnek):
closepunct (cp=) A szvegzr elvlaszsi jeleket sorolja fel. A vi ezeknl
a jeleknl nem darabolja fel a szveget. Ha egyszerre tbb ilyen karaktert
akarunk megadni, el oszr a szmukat kell megadni (pl. a cp=3.,; a hrom
rsjelet lltja be). Ez az opci nem m ukdik minden UNIX rendszeren.
directory (dir=) Az editls sorn hasznlt ideiglenes bufferhez tartoz knyv-
trat denilja. rtke ltalban a /tmp.
edcompatible (ed) a g, c s r parancsok m ukdst az ed szerkeszt ohz teszi
hasonlatoss. ltalban a noedcompatible belltst hasznljuk.
176 FEJEZET 13. A VI EDITOR HASZNLATA
ignorecase (ic) a keress sorn nem klnbzteti meg a kis- s nagybet uket.
Alaprtelmezsben noic.
magic belltja a regulris kifejezsek hasznlatt a keressnl. Kikapcsolva csak
a ^( ) $ jeleknek van specilis jelentse. Alaprtelmezse magic.
modelines ha a szerkesztend o le els o vagy utols 5 sora
ex: parancs... :
vagy
vi: parancs... :
formtumban szerkeszt o parancsokat tartalmaz, lefuttatja azokat. Alaprtel-
mezsben nomodelines az rtke, mivel ez a parancsokat kls o ellen orzs
(meger osts) nlkl lefuttatja, s gy biztonsgi problmnak tekinthet o.
number (nu) A sorok el ott kijelzi azok sorszmt.
readonly (ro) bekapcsolja a csak olvass zemmdot.
scroll (scr=) az ablak felfel/lefel mozgatsnl megadja a sorok szmt.
shell (sh=) a ! parancsnl hasznlt shell tpust tartalmazza.
showmatch (sm) kijelzi az egymshoz tartoz ([{ s }]) zrjeleket.
showmode (smd) kijelzi az editor szvegrs (input) mdjt.
term (term=) a hasznlt terminl tpust adja meg. Alaprtelmezsben ez a
TERM vltoz rtke.
window (wi=) a kijelzskor hasznlt lapmretet denilja.
wrapmargin (wm=) belltja az automatikus betrdelst, azaz a megadott marg
utni szavak el automatikusan egy jsor karaktert illeszt. Alaprtelmezs-
ben wm=0, ami kikapcsolja ezt a funkcit.
13.3. A vi parancsai
A vi parancsmdjban hasznlhat utastsok ltalnos formtuma a kvetkez o:
[Buffer-Nv] [Opertor] [Szm] Cl
ahol a Buffer-Nv egy adott ideiglenes szvegtrol terletet jell; az Opertor
egy rvnyes vi parancs lehet; a Szm egy egsz szm, ami akr sorszmot, akr
ms rtket adhat meg; a Cl pedig egy szvegrsz ill. pozci lehet (pl. egy
bekezds, sz, stb.). Pldul a
"2p
parancs a 2. szm trlsi bufferb ol az aktulis pozcihoz beszrja annak tar-
talmt (a vi a kitrlt szvegrszeket 1 s 9 kztt szmozott trolkba helyezi, a
legutols trlt rsz az 1., az az el otti a 2., stb. trolban tallhat).
13.3. A VI PARANCSAI 177
A parancsok el sokszor egy szmot tehetnk, amit a vi ismtlsknt vagy
paramterknt rtelmezhet. Pldul a
10Ctrl-U
parancs 10 sorral feljebb lp, mg a
4dw
parancs 4 szt trl. A
137G
parancs a 137. sorra ugrik, mg a
25|
parancs a 25. oszlopra lp.
13.3.1. Mozgs az llomnyban
A vi-ban a kurzor egyszer u mozgatshoz parancsmdban a h-j-k-l gombokat
hasznlhatjuk. Nha a billenty uzeten tallhat nyilak is m ukdhetnek, rdemes
ezrt azokat kiprblni.
A soron belli mozgsnl a 0 (nulla) parancs a sor elejre, a $ a sor vgre
ugrik. Az fBet u parancs a kvetkez o Bet u karakterre, az FBet u a legutols Bet u
karakterre ugrik. A tBet u s TBet u hasonlan a Bet u karakter el ugrik. A
; parancs a legutols f, F, t s T parancsok egyikt ismtli meg, a , parancs
pedig fordtott irnyba mozogva ismtel. Az oszlop parancs a |, amely a megadott
oszlopra mozogatja a kurzort.
A vi lehet osget ad a szavanknti mozgsra is. A w el ore, a b visszafel ugrik
egy szt. Az e parancs a kvetkez o sz vgre viszi a kurzort. A W, B s E paran-
csok hasonlan m ukdnek, de nem veszik gyelembe az elvlaszt karaktereket.
A sorok kztti mozgsra a kvetkez o parancsokat hasznlhatjuk: a H parancs
a kperny o tetejre, az M a kzepre, az L pedig az aljra ugrik. A +(s a -)
parancs a kvetkez o (el oz o) sor els o nem-szkz karakterre lp. Egy adott sorra
a sorszmG paranccsal ugorhatunk (termszetesen ilyenkor is hasznlhatjuk pl. a
Bet uG parancsot, ami a Bet uvel jellt sorra ugrik). Hasznos mg a parancs,
amely felcserli az aktulis s az el oz oleg megjellt kurzorpozcit.
Ha gyorsabban akarunk mozogni, akkor a hasznlhatjuk a kperny onyivel
mozgat parancsokat is: a Ctrl-F egy teljes kperny ovel el ore, mg a Ctrl-B
egy kperny ovel visszafel lapoz. A Ctrl-U s a Ctrl-D el ore/htra mozog fl
kperny onyit. A Ctrl-E felfel, a Ctrl-Y lefel tolja el a kperny ot egy sorral.
A lapozs utn esetleg szksg lehet a kperny o jrarsra, amit a Ctrl-L
parancs vgez el. A z Enter parancs szintn jrarja a kperny ot, de az aktulis
sor ekkor a kperny o tetejn, z- parancsnl az aljn, a z. parancsnl pedig a
178 FEJEZET 13. A VI EDITOR HASZNLATA
kperny o kzepn lesz. Pldul a
/Haho/z.
parancs megkeresi a Haho stringet a le-ban, s a kperny o kzepre helyezve
kijelzi a sort.
13.3.2. String keress
Az adott kurzorpozci utn a /Minta parancs keresi meg a Minta el ofordulst.
Visszafel a ?Minta paranccsal kereshetnk. Az n utasts megismtli az utols
keres o parancsot az azzal megegyez o, mg a N parancs a paraccsal ellenttes irny-
ban. Ha ppen egy zrjel-karakteren helyezkedik el a kurzor, a % jel megkeresi a
hozz tartoz zr vagy nyit zrjel-karaktert.
A keress sorn regulris stringeket is hasznlhatunk (de csak ha a magic vl-
toz be van lltva (alaprtelmezs)).
13.3.3. A szvegrs zemmd
A parancs zemmdbl a szvegrs mdba a kvetkez o utastsokkal lphetnk
t (vissza az Esc gombbal lphetnk):
a Az aktulis kurzorpozci utn kezdi el beilleszteni a begpelt szveget.
A Az aktulis sor vgre ugrik, s tkapcsol szveg beszrsra.
i Az aktulis pozci el illeszti be a szveget.
I Az aktulis sor elejre ugrik, majd a begpelt szveget oda rja be.
o (kis o bet u) Az aktulis sor utn j sort nyit, annak elejre lp, s ott kezdi el a
szveg beillesztst.
O (nagy O bet u) Az aktulis sor el ott nyit egy j sort, s ott kezdi el beszrni a
szveget.
A szvegrs zemmdban a kvetkez o specilis parancsokat hasznlhatjuk:
Ctrl-H Kitrli az utols karaktert. Ezt ltalban a Backspace vagy Delete
gombokkal is megtehetjk.
Ctrl-U Kitrli az utols beadott sort.
Ctrl-W Kitrli az utols szt.
Ctrl-V Az utna begpelt specilis karaktert beilleszti a szvegbe.
13.3. A VI PARANCSAI 179
13.3.4. Szvegvltoztats a parancs mdban
A parancs zemmdban a kvetkez o utastsokat is hasznlhatjuk a le megvl-
toztatsra (ezek egy rszb ol az Esc billenty uvel lphetnk ki, tekintve, hogy
tkapcsolnak szvegrs mdba):
rBet u Az ppen aktulis karaktert a Bet uvel helyettesti.
R tkapcsol fellrs zemmdba.
C Megvltoztatja a sor tbbi rszt.
cc Megvltoztatja az egsz sort.
cw Megvltoztatja a kvetkez o szt.
x Kitrli a kurzor helyn lv o karaktert.
X vagy dh Kitrli a kurzor el otti karaktert.
D Kitrli az aktulis pozcitl a sor vgig es o rszt.
dd Kitrli az egsz sort.
dw Kitrli a kvetkez o szt.
dBet u Az aktulis pozcitl kitrli a Bet uvel jelzett rszig a szveget.
u Visszavltoztatja az el oz o vltoztatst.
<< Egy tabultor pozcival balra tolja a sort.
>> Egy tabultor pozcival jobbra tolja a sort.
<L Egy tabultor pozcival balra tolja az sszes sort az aktulis sortl kezdve
a kperny o vgig.
>L Egy tabultor pozcival jobbra tolja az sszes sort az aktulis sortl kezdve
a kperny o vgig.
>Bet u Az aktulis pozcitl a Bet uvel jelzett pontig jobbra tolja egy tabultorral
az sszes sort.
<Bet u Az aktulis pozcitl a Bet uvel jelzett pontig balra tolja egy tabultorral az
sszes sort.
J sszef uzi az aktulis sort a kvetkez ovel.
Megcserli az aktulis bet ut a kis/nagybet us prjra.
A parancsok kiadsnl hasznlhatunk szm paramtereket is, azaz pl. a 16x
parancs kitrli a kvetkez o 16 bet ut, a 3dd pedig 3 sort trl.
180 FEJEZET 13. A VI EDITOR HASZNLATA
13.3.5. Msols s mozgats
A vi editorban msolsra ill. mozgatsra buffereket (trolkat) hasznlunk. A vi
automatikusan 1-t ol 9-ig szmozva trolja az utols 9 trlt rtket. Melletk a
26 ASCII kisbet uvel lehet felhasznli buffereket denilni. A trolkra a "Szm
vagy "Bet u paranccsal hivatkozhatunk.
Nagyobb szvegrszek msolsra s mozgatsra az llomnyon bell a k-
vetkez o parancsokat hasznlhatjuk (az esetleges elhibzott, befejezetlen parancsot
az Esc gombbal lehet megszaktani):
p A legutols trlsi paranccsal kitrlt szveget illeszti a kurzor utn (azaz a
"1 rtkt szrja be).
P A legutols trlsi paranccsal kitrlt szveget illeszti a kurzor el.
"Bufferp A Buffer tartalmt illeszti a kurzor utn (azaz pl. p megegyezik a "1p pa-
ranccsal).
"BufferP A Buffer tartalmt illeszti a kurzor el.
y Szkz Az aktulis karaktert bemsolja a trlsi trolba ("1 trol).
yw A kvetkez o szt bemsolja a trlsi trolba.
yy Az aktulis sort bemsolja a trlsi trolba (pl. 12yy a kvetkez o 12 sort
msolja be, :12,40y a 12. s a 40. sor kztti szakaszt, stb.).
Y Az aktulis sort msolja be a trlsi trolba.
"Bet uyy Az aktulis sort a Bet u trolba teszi.
yBet u Az aktulis pozcitl kezdve bemsolja a Bet u jelig terjed o rszt a trlsi
trolba.
13.3.6. Visszallts s parancs-ismtls
A vi editor meg orzi az utols 9 trls eredmnyt, ezrt - ugyan csak korltozott
mrtkben - de lehet osg van az esetleges hibs utastsok el otti llapot visszal-
ltsra. Erre a kvetkez o parancsok szolglnak:
u Visszalltja az utols vltoztats el otti helyzetet.
U Visszalltja az aktulis sort, ha nem lptnk kzben ms sorra a kurzorral.
"Szmp A Szm trlsi buffer rtkt szrja be. (A Szm 1 s 9 kztt lehet).
. Megismtli a legutols vltoztatst. Ha az a "Szmp volt, eggyel megnveli
a Szmot.
13.4. LLOMNYKEZELS 181
13.3.7. Szvegrsz helyettests
Egy adott szvegrsz helyettestst a : (utols sor) parancsmdbl vgezhetjk
el. Pldul a rgi-string soronknti els o el ofordulst a kvetkez o parancs he-
lyettesti t az egsz llomnyban j-string-re:
:1,$s/rgi-string/j-string/
A : utn meg kell adni a helyettestsi tartomnyt (azaz pl. itt az els o sortl az
utolsig, amit a $ jell), majd az s parancs (substitute) utn a kt stringet. A
rgi-string regulris kifejezs is lehet. Az j-string esetn az & jel a kere-
sett kifejezst (itt a rgi-stringet) jelli, mg a % az el oz o helyettest o stringre
hivatkozik.
A parancs csak a soronknti els o el ofordulst helyettesti. Ha az sszes el o-
fordulst ki szeretnnk cserlni, hasznlhatjuk a
:1,$s/rgi-string/j-string/g
(g mint global) parancsot. Lehet osg van a helyettests interaktv meger ostsre
is, amit a g-hez hasonl c (conrm) kapcsolval llthatunk be.
Ha valamilyen okbl nem szeretnnk a keresskor klnbsget tenni a kis- s
nagybet u kztt, akkor rdemes belltani az ignorecase vltozt ( :set ignorecase
parancs).
13.4. llomnykezels
Egy adott llomny szerkesztse utn azt a lemezre a
:w
paranccsal rhatjuk ki. j llomnyknt val kirskor hasznljuk a
:w FileNv
parancsot.
Egy jabb le-t a
:e FileNv
utastssal olvashatunk be. Mivel ilyenkor az el oz o vltoztatsok elvesznek, ha
azokat nem mentettk el, az utasts hibazenettel tr vissza. Ha nem szndko-
zunk elmenteni a vltoztatsokat, akkor a
:e! FileNv
utastst kell hasznlnuk. Specilisan a
:e!
utasts jra beolvassa az ppen szerkesztett le-t a lemezr ol. A parancs utn a
szerkeszteni kvnt sor szmt is megadhatjuk, pl. az
182 FEJEZET 13. A VI EDITOR HASZNLATA
:e +14 vi.doc
a vi.doc le 14 sorra ugrik beolvass utn.
A vi lehet osget ad indulskor a shell parancssorban tbb le megadsra is.
Amennyiben a sorban kvekez o le-ra szeretnnk lpni, akkor erre hasznlhatjuk
a
:n
parancsot (ill. a :n! parancsot, ha nem akarjuk elmenteni a vltoztatsokat). Az
:n parancs utn egy esetleges j le-listt is megadhatunk.
Egy msik le tartalmt az ppen aktulis bufferba (le-ba) a
:r FileNv
paranccsal szrhatjuk be az aktulis sor utn.
Az ppen hasznlt le-t ill. a bufferhez tartoz informcikat a Ctrl-G parancs
hasznlatval krhetjk le.
A vi editorbl a
ZZ
paranccsal lphetnk ki: ekkor elment odik az ppen szerkesztett le. Ha ments
nlkl szeretnnk kilpni, akkor erre a
:q
parancs szolgl, amennyiben nem vltoztattuk meg a buffert. Vltoztats esetn a
:q!
parancs eldobja a vltoztatsokat s kilp a vi-bl.
A UNIX rendszerben az llomnyoknak nincsenek a VMS rendszerben
hasznlthoz hasonl verziszmai, s nincs undelete tpus parancs sem. Ezrt
a szerkesztett llomnyok kirsa vgleg letrli az el oz o vltozatot!
13.5. A shell elrse a vi-bl
A vi editorban lehet osg van a UNIX opercis rendszer shelljnek tbbfle
elrsre. A legegyszer ubben a
:sh
paranccsal lphetnk ki a shellbe, ahonnan a Ctrl-D vagy exit utastssal visz-
szakerlnk az editorba. rdemes a shellbe val kilps el ott mindenkppen el-
menteni a le-t.
Egy Shell-parancsot a
:!Shell-parancs
utasts hajt vgre, (pl. a
:!ls
13.6. MAKRK S PARANCSOK DEFINILSA 183
kilistzza az aktulis knyvtr tartalmt). A legutols ilyen parancsot a
:!!
utastssal ismtelhetjk meg.
Egy UNIX Shell-parancs vgeredmnyt (a standard outputot) a
:Szmr!Shell-parancs
utasts rja be a Szm sortl kezd od oen a le-ba. A Szm megadsa nlkl az
aktulis sorra hivatkozunk.
13.6. Makrk s parancsok denilsa
Gyakran szksg van bizonyos bonyolultabb parancsok tbbszri vgrahajtsra.
A UNIX opercis rendszer vi editora lehet osget ad vi parancsok trolsra s
vgrehajtsra.
A legegyszer ubb ilyen mdszer a makr ltrehozsa. Ekkor a vi parancsokat
egy Bet uvel jelzett bufferbe kell betlteni (pl. soronknt), majd a parancsokat
a @@Bet u paranccsal vgrehajthatjuk. Lehet osg van a legutols ilyen parancs
megismtlsre is, amire a @@@szolgl. A Bet u kis- s nagybet u egyarnt lehet, az
a-z bufferek betltik, mg az A-Z bufferek pedig hozzf uzik a szveget a buffer-
hez, gy lehet osg van a makrk lpsenknti fejlesztsre is. Pldul az
o :1,$s/haho/haliho/g Esc "Add
parancs-sorozat utn a @@A parancs vgrehajtja a helyettestst. A munkaterletre
rt parancsot az A bufferben helyeztk el. A pldt parancs zemmdbl indulva,
karakterenknt gpeljk be!
A vi rendelkezik a makrknl hatkonyabb parancsismtlsi eszkzzel is,
mgpedig az j parancsok (billenty u letsek) denilsval. A
:map Bet u vi-Parancsok
utasts a Bet u billenty u lenyomsa esetn (parancs zemmdban) vgrehajtja a
felsorolt vi-Parancsokat. Amennyiben szveg beszrsakor is szeretnnk hasz-
nlni ez a dencit, ezt a
:map! Bet u vi-Parancsok
utastssal tehetjk meg. A map parancs paramter nlkl kirja az ppen hasznlt
dencis listt. A map parancs hatst az unmap parancs sznteti meg. Pldul a
:map q :q! Ctrl-V Enter Enter
parancs megvltoztatja az q gomb hatst, az q lenyomsa utn kilpnk a vi-
bl.
Egy adott makrt vagy billenty u-dencit a .exrc le-ban denilva tehetnk
permanenss.
184 FEJEZET 13. A VI EDITOR HASZNLATA
Egy adott denci esetn, ha az ppen hasznlt karakterre akarunk hivatkozni,
hasznljuk a Ctrl-V gombot a karakter el ott. Szintn ezt a karaktert kell hasz-
nlni, ha a terminl funkcigombjait szeretnnk denilni.
A map parancs mellett a :ab (abbreviation) parancsot is hasznlhatjuk gyakran
hasznlt rvidtsek esetn. Az
:ab t type
parancs utn szvegbeszrs zemmdban az sszes Szkz-t-Szkz kifejezs-
b ol Szkz-type-Szkz kifejezs lesz. Nem helyettest odik viszont a t sem egy
szn bell, sem parancsmdban. Az :ab parancs paramter nlkl kirja az ppen
hasznlt rvidtseket, a :unab pedig egy el oz o :ab hatst sznteti meg.
14. fejezet
A MicroEMACS szvegszerkeszt o
lersa
Az uemacs szvegszerkeszt o egyszerre tbb llomnyt is tud kezelni s meg-
emacs
rvid lersa
a 46. oldalon
jelenteni a kperny on (ezt csak a rendelkezsre ll memria, ill. a kperny o
mrete korltozza). A MicroEMACS szerkeszt ot tbb llomny esetn a
$ uemacs llomnyNv1 llomnyNv2 ...
parancs kiadsval hvjuk meg. Nhny gpen a uemacs parancs helyett az emacs
parancsot kell hasznlnunk.
Lehet osg van el ore meghatrozhat parancssorozatok belltsra (n. mak-
rk). A knyelmesebb m ukdtets rdekben az egyes gpeken a felhasznl be-
jelentkezsi knyvtrban a .emacsrc llomny tartalmaz egy makr-sorozatot,
amelyet a szerkeszt obe val belps el ott a MicroEMACS automatikusan vgre-
hajt.
A MicroEMACS magyar nyelv u tant-llomnnyal is rendelkezik (J. Tth
Gbor fordtsa), ami megtantja a szvegszerkeszt o alapszint u hasznlatt. A
program a
$ tanits_emacs
utastssal hvhat be az erre belltott gpeken.
14.1. A legfontosabb MicroEMACS parancsok
A parancsok kiadshoz ltalban a Control (vagy Ctrl ) s az Esc (vagy
Escape ) billenty uket egy msik billenty uvel kombinciban hasznljuk. A pa-
rancsok jellsre a kvetkez o MicroEMACS jellseket hasznljuk:
185
186 FEJEZET 14. A MICROEMACS SZVEGSZERKESZT

O LERSA
^Billenty u a Ctrl billenty ut lenyomva tartva a Billenty u -t kell lenyomni.
Azaz ^V jelentse: a Ctrl billenty ut lenyomva tartva a V billenty ut kell
lenyomni.
M-Billenty u nyomjuk meg majd engedjk el az Escape (vagy Esc ) gombot,
majd a Billenty u -t (az Escape a MicroEMACS n. metakaraktere). A
kis- s nagybet uk kztt a program nem tesz klnbsget. Nhny parancs-
nl (pl. M-^W) a Billenty u lenyomsa el ott a Ctrl billenty ut is le kell
nyomni.
Bizonyos terminloknl nincs kln Esc gomb, ekkor vagy a ^[ kom-
bincit hasznlhatjuk helyette, vagy tdenilhatjuk a meta karaktert a
MicroEMACS-ban egy msik gombra.
AMicroEMACS parancsait megszaktani a ^G utastssal lehet, amikor a prog-
ram paramtereket (adatot) krdez be. Ha nem tudjuk, hogy mi trtnik (vagy mit
krdez ppen a program), ezt a parancsot kell kiadnunk! Ne feledjk, hogy a
programbl vltoztats nlkl a ^X ^C paranccsal lphetnk ki!
14.2. Mozgs az llomnyban
A szerkeszt obe val belps utn megrhatjuk a kvnt szveget, mikzben a kur-
zor mozgatsra a billenty uzeten tallhat nyilakat hasznlhatjuk. Ha a billen-
ty uzet nyilai valamilyen ok miatt nem m ukdnek rendesen, akkor a kvetkez o
parancsokat is hasznlhatjuk a kperny on val mozgsra:
^F egy bet u el ore
^B egy bet u vissza
^N kvetkez o sor
^P el oz o sor
A szvegben val gyorsabb (knyelmesebb) mozgst a kvetkez o parancsok
teszik lehet ov:
^A sor elejre ugrik
^E a sor vgre ugrik
^V egy kperny ovel el ore
^Z egy kperny ovel vissza
M-B a bekezdsre elejre ugrik
M-N a bekezds vgre ugrik
M-< a szveg elejre ugrik
M-> a szveg vgre ugrik
M-F a kvetkez o szra ugrik
M-B az el oz o szra ugrik
M-G egy adott sorra ugrik
14.3. KERESS S HELYETTESTS 187
14.2.1. Trls s beszrs
A szveg begpelsekor a kurzor el ott ll bet ut a Backspace gombbal lehet
trlni (ezt a gombot nha Delete vagy felirat jelzi). Ha esetleg egyik gom-
bot sem tudjuk megtallni a billenty uzeten, akkor a ^H parancs szintn trli az
el oz o bet ut. Ha a szvegben nagyobb rszeket szeretnnk trlni, akkor hasznosak
lehetnek a kvetkez o utastsok:
M-Backspace az el oz o szt trli
M-D a kvetkez o szt trli
^K Az adott kurzorpozcitl a sor vgig trl, msodik lenyomsra pedig kitrli
a sorvge karaktert.
^W Kitrli az aktulis kurzorpozci s az n. jel kztti tartomnyt. A jel-et
az aktulis kurzorpozciban az M-Space (Szkz) utastssal rgzthetjk.
M-W Eltrolja az aktulis kurzorpozci s az n. jel kztti tartomnyt.
M-^W Az aktulis bekezdst trli ki.
^X ^O Kitrli az aktulis kurzorpozci krli res sorokat.
Ha az el oz o utastsokkal esetleg olyan rszt trltnk ki, amelyet nem kel-
lett volna, NE ESSNK PNIKBA! A MicroEMACS a legutols trlt egysget
egy trolba teszi, s onnan a ^Y utastssal bemsolhatjuk az aktulis kurzorpoz-
ciba. Ezzel lehetsges szvegrszek mozgatsa s a ^Y tbbszri lenyomsval
msolsa is, amely a kvetkez okppen vgezhet o:
- bejelljk az aktulis pozcit az n. jel-lel, az M-Szkz utastssal;
- a tartomny msik vgre mozgunk, s kitrljk (^W) vagy egyszer uen csak
bemsoljuk (M-W) a tartomnyt a trls troljba;
- az j helyre vissszk a kurzort, s ott a ^Y paranccsal akr tbbszr is
el ohvhatjuk a trlsi trolbl az adatokat.
14.3. Keress s helyettests
A MicroEMACS kpes egy szvegrsz (string) megkeressre, s esetleges he-
lyettestsre.
Egy stringet az adott pozci utn a ^S utasts
1
segtsgvel tallhatunk meg.
A parancs kiadsa utn kri a keresend o szveget, amelyet a meta karakterrel
1
Bizonyos esetekben a ^S kombinci lelltja a kperny ore val rst. Ekkor a ^Q paranccsal
jra engedlyezni kell a kperny ore val rst, s a ^S helyett a ^\-t kell hasznlnunk
188 FEJEZET 14. A MICROEMACS SZVEGSZERKESZT

O LERSA
( Esc gomb) kell lezrni. Ezutn a kurzor a megtallt szvegrszre ll. Ha
ezekutn jra ugyanazt a stringet szeretnnk keresni, a ^S utasts utn mr csak
a meta karaktert ( Esc gomb) kell letni.
A ^R utasts az adott kurzorpozci el otti keresst teszi lehet ov, hasznlata
megegyezik a ^S paranccsal.
Ha nemcsak keresni, de helyettesteni is akarunk egy szvegrszt, akkor az
M-R s az M-^R parancsokat kell hasznlnunk. Az M-R parancs kiadsa utn utn
kri a RgiSzveget, majd az jSzveget. A szvegeket a meta karakterrel kell
lezrni. Ezutn az adott pozcitl kezdve a RgiSzveg minden el ofordulst a
jSzvegre cserli ki.
Ha nem vagyunk biztosak, hogy mindenhol el kell-e vgezni a csert, akkor
az interaktv M-^R parancsot kell hasznlnunk. Ez hasonlan m ukdik az M-R pa-
rancshoz, de a RgiSzveg minden el ofordulsnl megkrdezi, kicserlje-e, vagy
sem. A vlaszok a kvetkez ok lehetnek:
^G megszakts
. megszakad, s visszaugrik a kezd oponthoz
Y helyettests
N nem helyettest az adott helyen, de folytatja a keresst
! felttel nlkl helyettesti az sszes maradk el ofordulst
? segtsg
A keress sorn a szvegek egyezsnl a MicroEMACS alaprtelmezsben
nem klnbzteti meg a kisbet uket s a nagybet uket. Ha erre mgis szksgnk
lenne, akkor az EXACT zemmddal (amit a ^X-M exact parancs llt be, l. 190.
oldal) ezt megtehetjk.
14.3.1. llomnykezels
Egy llomnyt a ^X ^F utasts segtsgvel olvashatunk be. Az utasts megkr-
dezi a keresett llomny nevt, amelyet a Return (vagy Enter ) gombbal kell
lezrni. Ha ez az llomny nem ltezik, a MicroEMACS ltrehozza azt.
A szerkesztett llomnyainkat a szmtgp memrijbl ki kell rnunk a
diszkre, ha nem akarjuk, hogy a vltoztatsok elvesszenek a MicroEMACS-bl
val kilpssel. Ezt a ^X ^S paranccsal
1
vgezhetjk el munka kzben. Ha a
szerkesztst is be akarjuk fejezni, s ki akarunk lpni a programbl a szveg el-
mentsvel, akkor az M-Z parancsot rdemes hasznlnunk. Ha brmilyen okbl
14.3. KERESS S HELYETTESTS 189
NEM akarjuk meg orizni a vltoztatsokat, akkor a ^X ^C a mdostsok elmen-
tse nlkl kilp a programbl (de el otte megkrdezi, hogy valban el akarjuk-e
dobni a vltoztatsokat).
A program ismeri mg a kvetkez o llomnykezel o utastsokat is:
^X ^R egy j llomnyt olvas be az ppen aktulis bufferbe. A buffer el oz o tar-
talmt trli (de gyelmeztet, ha mr vltoztattunk valamit rajta).
^X ^I az adott kurzorpozcihoz beszr egy msik llomnyt.
^X ^V beolvas egy llomnyt VIEW zemmdban (azaz nem tudunk rajta vltoz-
tatni).
^X ^W kirja a buffert egy msik llomnyba, aminek megkrdezi a nevt.
^X N az ppen aktulis bufferhez tartoz llomny nevt vltoztatja meg.
14.3.2. Buffer s ablak kezels
A MicroEMACS program nagy el onye, hogy egyszerre tbb llomnyt is kpes
hasznlni, s ot a kperny on tbb llomnyt is szerkeszthetnk egyszerre. A prog-
ram minden llomnyhoz egy trolt (n. buffert) rendel. A buffereket kln-
kln kezelhetjk.
A buffereket a MicroEMACS a kperny on ablakokban jelenti meg. Minden
buffer aljn egy llapotsor jelenik meg, amelyik tartalmazza a program nevt (pl.
MicroEMACS 3.10), zrjelek kztt az ppen hasznlt zemmdokat, a buffer s
a bufferhez tartoz llomny nevt. A sor legelejn egy * jelzi, ha mr vgeztnk
vltoztatsokat a bufferen, de mg nem mentettk el az llomnyba.
A kvetkez o utastsokkal kezelhetjk az ablakokat a programban:
^X 2 flbevgja az ppen aktulis ablakot
^X 1 az ppen aktulis ablak kivtelvel minden ms ablakot trl a kperny or ol
^X 0 trli a kperny or ol az aktulis ablakot
^X O a kvetkez o ablakra ugrik
^X P az el oz o ablakra ugrik
M-^V egyet lapoz kvetkez o ablakban el ore
M-^Z egyet lapoz kvetkez o ablakban visszafel
^X Z egy sorral megnagytja az ablak mrett
^X ^Z egy sorral cskkenti az ablak mrett
^X ^N egy sorral eltolja az ablakot lefel
190 FEJEZET 14. A MICROEMACS SZVEGSZERKESZT

O LERSA
^X ^P egy sorral eltolja az ablakot felfel
M-Szm ^X W az ablak mrete szm sor lesz
^L jra rja a kperny ot
A bufferek kezelsre a kvetkez o parancsok szolglnak:
^X X a kvetkez o bufferre ugrik
^X B egy msik bufferre ugrik
M-^N megvltoztatja az aktulis buffer nevt
^X K kitrl egy buffert (ez a buffer nem lehet kijelezve a kperny on)
^X ^B kijelzi az ppen hasznlt bufferek listjt
14.4. Specilis utastsok
A MicroEMACS-ban klnleges szerepe van az aktulis kurzorpozci s az n.
jel kztti tartomnynak (pl. ezt a tartomnyt ki tudjuk trlni a ^W utastssal).
Ajel-et egy adott kurzorpozciba az M-Space (Szkz) utastssal rgzthetjk.
Az llomnyt a ^X < utastssal lesz ukthetjk az adott tartomnyra (azaz akkor
csak ezt a darabot ltjuk s rhetjk el). A lesz uktett tartomnybl a ^X > utasts
lltja vissza a teljes llomnyt.
Hasznlhatjuk a jel-et egy adott pozci megjellsre is, mivel a ^X ^X
utasts felcserli a kurzorpozcit s a jel helyt.
A MicroEMACS lehet osget ad kisbet u-nagybet u cserre a kvetkez o utast-
sok segtsgvel:
M-U nagybet uss vltoztatja a szt
M-C nagy kezd obet uss vltoztatja a szt
M-L kisbet uss vltoztatja a szt
^X ^U nagybet uss vltoztatja a kurzorpozci s a jel kztti tartomnyt
^X ^L kisbet uss vltoztatja a kurzorpozci s a jel kztti tartomnyt
A MicroEMACS klnbz o zemmdokban m ukdhet. Az zemmd bell-
tst a ^X M, trlst a ^X ^M parancs vgzi egy adott buffer esetben. Ha ezt az
sszes bufferre akarjuk kiadni, akkor az M-M (bellts) ill. M-^M (trls) parancsot
kell hasznlni
2
. A jelenleg hasznlt zemmdok a kvetkez ok:
2
Vigyzzunk, mert ez csak a parancs kiadsa UTN beolvasott bufferekre hatsos!
14.4. SPECILIS UTASTSOK 191
OVER bekapcsolja a fellrst a beszrs helyett
WRAP a sor vge utn (amit az M-szm ^X-F paranccsal lehet szm szlesre bel-
ltani) automatikusan j sorba ugrik
VIEW csak olvass zemmdot llt be (azaz nem tudunk vltoztatni a bufferen)
MAGIC specilis, a regulris kifejezseket hasznl keressi mdot llt be
EXACT a keressnl s helyettestsnl megklnbzteti a kis- s nagybet uket
CMODE a C programnyelvek rsakor hasznlatos zemmdot llt be (pl. ellen orzi
a klnbz o zrjelek egyezst, stb.)
Az M-Q utasts segtsgvel betrdelhetjk a bekezdst az M-Szm ^X-F pa-
ranccsal belltott Szm bet unyi szlessgbe.
A MicroEMACS lehet osget nyjt az opercis rendszer elrsre. A ^X !
utastssal egy UNIX parancsot tudunk elindtani az opercis rendszerben, mg a
^X C egy j UNIX shellt indt el, ahonnan a szoksos exit utastssal lphetnk
ki.
A MicroEMACS az el oz o rszekben felsorolt parancsokat bizonyos billenty u-
letsekre hajtotta vgre. A parancsok hozzrendelse a billenty ukhz megvl-
toztathat, a felhasznl tetszs szerint denilhatja jra az egsz billenty uzetet.
A program emellett lehet osget ad jabb parancsok (makrk) ltrehozsra tbb
MicroEMACS utasts sszef uzsvel. Ezeket a makrkat elhelyezhetjk kln
parancs le-ban s nv szerint hvhatjuk meg, vagy kzvetlenl egy billenty uhz
is rendelhetjk oket. A leggyakoribb makrkezel o utastsok a kvetkez ok:
^X ? ler egy adott gombhoz tartoz makrt
M-A kilistzza a makrkat egy kulcs szerint
^X ( elkezdi rgzteni a billenty uzeten beadott utastsokat
^X ) befejezi a billenty uzeten beadott utastsok rgztst
^X E lefuttatja (az el oz o kt paranccsal rgztett) billenty u-makrt
M-^X vgrehajt egy MicroEMACS utasts sort (makrt).
A MicroEMACS az itt emltetteken kvl mg sok ms lehet osggel rendelke-
zik (pl. makr programrsa, feltteles elgazsok hasznlata, lpsenknti makr
vgrehajts (debug) stb.), amit egyrszt az online helpben (M-? parancs), msrszt
ltalban a /usr/local/doc/emacs/emacs.txt llomnyban tallhatnak meg az
rdekl od ok.
192 FEJEZET 14. A MICROEMACS SZVEGSZERKESZT

O LERSA
15. fejezet
A mail program m ukdse
15.1. A mail felptse
A mail parancs ktfajta levelesldt kezel, a rendszer s a felhasznl sajt levl- mail
rvid lersa
a 65. oldalon
llomnyt. Minden, a UNIX opercis rendszeren ltez o felhasznl szmra
ltezik egy rendszer-levlszekrny, ltalban a
/usr/spool/mail/FelhasznliAzonost
llomnyknt. A rendszer ebben trolja azokat a leveleket, amelyeket a felhasz-
nl kapott, de mg nem olvasott, trlt vagy mentett el sajt llomnyba. Alap-
rtelmezsben, ha a felhasznl olvasta, trlte vagy elmentette az sszes rendszer-
mailbox zenetet, a levlszekrny kitrl odik. Ha valamilyen okbl mgis meg
szeretnnk tartani ezt az llomnyt, akkor a rendszergazda ezt bellthatja a
chmod 755 RendszerLevlszekrnyKnyvtr
paranccsal.
A rendszer levlszekrnye mellett minden felhasznlnak szemlyi levelesl-
dja van. Alaprtelmezsben ez a $HOME/mbox llomny (ami pl. lancelot fel-
hasznl esetn /u/lancelot/mbox), de ez az MBOX shell vltozval tllthat. A
mail program az j levelek elolvassakor azokat a rendszer levelesldjbl ebbe
az llomnyba mozgatja t (hacsak msknt nem rendelkeznk).
A levelez o program kpes n. folder (rendez o) llomnyok hasznlatra.
Ezeket a levelek csoportostsra hasznlhatjuk, a mail program segtsgvel a
leveleket az egyes folderek kztt mozgathatjuk, stb.. A foldereket clszer u kln
alknyvtrban elhelyezni.
Az esetleges j leveleket a UNIX mail rendszere a MAIL, MAILCHECK s a
MAILMSG krnyezeti vltozk felhasznlsval ellen orzi le. A MAIL vltoz hat-
193
194 FEJEZET 15. A MAIL PROGRAM M

UKDSE
rozza meg a rendszer levlszekrnynek helyt. Interaktv bejelentkezs esetn a
MAILCHECK vltoz mondja meg, milyen gyakran ellen orizze az esetleges j levl
rkezst az opercis rendszer (alaprtelmezsben ez 600 msodperc). j levl
rkezsekor a MAILMSG krnyezeti vltozk tartalmt drja ki (ez ltalban "YOU
HAVE NEW MAIL").
A mail program elindtsakor el oszr vgrehajtja a /usr/lib/Mail.rc llo-
mnyban tallhat mailbox parancsokat, majd a MAILRC vltoz ltal denilt fel-
hasznli llomnyt, amennyiben ltezik (alaprtelmezsben ez a $HOME/.mailrc).
AUNIXopercis rendszer lehet osget ad a levelek automatikus tovbbtsra,
amennyiben a felhasznl HOME knyvtrban ltezik a .forward le. Az l-
lomnynak egyszer uen tartalmaznia kell a cmzettet (vagy a cmzettek listjt
vessz ovel elvlasztva). A levelek tovbbtsa ilyenkor automatikus, ehhez nem
kell belpni a mail rendszerbe.
A mail parancs kiadsakor klnbz o kapcsolkat hasznlhatunk. A leg-
gyakrabban hasznltak ezek kzl a kvetkez ok:
-e Leellen orzi, hogy van-e j levl. Ez a kapcsol klnsen script le-okban
hasznlhat jl, mivel az j levelet a parancs visszatrsi rtkben (st-
tuszban) jelzi.
-f [ File ] A mail a rendszer leveleslda helyett az $HOME/mbox (ill. a megadott File)
llomnyt hasznlja.
-f +Folder A rendszer leveleslda helyett a megadott folder alknyvtrban a Folder
folder llomnyt hasznlja. A folder alknyvtrat pl. az $HOME/.mailrc
llomnyban adhatjuk meg.
-i Letiltja az INTERRUPT jelet (ez klnsen zajos vonalak, pl. modem
estn hasznos).
-n Letiltja az /usr/lib/Mail.rc llomny beolvasst indulskor.
-N Nem nyomtatja ki a kezdeti fejlceket.
-H Csak a kezdeti fejlceket nyomtatja ki.
-s Trgy Az elkldend o levl trgya (Subject) a Trgy lesz.
-v Bekapcsolja a rszletes (verbose) zemmdot.
Pldk:
Ha a szemlyes levelesldnk tartalmt szeretnnk megnzni, akkor ezt a
$ mail -f
paranccsal tehetjuk meg.
Amennyiben leveleinket folderekbe osztottuk szt, akkor pl. a gral folder
15.2. PARANCSOK LEVL KLDSE KZBEN 195
tartalmt a
$ mail -f +gral
utastssal nzhetjk meg.
15.2. Parancsok levl kldse kzben
Mikzben levelet kldnk, a mail kpes specilis, n. tilde parancsok feldolgo-
zsra is. A parancsokat egy sorelejei tilde (~) katakter el ozi meg. A leggyakrab-
ban hasznlt ilyen parancsok a kvetkez ok:
~! [ShellParancs]
Kilp a shellbe (s esetleg vgrehajta a ShellParancsot).
~.
A levl vgt jelzi (helyettesti a Ctrl-D-t).
~?
Kilistzza a tilde parancsokat.
~: MailParancs
Vgrehajta a MailParancsot. Csak akkor hasznlhat, ha el otte levlolva-
ssra indtottuk el a mail programot.
~a
A $HOME/.mailrc llomnyban megadhat n. alrs stringet f uzi a levl-
hez.
~b Felhasznl
A Felhasznlt hozzadja az n. vakmsolat (Bcc, blind carbon copy)
listhoz. A Felhasznl ekkor megkapja a levl msolatt, de a levl fe-
jlcben NEM jelenik meg, hogy o is kapott msolatot.
~c Felhasznl
A Felhasznlt hozzadja a msolat (Cc, carbon copy) listhoz, s a levl
fejlcben megjelenik, hogy o is kapott msolatot.
~t Felhasznl
A Felhasznlt hozzadja a cmzett (To) listhoz. A levl fejlcben meg-
jelenik, hogy o is a cmzettek kztt van.
~h
megkrdezi a Subject:, To:, Cc: s Bcc: mez ok tartalmt. Az esetleges
el oz o belltsokat fell lehet rni.
196 FEJEZET 15. A MAIL PROGRAM M

UKDSE
~e
az EDITOR vltozval (alapesetben ed) megadott szerkeszt ot hvja be a levl
elksztshez.
~v
a VISUAL vltozval (alapesetben vi) megadott szerkeszt ot hvja be a levl
elksztshez.
~f [zenetLista] Felhasznl
tovbbkldi az zenetListt (vagy az aktulis levelet), de csak ha levl
olvassa kzben vagyunk. A leveleket vltoztats nlkl kldi el.
~m [zenetLista]
Beszrja az zenetLista levelek tartalmt (vagy az aktulis levelet) a le-
vlbe, de csak ha levl olvassa kzben vagyunk. A beszrt szveget egy
TAB karakterrel jobbra tolja.
~r llomny
beolvassa a levlbe az llomnyt. Hasznlhat mg a ~< llomny parancs
is.
~w llomny
a levelet belerja az llomnyba, de a fejlcek nlkl.
~q
kilp a levl elkldse nlkl. Anemres, rszben ksz levelet a dead.letter
llomnyba rja.
~x
kilp a levl elkldse nlkl, de a rszben ksz levelet nem menti el a
dead.letter llomnyba.
15.3. A mailbox alparancsok
A leveleslda ill. a folderek olvassakor a mail sokfle paranccsal segt a fel-
hasznlnak. A parancsok megadsakor az egyes levelekre szmokkal ill. listval
hivatkozhatunk. A lista lehet a szmok felsorolsa szkzzel elvlasztva (pl. 1
2 4 9), de lehet egy tartomny is (pl. 1-137). A . az ppen aktulis levlre vo-
natkozik (amit a > jell), mg a ^ az els o, a $ pedig az utols levlre vonatkozik.
Az sszes levlre a * jellel hivatkozhatunk. A Felhasznl kifejezs az sszes,
az adott Felhasznltl rkez o levlre vonatkozik. A /Szveg minden levelet
kivlaszt, aminek Subject sorban a Szveg el ofordul (kis- s nagybet ut nem
klnbztet meg itt a rendszer). Ha a :llapot parancsot adjuk ki, akkor minden
15.3. A MAILBOX ALPARANCSOK 197
adott llapot levlre hivatkozhatunk (az llapot lehet d (deleted, trlt), n (new,
j), o (old, rgi), r (read, olvasott), u (unread, nem olvasott, de kilistzott)).
Leggyakrabban a kvetkez o parancsokat szoktk hasznlni (zrjelben a parancs
esetleges rvidtst adjuk meg):
! ShellParancs
Vgrehajta a ShellParancsot.
shell (sh)
Meghvja a shell programot.
?
Rviden kilistzza a parancsokat.
list (l)
Rviden kilistzza a mailbox utastsokat.
chdir Knyvtr (cd)
Az aktulis knyvtr a Knyvtr lesz.
from [zenetLista] (f)
Kirja az zenetLista fejlceinek tartalmt.
z [-]
Kilistzza az ppen aktulis levl krli 20 levelet. Argumentum nlkl
a kvetkez o 20 levlre ugrik, mg - argumentummal visszafel mozog 20
levlnyit.
top [ zenetLista]
Kirja az zenetListaban tallhat levelek els o 5 sort.
size [zenetLista]
Kirja az zenetListaban tallhat levelek mrett.
next [zenet] (n)
A kvetkez o levelet olvassa be, s rja ki a kperny ore.
print [zenetLista] (p)
Kirja az zenetLista tartalmt a kperny ore.
Print [zenetLista] (p)
Kirja az zenetLista tartalmt a kperny ore, az sszes fejlc-mez o tar-
talmval egytt.
more [zenetLista] (mo)
Kirja az zenetListan tallhat leveleket a kperny ore laponknt az el ore
denilt lapoz program (alapeseteben a more) segtsgvel.
198 FEJEZET 15. A MAIL PROGRAM M

UKDSE
edit [zenetLista] (e)
Az EDITOR vltozval jelzett editort (alapesetben ed) hasznlva szerkesztsre
tadja a leveleket.
visual [zenetLista] (v)
A VISUAL vltozval jelzett editort (alapesetben ed) hasznlva szerkesztsre
tadja a leveleket.
copy [zenetLista] llomny (c, co)
Az zenetLista minden levelt hozzf uzi az llomnyhoz, de nem jelzi ezt
a leveleken.
save [zenetLista] llomny (s)
Az zenetLista minden levelt hozzf uzi az llomnyhoz, s kitrli azokat.
llomny megadsa nlkl az mbox le-ra hivatkozik.
delete [zenetLista] (d)
Az zenetLista leveleit kijelli trlsre. A mail parancsbl val kilps
el ott mg hasznlhatjuk az undelete parancsot a levelek visszaszerzsre.
undelete [zenetLista] (u)
Az zenetLista leveleinek trlsi jellst megsznteti. Lista megadsa
nlkl az utols kitrlt levelet hozza vissza.
exit (ex vagy x)
Kilp a mail programbl, s a leveleslda llapott az eredeti tartalomra
lltja vissza (pl. nem trli a delete paranccsal kijellt leveleket).
quit (q)
Kilp a mail programbl, s a leveleslda llapott az j, mdostott rt-
kekre (tartalomra) lltja be. Trli a delete paranccsal kijellt leveleket,
mdostja a rendszer levelesldt s az mbox llomnyt.
folder [llomnyNv] (fo)
tkapcsol az llomnyNv folderre, miutn trolta az ppen aktulisat. Ar-
gumentum nlkl kirja az aktulis folder rtkt. Az llomnynv mega-
dsnl hivatkozhatunk az el oz o llomnyra a #, a rendszer levelesldra a
% ( ez a
/usr/spool/mail/FelhasznliAzonostle), a szemlyi levelesldra
az & (ez a $HOME/mbox le), s a folder knyvtr egy tagjra a +Folder
rvidtsekkel.
folders
Kilistzza a folder knyvtr tartalmt.
touch [zenetLista]
Arendszer levelesldbl tmozgatja a szemlyi levelesldba az zenetListt.
15.3. A MAILBOX ALPARANCSOK 199
mail CmzettLista (m)
Elindtja a levlkld o programot a CmzettListn szerepl o felhasznlknak
cmezve.
alias (a)
Argumentum nlkl kirja az ppen felismert sszefoglal neveket. Az
& alias kerekasztal lancelot artur@@camelot galahad sirrobin
parancs kiadsa utn a kerekasztal cmzs minden felsorolt felhasznl-
nak elkldi a levelet.
reply [zenet] (r)
Vlaszolhatunk az zenetet kld o felhasznlnak.
Reply [zenet]
Vlaszolhatunk az zenetet kld o felhasznlnak. Az zenet minden ere-
deti cmzettje szintn megkapja a vlaszlevelet.
source llomny (so)
Beolvassa s vgrehajtja az llomnyban tallhat mailbox parancsokat.
ignore Kulcssz
A levl fejrszben megjelen o Kulcsszval megadott sorokat nem jelzi ki.
set [Opci [=rtk]] (se)
Argumentum nlkl kirja az sszes belltott opcit. Egy adott Opci
megadsakor annak rtkt lltja be. Egy ktllapot, a settel belltott op-
cit az unset paranccsal trlhetnk. A leggyakrabban hasznlt vltozk:
append
Az j leveleket az mbox vghez illeszti az alaprtelmezsbeli kezdet
helyett.
askcc , askbcc , asksub
Belltsa esetn a program megkrdezi a megfelel o fejlc-mez ot.
folder=Knyvtr
A mail alapknyvtrnak helyt denilja. A parancs kiadsa utn
az sszes +llomny tpus kifejezst a mail a Knyvtr/llomny
alakra fordtja.
ignore
Letiltja az Interruptot (megszaktst). Zajos vonal hasznlatakor hasznos.
indentprefix=String
A ~m parancs ltal hasznlatos stringet lltja be. Alaprtelmezsben
ez a TAB.
200 FEJEZET 15. A MAIL PROGRAM M

UKDSE
outfolder
A kimen o levelekr ol kszl o msolat llomnyokat a folder knyv-
trba helyezi.
record=llomnyNv
Az sszes kimen o levlr ol msolatot kszt az llomnyNv llomnyba.
showto
A fejlc kirsa esetn, ha a levl t olnk ered, a cmzett nevt rja ki a
felad neve helyett.
sign=Alrs Az alrs string rtkt lltja be, amit aztn a ~a parancs-
csal hvhatunk be.
Pldk:
Ha nem akarjuk ltni a levelek listzsakor a Received mez ot, adjuk a kvet-
kez o sort a $HOME/.mailrc llomnyhoz:
ignore received
A $HOME/levelek folder knyvtr belltst pl. a kvetkez o utastssal v-
gezhetjk el a $HOME/.mailrc llomnyban:
set folder=$HOME/levelek
A 2. szm levelet a gral folderbe a
& s 2 +gral
paranccsal menthetjk el.
A kimen o levelekr ol automatikusan msolatot a $HOME/kimeno folderbe a
& set record=$HOME/kimeno
.mailrc parancssorokkal kaphatunk.
A kimeno folder tartalmt a
$ mail -f +kimeno
shell parancssorral olvashatjuk el.
A /usr/lib/Mail.rc llomnyban belltott
15.3. A MAILBOX ALPARANCSOK 201
set askcc
parancs hatst (alaprtelmezs) egy
unset askcc
paranccsal kszblhetjk ki a .mailrc llomnyban.
Nagyobb csoportokat az alias paranccsal a kvetkez okppen denilhatunk
a .mailrc llomnyban:
& alias kerekasztal lancelot artur@@camelot galahad sirrobin
& alias wizard @mordor.UUCP:gandalf@hobbit
& alias wizards merlin@camelot oz wizard
Ha ezek utn a
$ mail wizards <level
paranccsal kldnk el egy level llomnyt, azt a mail a merlin@@camelot, az
oz s a @mordor.UUCP:gandalf@hobbit felhasznlknak kldi el.
202 FEJEZET 15. A MAIL PROGRAM M

UKDSE
16. fejezet
Az elm rszletes hasznlata
Az elm mailer nem a UNIX opercis rendszer rsze, viszont a beptett lev- elm
rvid lersa
a 68. oldalon
elez orendszernl knyelmesebb felletet nyjt a felhasznl szmra. Tekintve,
hogy a programnemrsze az opercis rendszernek, csak azokon gpeken elrhet o,
ahol azt a rendszergazda installlta. Az elm alapszint u hasznlatt a 8.2.2 fe-
jezetben ismertettk.
Az elm a $HOME/.elm/elmrc llomnyon keresztl programozhat. A prog-
ram m ukdik ezen llomny nlkl is, de clszer u a rendszergazdtl krni egy
mintt, s azt kitlteni ignyeink szerint.
Az elm els o hasznlatakor ltre akarja hozni a .elm knyvtrat, s a kvetkez o
felirat jelenik meg
1
:
Notice:
This version of elm requires the use of a .elm directory in your home
directory to store elmrc and alias files. Shall I create the
directory .elm for you and set it up (y/n)? y
Nyomjuk le a Enter gombot, mire a
Great! Ill do it now
Notice:
elm require the use of folders directory to store your mail folders in.
Shall I create the directory $HOME/Mail for you (y/n)? y
szveg jelenik meg.
Nyomjuk le ismtelten az Enter gombot, s ezzel bejutunk a f omenbe. Ezt
az eljrst csak egyszer kell megcsinlni, a program ks obbi hasznlata sorn
1
Az elm jabb verziiban a szveg kiss megvltozhat! Ez igaz az itt felsorolt sszes pldra
is.
203
204 FEJEZET 16. AZ ELM RSZLETES HASZNLATA
egyb ol a f omenbe jutunk. FIGYELEM! Amennyiben a fenti krdseknl no-
t vlaszoltunk, akkor az elm nem vgzi el a le-struktra kialaktst a ks obbi
hasznlata sorn sem! Ilyenkor err ol a felhasznlnak kell gondoskodnia.
16.1. Az elm alaputastsai
Az elmbe belpve a kperny o aljn rvid segtsget ad a program a legf obb, az
adott menben hasznlhat utastsokrl. Hogy itt pontosan mi jelenik meg, az
az elm verziszmn kvl fgg attl is, hogy a mr emltett elmrc kongurcis
le-ban kezd o, kzpszint u, vagy halad felhasznlnak min ostettk magunkat.
Minden, az aktulis postaldban lev o levlr ol egy egysoros bejegyzst ltha-
tunk a kperny on. Ha sok levelnk van, nemltjuk egyszerre az sszeset, de a kur-
zor mozgatsval minden levelet elrhetnk. A bejegyzs els o bet uje a kvetkez ot
jelenti:
E lejrt (bizonyos id onl rgebbi) levl
N j levl
O rgi, olvasatlan levl
D trlt levl
U srg os levl
Ezt kveti a levl sorszma, amivel hivatkozhatunk r, a levl berkezsnek d-
tuma (hnap, nap), a felad neve vagy E-mail cme, a levl hossza sorokban, s a
levl trgya.
A kperny on lev o levelek kztt egy mindig az aktulis levl. Ezt vagy az
klnbzteti meg a tbbit ol, hogy inverzben ltszik, vagy van el otte egy nyl: -->
(bellts krdse). A levelek kztt a j gomb segtsgvel lefel, a k gomb segt-
sgvel felfel mozoghatunk (lehet, hogy a billenty uzeten lev o nyilak is m ukd-
nek). Hivatkozthatunk egy levlre a sorszmval is, amennyiben szmot kezdnk
el betni, az elm egyb ol azt gondolja, hogy egy sorszmot akarunk megadni, s a
Command: New Current Message Set current message to:
vlaszt jelenti meg. Gpeljk be a szmot, s Enter -rel az elm a megadott
szm levlre ugrik. Ismtelt Enter -re a levl tartalmt megjelenti a kper-
ny on. Gyors mozgsra szolgl az = az els o levlre s a * az utols levlre ugrs
parancsa.
Levelet kivlaszthatunk valamilyen minta alapjn is. A f omenb ol kiadott
/ parancs hatsra az elm egy mintt vr. Gpeljk be a keresett szveget, s az
16.1. AZ ELM ALAPUTASTSAI 205
Enter lenyomsra az els o olyan levlre ll r a rendszer, melynek a felad vagy
a trgy mez ojben szerepel a megadott minta. A // parancs hatsra a keress
a teljes levlben megtrtnik, gy pldul ha gyorsan meg akarjuk tallni azt a
levelet, amiben a zetsemelsnkr ol rtestettek minket, a //zetes parancs rll a
keresett levlre.
A mr ismertett m (mail) f omenbeli levlkldsi parancson tl az elm kpes
vlaszolni is egy levlre, s azt tovbbtani. Ha elolvastunk egy levelet, akkor az r
(reply) paranccsal vlaszolhatunk r: az elm automatikusan ltrehozza az aktulis
levl alapjn a (To:) cmet, s a trgy mez obe a
Re: AktulisLevlTrgya
kerl, amit trhatunk. Ezutn az eredeti levelet beolvassa a szvegszerkeszt obe,
s minden sor el nagyobb jelet tesz (ezt meg lehet vltoztatni). A levl el ber
egy ltalunk megadott szveget (ez Reply to FeladCme alaprtelmezsben
).
Ha az f omenben az f (forward) parancsot adjuk ki, akkor a rendszer az m
(mail)-hez hasonlan megkrdezi, hogy kinek szeretnnk a levelet elkldeni, s
az aktulis levl trgya alapjn automatikusan felajnlja a tovbbtott levl trgyt
(alaprtelmezsben ez: EredetiTrgy (fwd) ), majd megkrdezi, hogy meg
szeretnnk-e szerkeszteni az erdeti levelet:
Do you want to edit the message (y/n) y
Ha y-t vlaszolunk, akkor az aktulis levelet beolvassa a szvegszerkeszt obe, s
minden sor el > jelet tesz. A tovbbtott levl feladja azonban mr mi lesznk,
teht ha az, akinek tovbbtottuk a levelet r (reply)-jal vlaszol, a vlaszt mi
kapjuk. A b (bounce) paranccsal tovbbthatunk gy leveleket, hogy annak felad
mez oje ne vltozzon.
A f omenben a d (delete) paranccsal trlhetjk az aktulis levelet. Valjban
ilyenkor csak kijelltk trlsre a levelet, zikailag csak akkor trl odik, amikor
kilpnk vagy foldert vltunk. A trlsre kijellt levl el ott egy D bet u jelenik
meg, s amikor fel- vagy lefel mozgunk a levelek kztt, az elm tugorja ezeket
a leveleket. Ha mgis egy trlsre kijellt levlre akarunk lpni, akkor sorszm
szerint tehetjk meg. Ilyenkor az u (undelete) paranccsal visszavonhatjuk trlsi
szndkunkat.
Az elm sokfle ms parancsrl angol nyelv u segtsget kaphatunk a ? parancs
segtsgvel.
206 FEJEZET 16. AZ ELM RSZLETES HASZNLATA
16.2. A postaldk
A levelek csoportostsra a postaldk (folderek) szolglnak. Az elmben hrom
postalda generldik automatikusan: az j levelek ldja, melyre a !-jel, a rgi
levelek (received) ldja, melyre a >-bal, s az elkldtt levelek (send) ldja,
melyre a <-bel hivatkozhatunk. Ezenkvl mi is megadhatunk postaldkat. A
postalda egy egyszer u le, melyben egyms utn sorakoznak a levelek, s min-
den levl a From:Felad sorral kezd odik. Ha egy levelet a f omenb ol az s
(save) paranccsal mentnk ki, akkor az elm megkrdezi a le (folder) nevt, ahova
a levelet betegye, s a ments vgn a levelet automatikusan trlsre jelli ki (ab-
bl a postaldbl csak, ahol ppen vagyunk). Ha a megadott nv alatt mr ltezett
le, akkor ahhoz hozzrja az j levelet, ha nem ltezett, akkor ltrehozza az l-
lomnyt. Ezltal tulajdonkppen a folder s a le fogalma azonosnak tekinthet o.
A postaldnak adott nv az aktulis knyvtrban hoz ltre egy ilyen nev u le-t;
ha a megadott nv legels o karaktere az =, akkor a $HOME/Mail knyvtrban (ez az
a knyvtr, amit az elm az els o hasznlatakor ltrehoz) jn ltre a le, ami gy ujti
a leveleket. Az elm automatikusan ilyen =-vel elltott nevet ajnl fel, pl.: =laca,
ha a feladra belltottuk a laca becenevet.
A postaldk hasznlatval csoportosthatjuk az olvasott leveleket. Az j levl
elolvassa utn, ha azt nem tettk t egy msik postaldba, kilpskor az elm
automatikusan felajnlja, hogy az olvasott leveleket a rgi levelek postaldba
teszi t (ez a $HOME/Mail/received llomny).
A levelez orendszeren bell a f omenben a c (change) paranccsal vlthatunk
postaldt. A ldra a nevvel kell hivatkozni (a hrom f o ldra a !, >, < jel-
lel). Az elm belltstl fgg oen elkpzelhet o, hogy az elm nem generl au-
tomatikusan msolatot a kimen o leveinkr ol, s gy a kimen o postalda mindig
res. Az elmrc llomny programozsval rvehetjk az elm levelez orendszert,
hogy tegyen msodpldnyt a kimen o postaldba.
Amennyiben levelezsi cmnk megvltozna, a leveleket automatikusan tovb-
bkldhetjk az j cmre ugyangy, mintha a UNIX beptett levelez orendszert,
a mailt hasznlnnk: a $HOME/.forward llomnyba be kell rni az j cmn-
ket. Az elm s a mail csak kt klnbz o, az opercis rendszer alap levelez os-
zolgltatst hasznl program, gy ugyanonnan veszik az j leveleket. Ezltal
elkpzelhet o, hogy valaki felvltva hasznlja oket. A klnbsg abban van, hogy
hol troljk a rgi leveleket. Ha a UNIX mailb ol tllunk az elmre, akkor a rgi
leveleket a $HOME/mbox postaldbl kell el ovenni.
16.3. ALIASOK 207
16.3. Aliasok
A hossz s bonyolult cmek hasznlata helyett hozzjuk rendelhetnk rvid,
s kifejez o "beceneveket" (alias), melyeket knnyen megjegyznk, s a levelek
kldsnl a To: (cmzett) mez oben ezeket is hasznlhatjuk. Mindenki rhat
magnak felhasznli beceneveket (user alias). A rendszergazda ezen kvl de-
nilhat mg mindenki szmra elrhet o, rendszerszint u neveket (system alias).
Az f omenb ol az a paranccsal lphetnk az alias menbe:
a)lias current message, d)elete an alias, check a p)erson or s)ystem,
l)ist existing aliases, m)ake new alias or r)eturn
Alias:
Becenevet az m (make) paranccsal hozhatunk ltre. Az alias rendszer el oszr
a becenevet kri (alias, ennek egyedinek kell lennie, nem adhatunk j rtket mr
ltez o becenvnek, ahhoz azt el obb ki kell trlni), majd a felhasznl nevt, s
vgl levelezsi cmt. Ezltal egy denci a kvetkez o alak:
becenv = (Teljes) Nv = cm(ek)
Cmknt akr tbb cmet, vagy mr el oz oleg denilt becenevet is megadhatunk
2
:

ami = Clinton = president@whitehouse.gov


rus = Boris Jelcin = boris@kreml.kremlvax.su
elnokok = Fejesek = ami, rus, tseng@beijing.china
A levl kldsnl is felsorolhatunk tbb, vessz ovel elvlasztott cmet. Ha
gyakran runk tbb embernek, rdemes bel olk az elnokok-hz hasonl csopor-
tot kialaktani, es egy nvvel lehet mindenkinek levelet kldeni. Egy becenv
tbb csoporthoz is tartozhat. A becenevek meg orz odnek, teht ha legkzelebb
bejelentkeznk, hasznlhatjuk oket.
A mr denilt beceneveket az l (list) paranccsal rathatjuk ki. A felesleges,
vagy mdostsra szorul neveket a d (delete) paranccsal trlhetjk a becenv
alapjn.
Igen hasznos parancs az a (alias), mely lehet ov teszi, hogy az aktulis levl
Feladjnak cmhez rendeljnk becenevet anlkl, hogy meg kellene jegyezni a
cmt. A rendszer ilyenkor a levl alapjn automatikusan betlti a cmet, s csak
a hozz tartoz becenevet krdezi meg.
Az alias menb ol az r (return) paranccsal lphetnk vissza a f omenbe.
2
A legels o cm valban m ukdik!
208 FEJEZET 16. AZ ELM RSZLETES HASZNLATA
16.4. A kongurcis le (elmrc)
Az elm levelez orendszer kongurcis llomnya a $HOME/.elm/elmrc. Ezen
keresztl minden felhasznl "testre szabhatja" magnak a rendszert. Az llomny
egyszer u, olvashat le, melyben klnbz o vltozk rtkeit llthatjuk a Vl-
toz= rtk bejegyzssel. Itt csak a legfontosabbak szerept ismertetjk. A le-
ban a # utni rsz megjegyzs, azt a rendszer nem veszi gyelembe:
editor a hasznlt szvegszerkeszt ot lltja be. Amennyiben pl az EMACS-ot akar-
juk hasznlni az
editor=Teljestvonal/emacs
sort kell berni. A none vagy builtin rtkek a mailhez hasonl "szer-
keszt ot" nyjtanak. Amennyiben nem adunk meg semmit, akkor az EDITOR
krnyezeti vltoz rtkt, annak hinyban a vi editort hasznlja.
fullname A teljes felhasznli nevnk. Ha nem adjuk meg a /etc/passwd le-ban
lev o informcit hasznlja.
maildir A postaldkat tartalmaz knyvtr. Ennek az alaprtke a $HOME/Mail.
pager A levl olvassakor alkalmazott lapozprogram. Ha nem adjuk meg, a
PAGER krnyezeti vltoz rtkt hasznlja, annak hinyban a beptett
builtin+ lapozt.
prefix Alevlre val vlaszolskor vagy tovbbtskor az eredeti levl minden sora
el kerl o karakter (alaprtk: "> ")
print A levl kinyomtatst szablyoz parancs. A levelet tartalmaz llomnyra
a %s-sel hivatkozhatunk. Alaprtke: lpr %s.
signature Az elkldtt levelekben a levl vghez automatikusan hozzrand "alrst"
tartalmaz llomny nevt adja meg.
arrow Ha rtke ON, akkor az aktulis levelet a --> nyl jelli, ha nem adjuk meg
az rtkt, vagy az OFF, akkor inverzben jelenik meg az aktulis sor.
askcc OFF esetn nem krdezi meg a Cc: (Carbon Copy) mez ot. Alaprtke ON.
autocopy ON esetn automatikusan bemsolja az r (reply)-jal megvlaszolt levelek
esetn a szvegszerkeszt obe az eredeti levelet. Alaprtke OFF.
copy ON esetn automatikusan msolatot csinl minden kimen o levlr ol. Alapr-
tke OFF.
Atbbi vltoz az elmhez adott minta-kongurcis llomnyban angol nyelv u
magyarzatokkal megtallhat.
17. fejezet
Hlzati alapismeretek s egyb
programok
17.1. TCP/IP alapok
A TCP/IP a UNIX rendszerek ltal leggyakrabban hasznlt kommunikcis pro-
tokoll, melynek segtsgvel a szmtgpek er oforrsaikat megoszthatjk egyms-
sal hlzaton keresztl.
Aleggyakrabban a kvetkez o TCP/IP szolgltatsokat hasznljk a szmtgpek
kztt:
File tvitel, amire a File Transfer Protocol (ftp) szolgl.
Tvoli bejelentkezs, amit a Network Terminal Protocol (telnet) tesz lehet ov.
Elektronikus levelezs, ami lehet ov teszi zenetek kldst ms szmtgpekre
is.
Network le rendszerek (NFS,RFS,AFS), amelyek lehet ov teszik egsz
le rendszerek elrst ms gpek szmra. A le rendszert a tvoli gpek
sajt opercis rendszerkbe beillesztve hasznlhatjk.
Tvoli nyomtats, ami lehet ov teszi ms gpekhez kttt nyomtatk hasznlatt.
Segtsgvel egy adott felhasznli csoport relatve kevs nyomtatval is
kiszolglhat.
Tvoli programfuttats (RPC). Segtsgvel lehet ov vlik programok fut-
tatsa a tvoli gpen. Akkor hasznos, ha csak egy programot akarunk ms
gpen futtatni, vagy ha a msik gphez kttt eszkzket szeretnnk kzvetlenl
a gpnkr ol elrni (pl. backup ksztshez).
209
210 FEJEZET17. HLZATI ALAPISMERETEKS EGYBPROGRAMOK
Name szerverek, amelyek az egyedi gpek neveit s cmeit tartalmazzk egy
intzmnyen bell. Segtsgvel nem szksges minden host cmt a helyi
gpen trolni, az a kzponti szerverr ol elrhet o.
Terminl szerverek, amelyek specilis clszmtgpek, ahonnan tvoli g-
pekre jelentkezhetnk be. A terminlok ezekhez az (ltalban Ethernet)
hlzatra kttt eszkzkhz tartoznak, gy nem szksges egy hosthoz be-
jelentkezni csak azrt, hogy egy msik gpet telnettel elrjnk.
Network-alap window rendszerek, mint pl. az X11 rendszer.
17.1.1. A TCP/IP protokollok ltalnos felptse
A TCP/IP protokollt tbb egymsra pl o protokoll alkotja. ltban egy TCP/IP
alkalmazs 4 f o rtegb ol ll:
Applikcis protokoll, mint pl. az ftp.
Egy olyan protokoll, mint pl. a TCP, amely az applikci szmra kln-
bz o szolgltatsokat biztost.
Ip, amelyik az alapvet o szolgltats az n. datagrammok tvitelhez.
A zikai hordozt kezel o fellet, amelyik pl. az Ethernetet vagy a soros
vonalat hajtja meg.
A TCP/IP az n. catenet modellt hasznlja. Ez felttelezi, hogy sok egy-
mstl fggetlen hlzat van sszektve egymssal gateway-ekkel. A csomagok
ekkor tbb klnbz o hlzaton is keresztlmehetnek, miel ott clhoz rnnek. Ez
a folyamat a routing, ami a felhasznl szmra teljesen lthatatlan. A csomag a
clgp Internet cmvel van elltva, ami egyrtelm uen megadja a vgclt. Az In-
ternet cm egy 32-bites szm, amit gyakran 4 decimlis szmmal jellnek, mint
pl. a 146.113.42.42 . A felhasznlk ltalban nem a cmet, hanem a hozzren-
delt szimbolikus cmet (pl. vogon.shi.edu) hasznljk. Az egyes gpeken fut
eljrsok kln-kln is kipthetnek TCP/IP kapcsolatot, ezeket egy Internet c-
men bell az n. portszmmal klnbztetjk meg. Az Internet cm s a portszm
egytt egyedi kombincit alkot. Pldul:
Internet cm TCP portok
1. kapcsolat 128.6.4.194 128.6.4.7 1234 21
2. kapcsolat 128.6.4.194 128.6.4.7 1235 21
A TCP/IP az n. "sszekttetsmentes" technolgin alapul, amelyben az
informci n. datagramban terjed. A datagram (csomag) az egy zenetben
elkldtt adatok sszessge. Minden datagram a hlzaton egyedi mdon terjed:
17.1. TCP/IP ALAPOK 211
a hlzati sszekttets fggvnyben a futsi id ok klnbz ok lehetnek, azaz
egy ks obb elkldtt datagram megel ozheti egy korbban elkldttet. Ugyangy
lehetsges, hogy valamilyen hiba folytn egy datagram elveszik, amit jra kell
kldeni.
17.1.2. A TCP szint
A TCP/IP csomagok tovbbtsra kt protokoll, a TCP s az IP szolgl. A TCP
(Transmission Control Protocol) vgzi el az zenetek feldarabolst csomagokra
az egyik oldalon, mg a msik oldalon a berkez o datagramokbl sszerakja az
eredeti zenetet. Ez a szint kezeli a esetlegesen elvesz o csomagok jrakrst s
a sorrendvltozst.
Az IP (Internet Protocol) az egyedi datagramok tovbbtsrt felel os. Ugyan
gy t unhet, hogy a TCP vgzi el a feladat nagy rszt, de ez csak kis hlzatok
esetn van gy. Az Internet egy nagy hlzat, s a datagramok clhoz juttatsa
nagyon bonyolult lehet, amennyiben tbb hlzaton kell azt keresztlkldeni.
Az sszes kapcsolat s a klnbz o vonalak (esetlegesen klnbz o zikai hor-
dozkon) kezelse komplex feladat, amit az IP szintnek kell elvgeznie.
Plda: Egy ftp processz a kvetkez o adatfolyamot kvnja a tvoli gpen fut
eljrsnak tkldeni (ez lehet pl. egy 1 Mbyte-os le):
......................................................
A TCP ezt az adatsort kezelhet o darabokra szaggatja (ez illeszkedik a hlzat
s a szemkzti program ltal kezelhet o maximlis mret u csomaghoz):
.... .... .... .... .... .... .... ....
A TCP minden datagram elejre egy header rszt illeszt, ami tartalmazza a
forrs- s clprocessz port cmt s az n. sorozatszmot. A szemkzti TCP
program ezek ismeretben lltja vissza az adatfolyamot, a sorozatszm alapjn
eldnti, hogy veszett-e el csomag, stb. A sorozatszm nem a csomagokat, hanem
a csomagokban lv o oktetteket szmozza. A TCP ezek mell mg egy n. check-
sumot adva hozza ltre a TCP headert (T). Az adatok teht mr gy nznek ki:
T.... T.... T.... T.... T.... T.... T....
212 FEJEZET17. HLZATI ALAPISMERETEKS EGYBPROGRAMOK
A TCP az IP szintnek adja t az adatokat a cl Internet cmvel egytt. Az IP
ebb ol s a helyi Internet cmb ol (I) kpez egy csomagot, amit egy jabb check-
summal elltva ad tovbb. Az adatok ekkor mr gy nznek ki:
IT.... IT.... IT.... IT.... IT.... IT....
ahol az I jelenti az IP headert. A zikai szint klnbz o lehet, lehet soros
vonal, X25, de a leggyakoribb az Ethernet. Az Ethernet sajt 6 byte-os cmekkel
rendelkez o zikai eszkz, amely tbb protokollt is kpes (akr egyszerre is) hasz-
nlni (pl. TCP/IP, DECnet, Novell, stb.). Az Ethernet sajt E headerjt (benne
a kt Ethernet cmmel) s C trailerjt (checksummal) illeszti az el oz o IP cso-
magokhoz:
EIT....C EIT....C EIT....C EIT....C EIT....C
Termszetesen a fogad oldal ezeket a konverzikat visszafel vgzi el. Az
Ethernet interface levgja az Ethernet headert s a checksumot. Amennyiben a
csomag IP tpus, akkor az Ethernet interface azt az IP-nek adja tovbb, ami a
protokoll mez ot gyeli. Ha protokoll mez o TCP tpus, akkor az IP az IP head-
ert kitrlve tadja a TCP-nek, ami a sorozatszm alapjn visszalltja az eredeti
adatfolyamot.
Az Ethernet hlzat a csomagokat egy kzs (ltalban koax) hordozra he-
lyezi. Mivel ez busz rendszer, el ofordulhat csomagok tkzse, amikoris a rend-
szer bizonyos vletlenszer uen megadott id o mlva jra megksrli a csomag elkldst.
Az id oztsek miatt a rendszer nagyon rzkeny a maximlis futsi id ore. A
hasznos svszlessg ugyan csak egy rsze a teljes zikai svszlessgnek, de
az egyszer usg s exibilits kompenzlja ezt a htrnyt.
17.1.3. Socketek s applikcik
A felhasznli applikcik a TCP szint felett futnak. Ezek a programok a TCP/IP-
t mint sszekttetsi felletet hasznljk, s - a felhasznlkhoz hasonlan - nem
kell tudniuk a mlyebben fekv o rtegekr ol (IP, Ethernet).
Az egyes programok egysges hasznlata rdekben n. socket szmokat
hasznlnak a klnbz o gpek az Internet hlzaton. Ezt azt jelenti, hogy mg a
hv gp (amely pl. egy ftp programot akar futtatni egy tvoli gpen) a sajt ftp
client programjhoz egy vletlen, de egyedi portszmot rendel, a szemkzti gpen
a 21-es portot (az ftp socketjt) adja meg clknt. A kapcsolat gy egyrtelm uen
17.1. TCP/IP ALAPOK 213
meghatrozott (kt klnbz o kapcsolatnl a kt Internet s a kt portszmbl
legalbb egy klnbz o).
Az egyes applikcik a hibamentes TCP/IP csatornn tovbbi sajt protokol-
lokat hasznlhatnak, mint pl. az SMTP levelezs:
RED 220 RED.VOGON.EDU SMTP Service at 29 Jun 92 05:17:18 EDT
TOPAZ HELO topaz.vogon.edu
RED 250 RED.VOGON.EDU - Hello, TOPAZ.VOGON.EDU
TOPAZ mail From:<zaphod@topaz.vogon.edu>
RED 250 mail accepted
TOPAZ RCPT To:<civita@red.vogon.edu>
RED 250 Recipient accepted
TOPAZ DATA
RED 354 Start mail input; end with <CRLF>.<CRLF>
TOPAZ Date: Sat, 27 Jun 92 13:26:31 EDT
TOPAZ From: zaphod@topaz.vogon.edu
TOPAZ To: civita@red.vogon.edu
TOPAZ Subject: meeting
TOPAZ
TOPAZ Talalkozo holnap 1-kor a Vilag Vegen. Egy Pangalaktikus
TOPAZ gegepukkasztot mar rendeltem...
TOPAZ .
RED 250 OK
TOPAZ QUIT
RED 221 RED.VOGON.EDU Service closing transmission channel
Figyeljk meg, hogy a parancsok csak "normlis" szveget tartalmaznak, ami
tipikus az Internet szabvnyokban (ezek az n. RFC ajnlsok, amik de facto
szabvnyok). A parancsokat ltalban egy szm jelenti, ami utn a szveg csak
az esetleges debuggolst segti. A szmokat a klnbz o Internet szabvnyok
rgztik, ltalban a 2-vel kezd od oek sikeres lefutst jeleznek, a 3 tovbbi adatot
kr, a 4 s 5 pedig "ideiglenes" ill. vgzetes hibt jelent.
17.1.4. Egyb protokollok: UDP, ICMP s ARP
Bizonyos alkalmazsok esetn nem szksges a TCP szintet hasznlni, mivel az
zenet belefr egy datagramba. Ilyen lehet pl. a nv szerinti Internet cm keress.
Ilyen tpus clokra az UDP ("User Datagram Protocol") hasznlatos. Az UDP a
TCP-hez hasonlan sajt port cmekkel rendelkezik, s a sajt headerjvel elltott
csomagot adja t az IP-nek tovbbtsra. Az IP a tvoli gpen nem a TCP, hanem
az UDP protokoll kezel o programnak tovbbtja a csomagot.
Egy msik protokoll az ICMP ("Internet Control Message Protocol"), amit
maga a TCP/IP software hasznl hiba- s egyb sajt zenetek tovbbtsra. Az
ICMP mg egyszer ubb, mint az UDP, mivel nincsenek sajt portcmei.
214 FEJEZET17. HLZATI ALAPISMERETEKS EGYBPROGRAMOK
A harmadik emltsre mlt protokoll az Ethernet ltal hasznlt ARP ("Ad-
dress Resolution Protocol"), amely szigoran vve nem IP protokoll. A kapcsolat
kiptsekor felttlenl szksg van az Internet cm alapjn a tvoli gp Ether-
net cmre (ez kell a kapcsolat kiptshez). Amennyiben a helyi ARP tblban
ez az informci nincs meg, akkor ez lesz az, amit az ARP elvgez: egy speci-
lis csomagban sztkldi az Internet cmet a hlzaton. Minden gp gyeli az
ARP csomagokat, s ha ltja, hogy ot szltottk meg, vlaszol. Pldul az ARP
128.6.4.7 krsre az 128.6.4.7 Internet cm u gp visszakldi sajt Ethernet
cmt (pl. 8:0:20:1:56:34). Ez az informci a helyi gp ARP cache troljba
kerl, elkerlend o a gyakori ARP krseket. Az ARP krsek n. broadcast
krsek, amiket az ff:ff:ff:ff:ff:ff Ethernet cmre kld az ARP.
17.1.5. Repeaterek, bridge-ek s routerek
Az Ethernet hlzat zikai mrete hromok miatt maximlt: a jel csillapodsa s a
futsi id ok limitljk a maximlis tvolsgot, a vletlenszer u csomagklds pedig
a forgalom nvekedse miatt a maximlisan zemeltethet o berendezsek szmt
limitlja. A jel csillaptsn n. repeaterek hasznlatval segthetnk, amelyek
egyszer u jeler ost ok. Nagyobb tvolsgoknl a futsi id ok tlsgosan nagyok
lesznek, ezrt ilyenkor a csomagok tkzst trols/tovbbts mdszerrel kell
elkerlni kt tvoli szegmens kztt. Erre a clra szolglnak az n. bridge-ek,
amelyek ezen tlmen oen csak a kt szegmens kztti forgalmat engedik t, s gy
a helyi forgalom nem zavar ms szegmenseket.
Az IP szint feladata a megadott datagrameljuttatsa a cl cmre. Ezt a feladatot
routingnak hvjuk. A routing teljes egszben az Internet cmen alapul. ppen
ezrt a helyes routing megknnytse rdekben egy specilis struktrt, az n.
domain struktrrt alaktottk ki az Interneten.
A domain struktra az jelenti, hogy klnbz o Internet cmtartomnyokhoz
klnbz o maximlis cmtartomny kapcsoldik. Az A osztly cmek az els o
byte-ban a 1-127-es szmot tartalmazzk, s 256 256 256 gpre kiterjed o
hlzatot tennnek lehet ov. ltalban a B osztly cmeket hasznljk a na-
gyobb intzmnyek, ahol 256 256 gpet lehet gy hlzatba ktni. A B osztly-
nak a 128.1 - 191.254-es Internet prex tartomny felel meg. Kisebb hlzatok
esetn elegend o a 256 cmmel elltott Cosztly Internet cmtartomny a 192.1.1
- 223.254.254-es tartomnyban. Megjegyzend o, hogy az oktettekben a 0 s 255
rtket nem hasznljk.
A 0 s a 255 klnleges jelentst hordoz: a 0 azoknak a gpeknek a cmt
jelenti, amelyek nem tudjk sajt Internet cmket. A 255-as rtket n. broad-
17.2. AZ RLOGIN S RSH UTASTSOK 215
cast clokra hasznljk, amikoris a (helyi) hlzaton minden gp gyeli az gy
megcmzett zenetet. Pl. a 128.6.4 hlzaton a 128.6.4.255 rtket kell broad-
cast clokra hasznlni. ltalban lehet a 255.255.255.255 rtket is hasznlni,
a gateway feladata a broadcast helyi szinten tartsa. A broadcastot a netmask
megadsval is helyi szinten tarthatjuk. Egy adott osztly esetn a netmask rtkt
egyszer uen a x Internet cmtartomny 1-esre, mg a vltoz cmtartomny 0-ra
lltsval kaphatjuk meg. Pl. a 194.43.42 hlzaton 255.255.255.0 lesz a
netmask.
A legalacsonyabb szint a helyi hlzat: amennyiben az IP ltja, hogy a data-
gramot a helyi hlzat egyik gpnek cmeztk, akkor kzvetlenl kikldi. Amen-
nyiben a cm nem rhet o el kzvetlenl, akkor egy, a helyi hlzathoz kapcsolt n.
gateway gpnek kldi el a datagramot. ltalban a helyi hlzatokhoz csak egy
router van illesztve, de a routerek kpesek - a cm ismeretben - egyms kztt
tovbbtani a datagramot.
17.2. Az rlogin s rsh utastsok
Nha a telnet parancs hasznlatval tjelentkezni egy tvoli gpre nem elg
knyelmes: pldul ha tbb gpen is van felhasznli azonostnk, s gyakran
tlpnk az egyikr ol a msikra (pl. segdprogramok futtatsra), akkor clszer u
lehet megadni a clgpen az n. megbzhat gpek listjt. Ezekr ol a gpekr ol
ilyenkor kulcssz hasznlata nlkl is tlphetnk az adott gpre.
A megbzhat gpek listjt ktflekppen lehet megadni:
A rendszergazda felsorolhatja a /etc/hosts.equiv llomnyban azokat a
gpeket, amelyekr ol a felhaszlk automatikusan hasznlhatjk az rlogin
s rsh parancsokat. Ekkor a felhasznli azonostnak meg kell egyeznie a
kt gpen.
Sajt cmeket is hozzadhatunk a listhoz, ha a $HOME/.rhosts llomnyba
soronknt berjuk az engedlyezend o gp nevt s a tvoli felhasznli azo-
nostt (szkzzel elvlasztva). Ezt az llomnyt csak a felhasznl rhatja,
msklnben a rendszer biztonsgi okokbl nem fogja hasznlni.
Vigyzat! Ha egy felhasznli azonostnk kulcsszavt valaki megtudja, akkor
minden, a fenti mdszerrel megadott gpnkhz is hozzfr!
Megjegyezzk, hogy a NIS (Network Information System, a nhai Yellow
Pages) rendszerrel knyelmesebben engedlyeztethet o az ilyen tpus hozzfrs
216 FEJEZET17. HLZATI ALAPISMERETEKS EGYBPROGRAMOK
sok (kb. >5 ) gp esetn. A NIS-t els osorban SUN opercis rendszerek hasznl-
jk, de tbb BSD alap rendszerbe is beptettk.
17.2.1. Az rlogin utasts
Interaktv tjelentkezsre az rlogin utasts szolgl. A legegyszer ubben a
$ rlogin rs1
utastssal lphetnk t az rs1 nev u gpbe. Termszetesen az rs1 gpben a kiin-
dulsi gp s felhasznl azonostjnak szerepelnie kell a fent emltett mdon.
Amennyiben a kt gpen nem egyezik meg az azonostnk (pl. zaphod az rs1
gpen), akkor az rs1-en a $HOME/.rhosts llomnyt kell hasznlnunk, valamint
a kiindulsi gpen az
$ rlogin rs1 -l zaphod
utastst kell hasznlni.
A parancs kiadsa utn a helyi gp megprblja a tvoli gpet elrni. Sike-
res kapcsolatfelvtel esetn megjelenik a tvoli gp promptja, mintha terminlrl
jelentkeznnk be.
17.2.2. Az rsh utasts
Nem mindig van szksgnk interaktv hasznlatra, s ot pl. tvoli eszkzk hasz-
nlatnl clszer ubb egy parancs tvoli futtatsa. Erre a clra az rsh utasts
szolgl. Pl. a df parancsot az rs1 nev u gpen a
$ rsh rs1 df
utastssal futathatjuk le. Termszetesen az rs1 gpben a kiindulsi gp s fel-
hasznli azonostjnak szerepelnie kell a bevezet oben emltett mdon.
Ha a kt gpen nem egyezik meg az azonostnk (pl. zaphod az rs1 gpen),
akkor az rs1-en a $HOME/.rhosts llomnyt hasznlva) a kiindulsi gpen
az
$ rsh rs1 -l zaphod df
utastst kell hasznlni.
A parancs kiadsa utn a helyi gpnk megprblja a tvoli gpet elrni, majd
a tvoli gpen az utastst lefuttatni. Az utasts klnleges rtke, hogy a tvoli
gpen fut utasts standard be- s kimenete a helyi gpen van. gy pldul a
$ rsh rs1 cat gyakorlas > > helyiproba
utasts az rs1 gpen tallhat gyakorlas llomnyt a helyi gpen tallhat helyiproba
llomnyhoz f uzi.
17.3. ANONYMOUS FTP HASZNLATA 217
Ha az rs1 gpen tallhat gyakorlas llomnyt az rs1 gpen tallhat tavoliproba
llomnyhoz akarjuk f uzni, akkor a shell metakaraktereit macskakrmkkel le
kell vdennk:
$ rsh rs1 cat gyakorlas "> >" tavoliproba
Megjegyezzk, hogy C-shell (csh) hasznlatakor az rsh utasts nha hi-
bazenettel tr vissza.
17.3. Anonymous ftp hasznlata
A UNIX terjedsvel egyre tbb s tbb olyan programot rnak, melyeket for-
rskddal egytt, djmentesen terjesztenek. Ezeket az n. public domain prog-
ramokat ugyan nem lehet rulni, de brki szabadon hasznlhatja oket. Ilyenek
tbbek kztt pl. a GNU fejleszts, amely egy teljes, nha a professzionlis
fejleszt orendszereknl is jobb programokat (C, C++, Fortran-C fordt, debugger,
UNIX segdprogramok, grakus programok, stb.) tartalmaz szoftverrendszer.
Az Internet ragyog lehet osget biztost az ilyen tpus programterjesztsre az
n. anonymous ftp segtsgvel.
Pldaknt vegyk a gnuplot programcsomagot: ennek megszerzshez el oszr
meg kell tudnunk azoknak a gpeknek a nevt, amelyek szerverknt troljk ezt
a programcsomagot (a programcsomagok ltalban compress-el tmrtett tar
llomnyok, gy az archvllomny neve .tar.Z vgz odik).
A szervergpek nevt az n. archie szolgltatson keresztl krdezhetjk le:
pl. a bcsi egyetemen egy jl hasznlhat archie-szerver m ukdik. Elrshez a
$ telnet 131.130.1.23
parancs kiadsa utn az archie felhasznli azonostval lphetnk be. Ezek
utn mr magba az archie programba kerlnk be. A teljes parancskszlet nem
egysges, az aktulis gpen ezt ltalban a help utastssal krdezhetjk le.
A fenti pldt folytatva el oszr vlasszuk ki az els o 50 tallatot (ez id ot takart
meg):
archie> set maxhits 50
majd keressnk r a gnuplot szra:
archie> prog gnuplot
A program ezek utn vgigkeresi az adatbzist, s kirja azoknak a gpeknek
az Internet cmt, amelyek a gnuplot programcsomagot troljk. A cmek mellett
a teljes elrsi tvonalak is megjelennek.
218 FEJEZET17. HLZATI ALAPISMERETEKS EGYBPROGRAMOK
Egy adott cm kivlasztsa utn a quit (esetleg az exit) utastssal lphetnk
ki az archie-bl. Ezek utn az ftp segtsgvel lpjnk be a kivlasztott gpre:
felhasznli azonostknt anononymous-t, kulcsszknt sajt E-levl cmnket
hasznljuk.
Ezek utn lpjnk be az archie ltal megadott knyvtrba (ez ltalban a /pub
knyvtrbl nylik), s az ftp parancsait hasznlva (l. 71. oldal) hozzuk t a pro-
gramcsomagot. Vigyzzunk, az ltalban .tar, .Z, .gz vgz ods u llomnyok
binris tvitelt (azaz el oszr a binary utastst) ignyelnek!
Az tvitel utn a szoksos quit ftp utastssal zrhatjuk a kapcsolatot.
Az thozott programcsomagot a 11. fejezetben, a 133. oldalon lert m-
dokon csomagolhatjuk ki. Ezek utn kvetnnk kell a programcsomag dokumen-
tcijban lert utastsokat.
Megjegyezzk, hogy az ELTE az ftp.elte.hu gpen zemeltet anonymous
ftp szolgltatst.
18. fejezet
A tin elektronikus jsg rszletes
lersa
Az UseNet az 1970-es vek vgn jtt ltre. Kezdetben az akkori UNIX a tin
rvid lersa
a 75. oldalon
lehet osgeknek megfelel oen UUCP kapcsolatot (ltalban modemet) hasznlt
a viszonylag kevs jsgrovat terjesztshez. A 80-as vek kzepn a UseNet
egyre nagyobb s nagyobb lett, mind tbben kezdtk el hasznlni. Ennek meg-
felel oen jabb terjesztsi mdok is megjelentek: a kzvetlen TCP/IP kapcsolat,
a gyors E-levelezs s a klnbz o, a felesleges tvitelt elkerl o protokollok (pl.
IHAVE/SENDME) ma mr lehet osget biztostanak a hromezret meghalad rovat
terjesztshez. A UNIX mellett mr ms opercis rendszerek (VAX/VMS, IBM
VM/CMS, stb.) is kpesek futtatni a news programot.
Az egyes rovatok a sok cikk miatt meglehet osen sok lemezterletet
ignyelnek, amely nem mindig ll rendelkezsre. TCP/IP hlzat hasznlata es-
etn lehet osg van egy kzponti n. news server gp megadsra
1
. ltalban
csak ez a szerver trolja a leveleket, mg a tbbi gpr ol az jsgolvas progra-
mok a hlzaton keresztl, kzvetlenl rik el a leveleket, az n. NNTP pro-
tokollt hasznlva. A kzponti szerver ltalban mindenkinek, brmely gpr ol
lehet ov teszi az olvasst, de csak a kln engedlyezett gpekr ol lehet j cikkeket
elkldeni.
A tin program egy egyszer uen kezelhet o, mgis sok feladatot elltni kpes
program. A UNIX vilgban e mellett tbb ms program is hasznlatos: ilyenek a
pl. a vnews, xrn (X11 Window alap), gnus s gnews (a GNU emacson alapul),
nn, rn s a trn jsgolvas programok. A VAX/VMS rendszeren a teljes UseNet
1
Pl. az ELTE-n a ludens.elte.hu tlti be a news server szerept.
219
220 FEJEZET 18. A TIN ELEKTRONIKUS JSG RSZLETES LERSA
news rendszert az ANU NEWS program valstja meg.
18.1. A rovatok kivlasztsa
A tin els o hasznlatakor kirja az adott gpen tallhat sszes rovatot. Pldul:
KILL ON Group Selection (1986) Type h for help
u 1 alt.abortion.inequity -
u 2 alt.abuse-recovery -
u 3 alt.abuse.offender.recovery -
u 4 alt.abuse.recovery -
u 5 alt.activism -
u 6 alt.activism.d -
u 7 alt.adoption -
u 8 alt.aeffle.und.pferdle -
u 9 alt.agriculture.fruit -
u 10 alt.agriculture.misc -
u 11 alt.aldus.freehand -
u 12 alt.aldus.misc -
u 13 alt.aldus.pagemaker -
u 14 alt.alien.vampire.flonk.flonk.flonk -
u 15 alt.alien.visitors -
A tin a rovatok mindegyikt u (unsubscribed) jellel ltja el: ez azt jelenti, hogy az
a rovatot nem zettk el o. A sorszmmal vagy a j s k gombok segtsgvel
(esetleg a fel- s lefel nyilakkal) kivlasztott aktulis rovatot az s (subscribe)
utastssal vehetnk fel sajt listnkra.
A ks obbiek sorn is lemondhatunk egy rovatot az u (unsubscribe) utastssal
(ezek a parancsok termszetesen csak rovatlista szinten m ukdnek). Egy egsz
rovatcsoportot (pl. alt) az S utastssal vehetetnk fel a listra, s az U paranccsal
mondatunk le, ha kiterjesztett regulris kifejezst hasznlva megadjuk a csoport
nevt. Pldul a sci.* kifejezs az sszes sci-vel kezd od o csoportot kivlasztja,
mg a .*comp.* kifejezssel minden olyan csoportra hivatkozunk, melynek nev-
ben szerepel a comp string.
A rovatok listjt, a mr olvasott cikkek szmval egytt a felhasznl HOME
knyvtrban tallhat .newsrc llomny sorolja fel. Ebben a rovatok neve utn
megtallhat a mr olvasott cikkek szma, pl.:
.
.
.
comp.lang.idl-pvwave: 32-123
comp.laser-printers!
.
.
.
18.2. CIKKEK ELKLDSE 221
Itt a comp.lang.idl-pvwave rovat 32-t ol 123-ig terjed o sorszm cikkeit
olvastuk, mg a comp.laser-printers rovatra nem zettnk el o (ezt jelzi a !).
A rovatokat az llomnybeli sorrendben rja ki a tin a kperny ore. Amennyiben
a !-et :-ra cserljk, a program ezt gy tekinti, mintha el ozettnk volna az adott
rovatra.
Ha a .newsrc llomnyt kzzel tszerkesztjk, a tin az jabb elindtskor a
vltoztatsokat gyelembe fogja venni.
18.2. Cikkek elkldse
A tin lehet osget ad j cikkek elkldsre is. Ezt a w (write) utasts segtsgvel
tehetjk meg. Ekkor egy editor (alaprtelmezsben a vi) segtsgvel megszer-
keszthetjk a cikket, a cikk cmt (trgy, Subject ) s a rovat (vagy esetleg rovatok)
nevt, ahova kldeni szeretnnk (alaprtelmezsben ez az aktulis rovat).
Egy cikk olvassakor nemcsak j levelet kldhetnk, hanem lehet osg van
egy ppen olvasott cikkre vlaszolni. Erre az F (followup) parancs szolgl, amely
ilyenkor az rsra hasznlt szerkeszt obe betlti az eredeti cikket (gy knyelmesen
tudunk az egyes rszekre hivatkozni).
Acikkek elkldsekor lehet osg van a terjesztsi kr (pl. ELTE, Magyarorszg,
Fld, az egsz vilg stb.) megadsra is. A cikkek rsakor ezrt ne feledjk, hogy
rsunkat az egsz egyetemen, s ot akr az egsz vilgon is olvashatjk! gyeljnk
arra, hogy szoksostl eltr o terjesztsi kr esetn azt pontosan, szndkunknak
megfelel oen adjuk meg (ellenkez o esetben sok, a helyes hasznlatra gyelmeztet o
levelet kaphatunk a morcos olvasktl). ltalban clszer u, ha megprblunk al-
kalmazkodni az adott rovatban megjelen o cikkek stlushoz, valamint tanulmny-
ozzuk a cikkek rsakor kvetend o, ltalnosan elfogadott szablyokat (ezek rend-
szeresen megjelennek a news.announce.newusers rovatban).
Bizonyos rovatokba csak szerkeszt okn keresztl lehet rni (gy pl. elkerlhet o
a sok hasonl vlasz-cikk egy krdsre, ki lehet sz urni az esetlegesen nem oda
tartoz krdseket, stb.). A kld onek nem kell klnbsget tenni a klnbz o
rovatok kztt, a tin automatikusan postzza az esetleges rovatszerkeszt onek a
megrt cikket.
A cikkek rsakor a tin a megrt cikk vghez illeszti amennyiben a fel-
hasznl ltrehozta a $HOME/.signature alrs llomny tartalmt.
Egy aktulis cikket ha az sajt rsunk a C (cancel) parancs segtsgvel
trlhetnk ki a cikklista szinten. A trls elg sokig tarthat, mivel a cikkek a
hlzaton keresztl hamar sztterjednek a klnbz o gpekre.
222 FEJEZET 18. A TIN ELEKTRONIKUS JSG RSZLETES LERSA
18.3. A tin krnyezete
A tin program tbb llomnyban trolja az jsgolvas m ukdsvel kapcsolatos
informcikat. Mindenki egy id o utn kivlasztja azokat rovatokat, amelyeket
tbb-kevesb rendszeresen olvas, ezrt a program a $HOME/.newsrc llomny-
ban rzti a el ozetett rovatok listjt a mr olvasott cikkek szmnak feltn-
tetsvel.
Az elektronikus jsg lehet ov teszi, hogy a mr korbban olvasott cikkek a
kvetkez o belpskor mr ne zavarjanak. Ennek megfelel oen egy rovatba trtn o
belps utn minden cikk olvasott cikknek szmt, s ez szintn rgzl kilpskor
a $HOME/.newsrc llomnyban.
Lehet osg van a cikkek bizonyos csoportostsra is rovatlista szinten a t (tag)
parancs segtsgvel tovbbi feldolgozs (nyomtats, E-levl s pipe) szmra.
A tin az llomnyban hasznlt sorrendben jelenti meg a rovatokat a kper-
ny on.
A tin m ukdsvel kapcsolatos llomnyok zmt a $HOME/.tin knyvtr
tartalmazza. A $HOME/.tin/tinrc kongurcis le kzvetlenl is szerkesz-
thet o, de a tin programban is el ohvhat az M utastssal:
Options Menu
1. Auto save : ON 2. Save separate : ON
3. Mark saved read : ON 4. Kill articles : OFF
5. Show Author : ON 6. Draw arrow : OFF
7. Print header : OFF 8. Goto 1st unread : ON
9. Process type : None
10 Sort article by : Date: field (ascending)
11 Save directory : /u/galahad/News
12 Mail directory : /u/galahad/Mail
13 Printer : /usr/ucb/lpr
Select option by entering number before text. Any other key to save.
Az opciszm megadsa utn vltoztathatunk az adott ponton, mg pl. az
Enter gombbal elmenthetjk az adott belltst.
Az Auto save opci belltsakor a cikk Archive-name sort hasznlja fel a
tin az esetleges elmentskor, mg a Save separate opcival kivlaszthat, hogy
ezek a cikkek kln-kln llomnyba kerljenek-e. A Mark saved read pont
az elolvasott cikkek automatikus bejegyezst teszi lehet ov a $HOME/.newsrc
llomnyba.
A Kill articles engedlyezi a cikkek kizrst a $HOME/.tin/kill l-
lomny hasznlatval a From: s Subject: sorok alapjn: ez klnsen hasznos
18.4. A TIN PARANCSAI 223
lehet bizonyos szerz okt ol szrmaz cikkek kizrsra. A kill menbe a rovatlista
s cikklista szintr ol a Ctrl-K utastssal lphetnk be.
A Show Author pontban be- s kikapcsolhatjuk a szerz o kirst, mg a Draw
arrow pontban az inverz s a --> mutat kztt vlaszthatunk. A Print header
a teljes s a sz uk (csak a Subject s From: mez oket tartalmaz) fejlc kztt
vlaszt. A Goto 1st unread kapcsol belltsa esetn a rovatlistba belpve
a gp a a mutatt az els o, mg nem olvasott cikkeket tartalmaz rovatra lltja
automatikusan.
A tin kpes a leveleket klnbz o software terjesztsi mdoknak megfele-
l oen dekdolni. A Process type dekdolsi tpus lehet shell script(azaz egy
nsztcsomagol program), uuencode (binris le ASCII tvitele), uuencode +
zoo (zoo binris tmrtett archvum ASCII tvitele) s patch (program javt
le).
ASort article by pontban a cikkek sorrendjnek kritriumait adhatjuk meg
(ez lehet res, vagy a cikkek Subject:, From: vagy Date: mez oje). A Save
directory az elmentett cikkekhez tartz knyvtrat lltja, mg a Mail directory
s a Printer a tin program ltal hasznlt mailer s a nyomtat elrst adja meg.
A kongurcis llomnyok belltst a krnyezeti vltozk mdosthatjk.
A kt legfontosabb egyike az NNTPSERVER, amelyik a news server Internet cmt
adja meg. A msik az EDITOR vltoz, amely a cikk kldsekor hasznlt szveg-
szerkeszt o elrst tartalmazza.
18.4. A tin parancsai
ltalban a rovat- s cikklistn trtn o mozgshoz nemcsak a j-k gombokat (eset-
leg nyilakat) hasznlhatjuk, hanem a Ctrl-U (vagy b) s a Ctrl-D (vagy Szkz)
parancsokkal lphetnk egy kperny onyit felfel ill. lefel.
Ha egy adott sorszm rovatra ill. cikkre akarunk hivatkozni, akkor a sorsz-
mnak begpelse rgtn odavisz minket. A $ utasts a lista vgre ugrik. Egy
adott szinten lehet osg van megadott kifejezs keressre: erre a vi programnl
hasznlatos / (el ore keress) s ? (visszafele keress) utastsokat hasznlhatjuk.
A Ctrl-L parancs jrarja a kperny ot.
A tin sok hasznos paranccsal rendelkezik, melyeket vagy az adott szinthez tar-
toz h (help) paranccsal, a struktrltabb H (help) paranccsal, vagy a program man
lersban (man tin) tallhatnak meg az rdekl od ok. A leggyakrabban hasznlt,
az el oz oekben nem szerepelt utastsok a kvetkez ok:
224 FEJEZET 18. A TIN ELEKTRONIKUS JSG RSZLETES LERSA
ltalnos s rovatlista szinten hasznlhat utastsok:
Ctrl-K Alkalmazza a kill sz ur oket az adott szintre (a kill sz ur ot a 222.
oldalon lert mdon llthatjuk be).
H Ki- s bekapcsolja a miniment.
g j rovatot vlaszthatunk ki segtsgvel a rovat- s cikklista szintekr ol.
m Az adott rovatot thelyezi a rovatlistban a megadott sorszm helyre. A
$ a legutols pozcira vonatkozik.
s El ozet a megadott rovatra (csak rovatlista szinten).
S El ozet egy megadott mintval egyez o rovat(ok)ra (csak rovatlista szin-
ten).
u Trli az el ozetst az aktulis rovatra (csak rovatlista szinten).
U Trli az el ozetst a megadott mintval egyez o rovat(ok)ra (csak ro-
vatlista szinten).
y Felfrissti a $HOME/.newsrc llomnyt az opercis rendszer kzponti
rovatlistjbl (csak rovatlista szinten).
c Az adott rovatban minden cikket olvasottnak llt be.
z Az adott rovatban minden cikket olvasatlannak llt be (csak rovatlista
szinten).
z Az adott cikket olvasatlannak lltja be (csak cikklista s cikkolvas szin-
ten).
cikklista s cikkolvas szinten hasznlhat utastsok:
a El ore keresi az adott szerz ot.
A Htrafel keresi az adott szerz ot.
t A tag parancs segtsgvel tovbbi feldolgozs szmra jellhetnk ki
cikk(ek)et, ami lehet nyomtats (o), E-levl (m), elments (s) s pipe
(|) (csak cikklista szinten).
U A tag parancs hatst sznteti meg (csak cikklista szinten).
m Az aktulis cikke(ke)t (vagy a megjellt listt, esetleg egy adott mintval
kivlasztot cikkeket) elkldi E-levlknt valakinek.
o Az aktulis cikke(ke)t (vagy a megjellt listt, esetleg egy adott mintval
kivlasztot cikkeket) kinyomtatja.
| Az aktulis cikke(ke)t (vagy a megjellt listt, esetleg egy adott mintval
kivlasztot cikkeket) egy adott parancsnak megadja bemenetknt.
s Elmenti az aktulis cikke(ke)t (vagy a megjellt listt, esetleg egy adott
mintval kivlasztot cikkeket). Amennyiben egy elm levlszekrnybe
akarunk menteni, hasznljuk a le nevnek megadsakor az =FileNv
18.4. A TIN PARANCSAI 225
megjellst. A +FileNv egy RovatNv/FileNv tpus llomnyt ad
meg a felhasznl $HOME/News knyvtrban.
d A cikket az n. rot13 eljrssal dekdolja. Az ilyen tpus cikkek esetleg
felhbortak, gusztustalanok, stb. lehetnek az olvask szmra (ez a
parancs csak a cikkolvas szinten m ukdik).
Trgymutat
., 39
.., 39
.forward, 194, 206
.netrc, 71
.newsrc, 220
.prole, 104
.rhosts, 215
.tinrc, 222
/dev/rmt0, 137
/dev/rmt0h, 137
/dev/rst0, 137
/usr/lib/Mail.rc, 194
<, 54, 55
>, 53
>>, 54
llomnyok, 23
tnevezse, 32
krsa, 27
keresse, 41
ltrehozsa, 24
listzsa, 25
msolsa, 31, 40
mozgatsa, 40
nyomtatsa, 49
trlse, 32
tpusai, 24
vdelme, 42
vdelmi kdja, 42
tirnyts, 53
bemenet, 54
kimenet, 53, 54
pldk, 56
rsi jog, 42
a.out, 152
alias, 99
alknyvtr, 37
anonymous ftp, 217
ar, 149
pldk, 151
archie, 217
archivls, 133, 134
archivlsi pldk, 138
argumentum, 22
ARP, 214
at, 156
awk, 117
BEGIN, 121
ciklus, 124
END, 121
fggvnyek, 123
felttelek, 120, 124
kapcsolk, 117
kirs, 125
kifejezsek, 118
m ukdse, 118
pldk, 126
parancsok, 118
utastsok, 123
vltozk, 121
226
TRGYMUTAT 227
batch, 158
bg, 59
bridge, 214
bsplit, 142
btoa, 142
C fordt, 146
cat, 28
cc, 146
cd, 39
chmod, 42
chsh, 18
compress, 140
cp, 31
cron, 158
crontab, 158
cs o, 56
dbx, 160
kapcsolk, 161
kifejezsek, 160
plda, 163
parancsok, 162
dd, 135
pldk, 136, 138
domain, 214
E-levelezs, 68
EBCDIC, 136
EBCDIC talakts, 136
echo, 19
ed, 173
egrep, 107
elrsi t, 37
elrsi tvonal, 39
abszolt, 39
relatv, 39
elektronikus jsg, 75
.newsrc, 220
cikk klds, 221
cikk kizrsa, 222
cikklista, 76
el ozets, 220
els o indtsa, 75
krnyezeti vltozk, 223
olvass, 77
parancsok, 223
rot13, 225
rovatlista, 76
elektronikus levl automatikus tovb-
btsa, 194, 206
elektronikus levelezs
levlszekrny, 193
elm, 68, 203
.elm, 203
alaputastsok, 204
alias, 207
automatikus tovbbts, 206
becenv, 207
elmrc, 203
els o hasznlata, 203
f omen, 68, 204
folder, 68, 206
klds, 69
keress, 204
kilps, 69
kongurcis llomny, 203, 208
mozgs, 69, 204
olvass, 69
rvid lers, 68
rszletes lers, 203
trls, 205
tovbbklds, 205
vlaszols, 205
elmrc, 208
Ethernet, 212
f77, 148
228 TRGYMUTAT
felhasznli nv, 16
fg, 59
fgrep, 107
nd, 41
nger, 74
folder, 68
fordtsi knyvtr, 149
fordtott aposztrf, 56
Fortran fordt, 148
ftp, 71
anonymous, 217
elindtsa, 71
kilps, 72
plda, 73
utastsok, 72
futtatsi jog, 42
gopher, 78
mozgs, 79
olvasjelek, 80
grep, 33, 107
kapcsolk, 108
minta, 108
pldk, 33, 36, 109
rvid lers, 33
rszletes lersa, 107
hj, 19
head, 29
helyettest o karakterek, 34
ICMP, 213
IP, 211
jelsz, 16
megvltoztatsa, 17
jobs, 59
jog
rsi, 42
futtatsi, 42
olvassi, 42
knyvtr, 37
aktulis, 37
al-, 37
gykr, 37
HOME, 37
ltrehozsa, 41
lekrdezse, 37
mozgs, 39
szl o, 37
trlse, 41
kapcsol, 20
kijelentkezs, 18
kill, 60
Korn shell, 83
ksh, 83
llomnynv helyettests, 98
alias, 99
beptett parancsok, 87, 91
bemenete, 98
fggvnyek, 89
felttelek, 89
krnyezeti vltozk, 84
kapcsolk, 94
kimenete, 98
metakarakterek, 85
paramter, 100
parancsfeldolgozs, 84
parancsszerkeszts, 86
kulcssz, 16
ld, 152
link, 40
hard, 40
ltrehozsa, 40
szimbolikus, 40
login, 16
lpq, 50, 51
lpr, 49
TRGYMUTAT 229
ls, 21, 25
mgnesszalagos egysgek, 137
MAIL, 193
mail, 65
.mailrc, 194
automatikus tovbbts, 194
krnyezeti vltozk, 193
kapcsolk, 194
kilps, 68
levl elkldse, 66
levl fogadsa, 67
leveleslda, 193
pldk, 68, 200
parancsok, 196
rvid lers, 65
rszletes lers, 193
tilde parancsok, 195
UCB, 65
vltozk, 199
MAILCHECK, 194
MAILRC, 194
mailrc, 194
make, 166
kapcsolk, 169
kiterjesztsek, 167
makr, 167
pldk, 169
plda, 168
man, 22
mesg, 65
meta karakter, 186
MicroEMACS, 46, 185
.emacsrc, 185
zemmdok, 190
llomny kezels, 188
ablakok, 189
beszrs, 187
buffer, 189
helyettests, 188
keress, 187
kilps, 46
makrk, 191
meta karakter, 186
mozgs, 47, 186
mozgats, 190
parancsok, 185
rvid lersa, 46
rszletes lersa, 185
shell elrse, 191
trls, 46, 187
more, 30
mt, 137
pldk, 138
multitasking, 15
mv, 32
news server, 219
nice, 61, 156
nohup, 60
nyomtats, 49
lekrdezse, 50
megszaktsa, 51
nyomtat, 49
object knyvtr, 149
olvassi jog, 42
pack, 141
paramter, 22
parancs
megszaktsa, 19
parancsllomnyok, 57
Pascal fordt, 149
passwd, 17
password, 16
path, 37
pcat, 141
230 TRGYMUTAT
pg, 29
PID, 60
pipe, 53, 56
priorits, 60
belltsa, 61
program
futtatsa, 59
httrben futtatsa, 59
lelltsa, 59, 60
megszaktsa, 59
programok sszekapcsolsa, 56
programok parancsok argumentumaknt,
56
ps, 60
pwd, 39
queue, 49
llapota, 50
megszaktsa, 51
nyomtats, 49
renice, 61
rlogin, 216
rm, 32
rot13, 225
routing, 214
rsh, 216
rtin, 75
script, 57
sed, 110
kapcsolk, 111
pldk, 114
parancsok, 111
shell, 19, 53
sort, 33, 127
kapcsolk, 127
pldk, 34, 129
rvid lersa, 33
rszletes lers, 127
split, 142
standard input, 54
standard output, 53
szimbolikus debugger, 160
tail, 29
talk, 64
letiltsa, 65
tar, 134
pldk, 138
TCP/IP, 209
datagram, 210
portszm, 210
rtegek, 210
socket, 212
telnet, 70
tin, 75
els o indtsa, 220
kongurcija, 222
UCB mail, 65
UDP, 213
umask, 105
uncompress, 140
uniq, 115
unpack, 141
UseNet, 219
user ID, 16
uudecode, 142
uuencode, 141
vrakoz lista, 49
llapota, 50
megszaktsa, 51
nyomtats, 49
vi, 45
zemmdok, 173
llomnyok beolvassa, 181
llomnyok kirsa, 181
bers, 45, 178
TRGYMUTAT 231
behvsa, 45
helyettests, 181
kapcsolk, 174
keress, 178
kilps, 45, 182
msols, 180
makr, 183
mozgs, 46, 177
mozgats, 180
parancsok, 176
rvid lers, 45
rszletes lers, 173
set, 175
shell elrse, 182
sorok jellse, 174
trls, 46
vltozk, 175
visszallts, 180
who, 22
write, 63
letiltsa, 64
zcat, 140

Você também pode gostar