Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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 ~
#!/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
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
: