linux - héjprogramozás

Upload: blind-man

Post on 30-May-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Linux - Hjprogramozs

    1/26

    Hjprogramok

    Linux alatti parancsrtelmezok

    1.0

    Fehr Jnos

    2002. jnius 20.

  • 8/14/2019 Linux - Hjprogramozs

    2/26

    Copyright c

    2001-2002 Linux-felhasznlk Magyarorszgi Egyeslete

    E kzlemny felhatalmazst ad nnek jelen dokumentum sokszorostsra, terjesz-tsre s/vagy mdostsra a Szabad Szoftver Alaptvny ltal kiadott GNU SzabadDokumentcis Licensz 1.1-es, vagy brmely azt kveto verzijnak felttelei alap-

    jn. Nem Vltoztathat Szakaszok nincsenek, Cmlap-szvegek nincsenek, a Htlap-szvegek neve pedig htlapszveg. E licensz egy pldnyt a GNU Szabad Doku-mentcis Licensz elnevezsu szakasz alatt tallja.

    A mdostott vltozat kzzttelrt felelos szemlyek:

    Sri Gbor [email protected]

    Javtsok: Sri Gbor

    Szerzo

    Fehr Jnos

    Szakmai lektor

    Nyelvi ellenorzs

    Sri Gbor [email protected]

    Formzs (LATEX)

    Sri Gbor [email protected] Attila [email protected]

    1

  • 8/14/2019 Linux - Hjprogramozs

    3/26

    Elozmnyek

    Hjprogramok

    Linux alatti parancsrtelmezok

    A kiads ve: 2002.

    Szerzo

    Fehr Jnos

    Szakmai lektor

    Nyelvi ellenorzs

    Sri Gbor [email protected]

    Formzs (LATEX)

    Sri Gbor [email protected] Attila [email protected]

    2

  • 8/14/2019 Linux - Hjprogramozs

    4/26

    Tartalomjegyzk

    1. Hjprogramok - Linux alatti parancsrtelmezok 41.1. Bevezeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.2. A shell rviden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3. A hjprogramok mltja, jelene, jvoje . . . . . . . . . . . . . . . . . 5

    1.3.1. A mlt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3.2. A jelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3.3. A jvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.4. A shellekrol ltalban . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4.1. A shell mukdse . . . . . . . . . . . . . . . . . . . . . . . . 71.4.2. A shell megvltoztatsa . . . . . . . . . . . . . . . . . . . . 81.4.3. Shell vltozk, krnyezeti vltozk . . . . . . . . . . . . . . 9

    1.5. A shellekrol rszletesen . . . . . . . . . . . . . . . . . . . . . . . . . 101.5.1. Bourne Shell . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    Programindts . . . . . . . . . . . . . . . . . . . . . . . . . 10

    rsjelek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11A Bourne Shell s a vltozk . . . . . . . . . . . . . . . . . . 121.5.2. Korn Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    Shell kapcsolk . . . . . . . . . . . . . . . . . . . . . . . . . 13Helyettesto nevek (alias) . . . . . . . . . . . . . . . . . . . . 14Parancsnaplz (history) . . . . . . . . . . . . . . . . . . . . 15A Korn shell ltal mdostott vltozk . . . . . . . . . . . . . 17A Korn Shell vltozi . . . . . . . . . . . . . . . . . . . . . 17

    1.5.3. Bourne Again Shell . . . . . . . . . . . . . . . . . . . . . . . 17

    3

  • 8/14/2019 Linux - Hjprogramozs

    5/26

    1. fejezet

    Hjprogramok - Linux alatti

    parancsrtelmezok

    1.1. Bevezeto

    A sorozat ezen fzetben az Olvas betekintst nyerhet a Linux alatti hjprogramokhasznlatba s programozsukba. Munknkban nagy mrtkben tmaszkodunk a so-rozat korbbi tagjaira, ezrt teljesen kezdo felhasznlknak javasoljuk azok elolvasst,mert alapoz ismeretek nlkl sok felesleges s idorabl nehzsgbe tkzhetnek.

    Ahhoz, hogy kiadvnyunkat sikerrel forgassa, szksges a megszerzett ismeretekgyakorlatbanval kiprblsa is. Ehhez mindssze egyolyan szmtgpre (vagy ilyengpre szl azonostra) lesz szksge, amelyen az ltalunk taglalt hjprogramok meg-tallhatk, vagy feltelepthetok. Ehhez igyeksznk segtsgkre lenni lemezmellkle-tnkkel, amelyen az ltalunk taglalt szoftvereknek mind a forrsa, mind pedig a binrisvltozata megtallhat.

    1.2. A shell rviden

    Mi az a shell?

    Az opercis rendszernek kiadott parancsokat beolvas s rtelmezo programokata Unix-terminolgia shelleknek (hjprogram, burok) nevezi. Ezek alapveto jellegzetes-sgei minden Unix-tpus rendszernek. Ennek oka a rendszer felptsben keresendo,

    amely nagy vonalakban a rendszermagbl s a krje csoportosul alkalmazsokblll. Mint ismeretes, a kernel nmagban nem elg ahhoz, hogy dolgozni tudjunk, aklvilggal val interaktivitst a programoknak kell megvalstaniuk. Ilyen kapcsolat-teremto eszkzk tbbek kzt a shellek is.

    A shell angolul kagylhjat, burkot jelent. Annak igazi okt, hogy annak idejnmirt ppen erre a szra esett a Unix-ksztok vlasztsa, mra homly fedi. Funkcio-nalitst tekintve a nvvlaszts igen tall:

    egy hj elrejt valamit a kvncsi szemek elol, cskkentve ezzel a lehetosgt anemkvnatos behatsoknak (vdelem a felhasznltl)

    4

  • 8/14/2019 Linux - Hjprogramozs

    6/26

    vannak dszesebb-szolidabb hjak, m felptsben egyik sem bonyolult (nem

    elrettents a cl, hanem a knnyu kezelhetosg) egy burok adott clkznsg szmra kszl (mint egy j munkaeszkz)

    egy tengeri kagylt flnkhz emelve halljuk a tenger zgst (kommunikci afelhasznlval)

    Szmos egyb rtelmezs is elkpzelheto, ezeket az Olvas fantzijra bzzuk.

    1.3. A hjprogramok mltja, jelene, jvoje

    1.3.1. A mlt

    A legrgebbi, m mg ma is hasznlt shell az n. Bourne Shell, mely nevt atyj-rl, az AT&T Bell Laboratories egykori munkatrsrl, Steven Bourne-rol kapta. Azutbbi harminc vben kevs kozmetikzson tesett program kivtel nlkl mindenUnix-tpus rendszeren fellelheto, amely egyik nagy elonye is a tbbivel szemben.Tudsa szernynek mondhat, akrcsak eroforrs-ignye. A POSIX 1003.2-es s1003.2a shell-specifikcik elksztshez a Bourne Shell szolglt alapul.

    Amikor a University of California at Berkeley is bekapcsoldott a Unix fejlesz-tsbe, j sznfoltot hoztak a shellek vilgba. Megalkottk a sajt, Bourne Shellhezkpest szmos knyelmi funkcival s C-nyelvvel hasonlatos szintaktikj parancsr-telmezojket, a C Shellt (Egy anekdota szerint a nv a sea shell (tengeri kagyl)szjtkbl szrmazik.). A fejlesztst Bill Joy vgezte. A C Shell fejlesztse a 70-esvek vgn j erore kapott, ennek eredmnye lett a TENEX C Shell, amelyet fokppKen Greernek s Paul Place Waynnek ksznhetnk.

    A 80-as vek derekn David Korn vezetsvel a Bell Laboratories tovbblpetta Bourne Shellen, megalkotva a Korn Shellt. Ez volt a Unix System V gnak elsomodern shellje. Ennek kszlt egy nagykznsg szmra is ingyenesen hasznlhatvltozata, a Public Domain Korn Shell. Mivel fzetnk elsosorban a Linuxot haszn-lkhoz szl, ezrt ez utbbit fogjuk rszletesen taglalni, m az esetleges eltrsekre isfelhvjuk a figyelmet.

    A Free Software Foundation (Szabad Szoftver Alaptvny) megalakulsa, a GNU-licenszels j hjprogramot hvott letre, a Bourne Again Shellt. Mint neve is mutatja,ez a Bourne Shell GPL-licenszelsu, tovbbfejlesztett vltozata, amelyet ma mr azelso szm linuxos shellknt tarthatunk szmon.

    1.3.2. A jelen

    Napjainkban szmos egyb shell is elrheto. Ezen j shellek kzs jellemzoje, hogyspecilis krlmnyekhez terveztk oket. Jelentosgk nem szmottevo, de egy rvidbemutatst mindegyik megr:

    Easy Shell : egy kis mretu parancsrtelmezo, rdekessge a Lisp-szeru szintaktikja.

    Pdmenu : tulajdonkppen nem is shellel llunk szemben, hanem egy programozhatmenvel, amelyet - knyelmi szempontokat tekintve - olyan felhasznlknakcl-szeru belltani, akiknek nem cljuk az alapveto ismeretek elsajttsa sem. Is-meri a szneket s az almenket, amelyeket akr egrrel is kivlaszthatunk.

    5

  • 8/14/2019 Linux - Hjprogramozs

    7/26

    RC : ez az AT&T Plan 9 opercis rendszer shelljnek egyik implementcija. Jelleg-

    zetessge a kis mret s gyorsasg, a C-nyelvu szintaktika (amely a C Shellnlsokkal jobban megkzelti a C-nyelvet) s egy hatkony mechanizmus a vltozkmanipullsra.

    ASH : a NetBSD Bourne Shellje, amely a POSIX shell-specifikcijt is betartja,emellett olyan lehetosgeket is tartogat, mint az Emacs vagy vi-szeru parancs-sorszerkeszts, tovbb korbban bert parancsainkat jra elohvhatjuk, valamint

    jobjainkat is vezrelhetjk. Aki csak ezt a nhny plusz tulajdonsgt hasznljaa Bourne Again Shellnek vagy a tbbi ltalnos shellnek, annak tudjuk ajnlaniaz ASH alaprtelmezettknti belltst, mivel sokkal kevesebb fggvnyknyv-trra tmaszkodik, mint nagyobb tuds trsaik s ez kevesebb eroforrsignytis eredmnyez.

    Karels Interactive Simple Shell : szintn egy kis mretu interpreter. Klnsen al-kalmas biztonsgi lemezek shelljeknt, mivel olyan beptett funkcikkal ren-delkezik, mint az alias, cat, cd, chgrp, chmod, chown, cp, exec, exit, grep, help,history, kill, ln, ls, mkdir, mknod, more, mv, printenv, pwd, read, rm, rmdir, se-tenv, sleep, source, touch, umount, unsetenv, ver, wc, where. Egyszval mindenolyan dolog megtallhat benne, amire egy biztonsgi helyrelltsnl szks-gnk lehet.

    Stand-alone Shell : akinek a Kiss nem tetszett, annak alternatva lehet a Stand-aloneShell. Beptett parancsaival (-ar, -chattr, -chgrp, -chmod, -chown, -cmp, -cp,-dd, -echo, -ed, -grep, -file, -find, -gunzip, -gzip, -kill, -ln, -ls, -lsattr, -mkdir,-mknod, -more, -mount, -mv, -printenv, -pwd, -rm, -rmdir, -sum, -sync, -tar,-touch, -umount, -where) ugyanis igen hasznosnak bizonyulhat egy esetleges

    rendszersszeomls utni helyrelltsnl.Limited Shell : ez egy kezdoknek sznt shell, DOS-kompatibilis parancsokkal. Tb-

    bek kzt bellthat a kis-nagybetu rzketlensg a belso parancsokra, az egyesknyvtrak megadhatk gy, hogy a DOS-os egybetus meghajtnevekre is hall-gassanak. Derlt hangulatot okoz a globlis konfigurcis llomny is, amely akeresztsgben a /etc/autoexec nevet kapta :-)

    Operators Shell : vannak helyzetek, amikor arra van szksgnk, hogy a felhasz-nlk mozgstert lekorltozzuk nhny parancsra. Ilyenkor jn jl ez a shell,amelynek konfigurcis fjljban megadhatk azok a programok, amelyeket afelhasznlk elindthatnak.

    1.3.3. A jvoA 90-es vek PC-ire a szmtsi kapacits megnvekedtvel gombamd szaporodtak aklnbzo grafikus felhasznli felletek (GUI-k). Pozitv tulajdonsgaikkal szembenteljesen nyilvnvalak htrnyaik is, gy mint a felesleges eroforrshasznlat, s egyido utn a lass kezelhetosg. Ez utbbihoz egy kevs magyarzat: a tapasztalat aztmutatja, hogy a shellekkel kapcsolatos gyakorlati tuds gyarapodsval sokkal gyor-sabban rhetjk el clunk, mint egrkattintssal. Ennek oka az, hogy a tapasztaltabbaktz ujjal gpelnek, s aktvan alkalmazzk a shellek knyelmi funkciit (nvkiegszts,lnevek). Ezen rvek miatt a fzet szerzoje nem hisz a shellek kihalsnak elmle-tben, s szvbol remli, hogy az utols oldalak olvassakor ezzel a Tisztelt Olvas isegyetrt majd.

    6

  • 8/14/2019 Linux - Hjprogramozs

    8/26

    1.4. A shellekrol ltalban

    1.4.1. A shell m ukdse

    Ahhoz, hogy a ksobbi flrertseket elkerljk, pontostani kell nhny fogalmat. Mi-vel az informatika nyelve angol, ezrt a ksobbi knnyebb tjkozds kedvrt azegyes szakszavak angol megfeleloje is megemltsre kerl.

    Az opercis rendszer mukdse kzben a kommunikci valamilyen terminlon(esetleg virtulis, emullt) keresztl trtnik. Ennek egyik eszkze lehet a shell is,melyen keresztl a vezrls szveges karakterekre korltozdik. A vezrlo jelsora-ink bevitelnek elsodleges eszkze a terminl billentyuzete. Minden egyes billentyulenyomsakor annak kdjt a shell megkapja s egy pufferben trolja, amelynek tartal-mt tbbnyire szerkeszteni is lehet. A parancssor ezen szolgltatst sorszerkesztoneknevezzk. A sorszerkesztovel tbbnyire egyszeru m uveleteket - trlst, fellrst, be-

    szrst - vgezhetnk a kurzormozgat billentyuk s -kombincik segtsgvel. Eztkvetoen a bevitt jelsor megjelenik a terminlon (echo). Egy rvnyesto vgjellel(alaprtelmezsknt ez az ENTER vagy RETURN billentyu) lehet a parancsot rtel-meztetni. Ilyenkor a puffer tartalmt megkapja a shell rtelmezo (interpreter) rsze,amely sztbontja utastsokra s paramterekre. Az utastsok kztt elsobbsgek, pre-cedencik lehetnek, azaz nem felttlenl beviteli sorrendben lesznek elindtva. Vgre-hajts sorn, ha szintaktikailag helyes az utastssor, akkor a shell eloszr helyettestonvknt (alias), ha nincs ilyen, akkor a beptett parancskszletben (builtin) keresimeg a hozztartoz cselekvssort. Ha ilyen nem ltezik, akkor egy alkalmazs neve-knt rtelmezi, s megksrli elindtani. A beptett parancs a shellbe be van drtozva;mukdsben olyan, mintha egy programfjl kerlne vgrehajtsra, azzal a klnbsg-gel, hogy nem klnll rszknt tallhat meg a fjlrendszeren. Egyes shellekbenlehetosg nylik a korbban kiadott parancsok trolsra, jbli kiadsra. Ezeket aparancsokat sszefoglal nven elozmnyeknek (history) nevezzk, az oket tartalmazfjl pedig az elozmnyfjl.

    Tbbnyire elmondhat, hogy a vgrehajts szekvencilis, azaz egy jabb utastscsak akkor adhat ki, ha mr egy korbbi lefutott. Ez igen nagy megkts, ennek thi-dalsra szolgl a munkavezrls (job control), amellyel megtehetjk, hogy bizonyosparancsokat httrben futtassunk kln folyamatknt, vagy felfggesszk. A felfg-gesztett folyamatoktl a rendszer elveszi a CPU-t, ha szksges, a lefoglalt memri-

    jukat elsok kztt rja ki a csere (swap) partcira.Hogy mit jelent az, hogy egy program elotrben vagy httrben fut, nehz elma-

    gyarzni, ellenben szemlltetni jl lehet klnbzosgeikkel:

    Elotrben:

    rhatja s olvashatja a terminlt

    a shell megvrja a jelenleg fut folyamat befejeztt, mielott j parancsbe-viteli lehetosget knlna fel

    Httrben:

    nem kpes olvasni a terminlrl

    rhat a terminlra, ha ezt stty to stop -pal le nem tiltjuk

    nem vr az aktulisan fut folyamat befejeztre, rgtn j parancsbevitelimdot knl

    7

  • 8/14/2019 Linux - Hjprogramozs

    9/26

    Mindezekbol leszurheto, hogy a httrben val futtatst olyan folyamatokhoz tall-

    tk ki, amelyek nem interaktvak, a terminlt nem vagy csak alig hasznljk. Pldvallve, kedvenc szvegszerkesztonket nem rdemes httrben futtatni, mert folyamatosbevitelt vr, viszont egy kernelfordtst vagy tmrtst mr clszeru.

    Minden shell egy alkalmazs, amelyhez ltezik egy fo futtathat llomny. Eztelindtva egy kln folyamatknt kel letre s teszi a dolgt addig, amg ki nem lpnekbelole. Minden bejelentkezskor egy ilyen programfjl hajtdik vgre, melynek szlofolyamata az init, s minden, a shellbol kzvetlenlelindtott tbbi folyamat ose a shelllesz.

    1.4.2. A shell megvltoztatsa

    Mint mr emltettk, a shell egy program, teht ltezik legalbb egy futtathat fjl,amivel el lehet indtani (Hogy melyek ezek, azt majd az egyes shellek lersnl tr-

    gyaljuk.). Ezt ktflekppen is megtehetjk: alaprtelmezettknt belpskor a loginprogram indtja el, vagy pedig a parancssorba begpeljk az fjl nevt. Attl fg-goen, hogy hogyan indult el, mukdse is eltro lehet. A login program ltal ind-tottak (tovbbiakban login shell) legtbbszr specilis konfigurcis fjlokat tltenekbe, krnyezeti vltozkat vesznek t/lltanak be (lsd ksobb), de ezen kvl mindenegybben megegyeznek a nem login shellekkel.

    Elofordulhat, hogy a felhasznlnk ltrehozsakor megadott alaprtelmezett(login) hjprogramunkat lecserlnnk egy msikra. Ehhez hasznljuk a chsh paran-csot. Debian 2.2 Linux alatt (a jelszavunk megadsa utn) ezt kiadva a kvetkezotltjuk:

    1. plda : Aktulis hjprogramunk megvltoztatsa

    aries@taplo:~$ chsh

    Password:

    Changing the login shell for aries

    Enter the new value, or press return for the default

    Login Shell [/bin/bash]: /usr/bin/tcsh

    Itt kell megadnunk az j shellnk futtathat llomnyt a teljes elrsi ttal. Fon-tos, hogy ez utbbit megadjuk, hiszen csak a shell elindtsa utn lp rvnybe aPATH krnyezeti vltoz. Ha ezzel kszen vagyunk, akkor a parancs mdostja a/etc/passwd (de ms rendszereken ez eltro lehet, pldul FreeBSD alatt ez a/etc/master.passwd ) fjl a felhasznlra vonatkoz bejegyzst. Ez legtbb-szr egyb informcikat is hordoz (User ID, Group ID, chfn paranccsal megadhategyb adatok, stb.). Megeshet, hogy nem a sajtunkat akarjuk megvltoztatni, ekkora chsh felhasznlnv szintaxis hasznlatos, pldul: chsh manoe. Mivel aparancs a jelszfjlt mdostja, ezrt a vltoztatsok csak jbli bejelentkezs esetnlp letbe. A legtbb terjesztsnl, ha nem ltezo, rvnytelen vagy egyb okok mi-att nem futtathat programot adunk meg alaprtelmezett shellnknek, akkor a rendszerfelknl egy lehetosget, hogy egy msikat futtassunk (tbbnyire a Bourne Shellt adjabe), m igyekezznk helyesen megadni j shellnket, hiszen ez nem mindenhol rv-nyes! Csnya meglepetsben lehet rsznk rgi Solarisokon, ha rossz adatokat adunkmeg, foleg ha az illeto login nevt ppen root-nak hvjk...

    Szmos rendszerben ltezik egy szvegfjl, amely az elrheto shell-ek futtathatllomnyainak listjt tartalmazza. Ez a /etc/shells llomny.

    8

  • 8/14/2019 Linux - Hjprogramozs

    10/26

    1.4.3. Shell vltozk, krnyezeti vltozk

    Mivel a Unix-tpus rendszerek tbb felhasznlra s tbb program egyideju haszn-latra lettek kifejlesztve, ezrt a shellekre klnbzo, krnyezetbol jvo tnyezok ishatnak. Ezek egy rsze ltalnos, minden programltal elrheto, vltoz rtku adatok,amelyeket globlis vagy krnyezeti vltozknak (environment variables) hvunk. Fel-adatuk az, hogy a shellben fut programok kztt egyfajta kommunikcis lehetosgetvalstsanak meg, mivel a shell gyermek folyamatai elrhetik az os (shell) krnyezetivltozit. ltalnosan elfogadott, hogy a krnyezeti vltozk nevei csak nagybetu-ket tartalmaznak. Lteznek dediklt krnyezeti vltozk, melyeknek jl meghatrozottszerepk s rtkk van. Ezek:

    EDITOR Az alaprtelmezett szvegszerkesztonk futtathat llomnynak neve (el-rsi ttal, ha nincs benne a PATH-ben). Clszeru megadni kedvenc szveg-

    szerkesztonket, mivel szmos program szerkesztsi muveleteknl az itt megadottprogramot indtja el.

    HOME A felhasznli knyvtrunk elrsi tvonala. Ennek rvidtse a / jel.

    MAIL Annak a mappnak a neve (elrsi tvonallal s fjlnvvel), amelybe emailje-ink rkeznek.

    OSTYPE Az opercis rendszernk tpusa. Az adott rendszerre jellemzo szvegettartalmaz, pl. linux-gnu, FreeBSD, stb.

    PAGER Az alaprtelmezett fjlnzo programunk futtathat llomnynak nevt kelltartalmaznia. Sok program hasznlja megjelentshez, tbbek kzt a man is.

    PATH Azokat az elrsi tvonalakat tartalmazza, ahol a shell futtathat llomnyokatkeres. Ez gyakorlatilag annyit tesz, hogy ahhoz, hogy ilyen knyvtrban lvofjlokat futtatni tudjunk, nem szksges azok elrsi tvonalt megadni. Tbbknyvtrat gy lehet megadni, hogy kzjk kettospontot (:) tesznk, teht aszintaxis: PATH="knyvtr1:knyvtr2:...:knyvtrn". Pldul:

    PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11"

    Fontos, hogy az ppen aktulis knyvtrat lehetoleg (ez fokozottan igaz azokra afelhasznlkra, akik adminisztrtori jogosultsgokkal brnak) ne tegyk a PATH-be, mert ezzel biztonsgi lyukat hozunk ltre. Kpzeljnk el egy olyan helyze-tet, hogy rendszergazdaknt az egyik felhasznl segtsget kr tolnk, s mikszsgesen prblunk neki segteni adminisztrtori azonostnkkal. Belpnk

    a felhasznl knyvtrba, berjuk, hogy ls. m a felhasznlnk gonosz mdonugyanitt elhelyezett egy futtathat ls programot, amely nem csak azt csinlja,hogy kirja a fjlok listjt, hanem egyb muveleteket is, pl. egy j, 0-s UID-ufelhasznlt is bejegyez a jelszfjlba, vagy a jelenlegi login programot fell-rja egy olyannal, amely nem csak belptet, hanem az azonostt s a jelszteljuttatja neki. Ekkor - ha az aktulis knyvtr benne van a PATH-ben - (eml-keztetol, a Unix-tpus rendszerek . (pttyel) jellik az aktulis knyvtrat)nem a /bin-ben lvo ls hajtdik vgre, hanem felhasznl.

    PWD Ez egy specilis vltoz, rtkt a shellek minden knyvtrvltsnl frisstiks az aktulis knyvtr nevt tartalmazza a teljes elrsi ttal. Ez legtbbszrmegegyezik a pwd parancs visszatrsi rtkvel, kivve ha szimbolikus ktsu

    9

  • 8/14/2019 Linux - Hjprogramozs

    11/26

    (symbolic link) knyvtrrl van sz. Ekkor ugyanis a PWD rtke abbl az

    irnybl fogja mutatni a knyvtrt, ahonnan belptnk, mg a pwd parancs afizikailag ltezo felol.

    2. plda : Klnbsg a pwd parancs s a PWD krnyezeti vltoz kztt

    aries@taplo:/usr/doc$ ls -l xbill

    lrwxrwxrwx 1 root root 18 Jul 25 16:06 xbill -> ../share/doc/xbill

    aries@taplo:/usr/share/doc$ cd /usr/doc/xbill

    aries@taplo:/usr/doc/xbill$ pwd

    /usr/share/doc/xbill

    aries@taplo:/usr/doc/xbill$ echo $PWD

    /usr/doc/xbill

    Termszetesen ez a klnbsg shellfggo.SHELL Jelenleg fut shellnk programneve teljes elrsi tvonallal.

    TERM a terminl tpust tartalmazza. Ez Linux esetn legtbbszr linux vagy xterm,de rendszertol fggoen ez lehet cons25, vt100, stb.

    A shell karbantart egy belso paramterlistt, amelyet shell vltozknak hvunk.Ezeket ms programok (szlo s gyermek egyarnt) nem rhetik el, nem mdosthatjkscsakashellmukdst befolysoljk. ltalnos megllapods, hogy a shell vltozknevei csak kisbetukbol llnak. Mivel ezek elg specifikusak, ezrt rluk bovebben azegyes hjprogramok lersnl rtekeznk.

    1.5. A shellekrol rszletesen1.5.1. Bourne Shell

    Mint azt a trtnelmi ttekintsben is elmondtuk, a Bourne Shell a legosibb shell. Braz idok folyamn nmi vltoztatson ment keresztl, a felhasznlk szmra megma-radt annak, ami volt: egy egyszeru hjprogram, amely mentes a mai modern shellekminden knyelmi funkcijtl. Nem vletlen azonban, hogy a mai napig megtall-hat, hiszen felesleges fajslyosabb parancsrtelmezot elindtani, ha csak programokatakarunk elindtani vagy egy kisebb shell-szkripteket rni.

    Ez a shell egy futtathat binris fjlal rendelkezik, melynek neve: sh, amely a/bin knyvtrban tallhat (ez is jl szemllteti, hogy alapveto kellke a Unix-tpus

    rendszereknek).

    Programindts

    A shell mukdse fejezetben mr trgyaltuk, hogy elmletben hogyan is indul elegy program. Ez a gyakorlatban gy mukdik, hogy a parancssorba berjuk elrsittal a futtathat llomny nevt, majd az rvnyesto karaktert (amelyet alapesetbenaz ENTER vagy a RETURN billentyu produkl). Ha a programunk futsa vget rvagy megszakad, jbl megkapjuk a parancssort. Egy sorban tbb futtatand fjlt ismegadhatunk, ezek kz ; (pontosvesszo) kell kerljn, teht

    10

  • 8/14/2019 Linux - Hjprogramozs

    12/26

    program1 ; program2 [ ; program3 ... ]

    Mint azt a shell mukdse rszben mr megemltettk, ltezik egy olyan futtatsilehetosg is, amikor a programot nem elotrben, hanem a httrben futtatjuk. Ezt gytudjuk megtenni, ha a programnv utn egy & (s) jelet tesznk:

    program1 & [ program2 & ... ]

    Hogy milyen folyamatok futnak a httrben, azt a jobs paranccsal tudjuk lekrni.Ha nmagban adjuk ki a parancsot, akkor ltalban a

    [szm1] szm2 visszatrsi rtk kiadott parancs

    formban egy listt kapunk, ahol a szm1 a httrben fut parancsunk sorszma,

    a szm2 pedig a folyamatazonostja. A visszatrsi rtk a folyamat visszatrsirtke, amennyiben befelyezodtt. Ha ez sikeresen trtnt, akkor tbbnyire az Exit0 szveget lthatjuk. Megeshet, hogy a folyamat valamilyen jelzs miatt ll le, ekkora jelzsre jellemzo zenetet kapunk, pl. Terminated, Killed stb.

    3. plda :

    aries@taplo:~/konyv$ find / -name dallas.mpeg &

    25723

    aries@taplo:~/konyv$ killall -9 find

    [1] 25723 Killed find / -name dallas.mpeg

    rsjelek

    Minden hjprogram szmra lteznek klnleges jelentssel br karakterek. Ezek leg-tbbszr klnfle rsjelek, mint az egy- s ktszeres idzojel, dollrjel rep (angolulbackslash; a szerzonek rendkvl tetszik ez a szellemes fordts, melynek hasznlatvalis szeretn elismerst kifejezni a kortrs magyar nyelvjtknak), stb.

    Escape-karakter

    Az idzojelek (lsd lentebb) nlkli rep (

    ) a Bourne Shell escape-karaktere.Tbbek kzt ezzel a jellel lehet elrni, hogy az ot kveto specilis karakter elve-sztse mdost hatst. Ha a rkvetkezo karakternekeddig sem volt klnleges

    jelentse, akkor az nem jelenik meg. Ez all kivtel az jsor karakter, amely sz-kzz alakul t.

    Dollrjel

    A dollrjellel ($) tudunk klnbsget tenni vltoz neve s annak rtke kzt.Ha a vltoz neve elott $ ll, akkor annak rtkre hivatkozunk.

    Idzojelek

    Az idzojelek arra valk, hogy egyes karakterek vagy lefoglalt szavak specilisjellegt feloldjk.

    Az egyszeres idzojelek () kz zrt jelsoron bell semmilyen specilis karakternem rvnyesl. Egyszeres idzojelek kz mgegy csak gy kerlhet, hogy egyreppel feloldjuk annak klnleges jelentst.

    11

  • 8/14/2019 Linux - Hjprogramozs

    13/26

    A ktszeres idzojelek (") kztti fzrben a dollrjelen, jobbratart felso-

    vesszon () s repen kvli klnleges jelek elvesztik specilis jelentsket. A $s a mindig, mg a rep csak abban az esetben lesz specilis, ha a $, `, ",

    vagy egy j sor kveti.

    A jobbratart felsovesszo tulajdonkppen egy opertor, amely a kt (AltGr+7)kztt lvo jelsort vgrehajtja, s a kimenett adja vissza gy, hogy az jsorkarakter helyre szkzt rak.

    Kettoskereszt

    A kettoskereszt (#) segtsgvel tudunk megjegyzseket elhelyezni. Onnantl,hogy a # megjelenik egy sorban, az ot kveto karaktereket az sh figyelmen kvlhagyja.

    A Bourne Shell s a vltozkA Bourne Shell esetben nem klnthetok el teljesen a shell s a krnyezeti vlto-zk. Amikor a shell elindul, a krnyezeti vltozk tblbl kiolvassa az informcikat,majd definil magnak ugyanolyan nevu shell vltozkat (a konvenci miatt nagybe-tuseket) s bemsolja a hozzjuk tartoz adatokat. Teht a shell csak a sajt vlto-zit hasznlja, gy ha egy shell vltozt mdostunk, akkor clszeru kiexportlnunkugyanilyen nevu krnyezeti vltozknt is, hogy ne legyen kevereds, valamint, hogya shellbol indtott programok is rzkeljk a vltoztatst. (Emlkezteto: a krnyezetivltozkat a gyermek folyamatok is el tudjk rni, a shell vltozkat nem.)

    Vltozt ltrehozni a rtkad utastssal lehet. Ennek szintaktikja:

    valtoznv=rtk

    A vltoznv csak alfanumerikus karaktereket tartalmazhat, specilisakat nem.Egy shell vltozt krnyezeti vltozv tenni az export belso paranccsal lehet:

    export vltoznv

    Ha egy vltoz rtkre kvnunk a ksobbiekben hivatkozni, akkor a vltoznvel $ (dollr) jelet kell tenni. Ha mr nincs szksgnk a vltozra, akkor az unsetparanccsal szntethetjk meg. Hasznlata:

    unset vltoznv

    4. plda : Plda a Bourne Shell vltozkezelsre I.

    aries@dynamo> valtozo=ertek

    aries@dynamo> export valtozo

    aries@dynamo> echo $valtozo

    ertek

    Megtehetjk, hogy tbb vltoznak vagy skalrnak az rtkt akarjuk egyetlensorban sszefuzni. Ekkor el kell magyarzni a shellnek, hogy hol van vge a vltoz-nvnek, illetve, hogy hol kezdodik egy j vagy a skalr rtk:

    parancs skalr1${vltoznv1}${vltoznv2}

    skalr2

    12

  • 8/14/2019 Linux - Hjprogramozs

    14/26

    Ha jl elhatrolhat (specilis karakter), hogy hol van vge a vltozknak, akkor a

    kapcsos zrjeleket elhagyhatjuk.

    5. plda : Plda a Bourne Shell vltozkezelsre II.

    aries@taplo:~/$ alma="alma" ; bor="bor"

    aries@taplo:~/$ mitiszunk=$alma$bor

    aries@taplo:~/$ echo $mitiszunk

    almabor

    aries@taplo:~/$ miteszunk=$almapaprika

    aries@taplo:~/$ echo $miteszunk

    aries@taplo:~/$ miteszunk=${alma}paprika

    aries@taplo:~/$ echo $miteszunk

    almapaprika

    aries@taplo:~/$ echo ls -al /lost+found/

    total 20

    drwxr-xr-x 2 root root 16384 Jun 24 17:05 .

    drwxr-xr-x 26 root root 4096 Jul 24 10:10 ..

    1.5.2. Korn Shell

    A Korn Shell a Bourne Shell tovbbfejlesztse. Rengeteg knyelmi funkcit ptettekbele, amelyre mr nagy igny volt (tbbek kzt a Korn Shell kpes arra, hogy egylpsben hozzon ltre krnyezeti vltozt.

    6. plda : rtkads s exportls egy utastssal

    export ALMA="jonatan"

    A Korn Shell futtatand llomnynak neve ksh.

    Shell kapcsolk

    A shell kapcsolk hasznlata egy jabb md arra, hogy megvltoztassuk hjprogra-munk mukdst. Ezek voltakppen ktlls kapcsolk: vagy rvnyben vannak,vagy nem. Egy kapcsolt be- s kikapcsolni a

    set -o opci"

    formban lehet. Hogy melyik mire hivatott, azt az albbi lista tartalmazza. Amelyikmellett parancssori kapcsol tallhat, azt a ksh utn megadva a kvnt hats szintnelrheto.

    bgnice A httrbe kerlo folyamatok alacsonyabb prioritssal futnak. Ez ltalbanalaprtelmezett, de hogy mekkora az j priorits, az terjesztstol s opercisrendszertol is fgg.

    emacs EMACS mdba kapcsolja a sorszerkesztot. Hatsra a parancsnaplban s aparancssorban alkalmazhatjuk az EMACS szvegszerkeszto funkciit.

    gmacs Gosling EMACS mdba kapcsolja a sorszerkesztot. Ez tbb-kevsb mege-gyezik az EMACS mddal.

    vi Visual Editor (vi) mdba kapcsolja a sorszerkesztot. Bekapcsolsval a vi funk-cii hasznlhatk. Egy parancs addig szerkesztheto, amg a 033-as kd escapekarakter bevitelre nem kerl.

    13

  • 8/14/2019 Linux - Hjprogramozs

    15/26

    ignoreeof Aktv llapotban nem engedi, hogy fjlvge (EOF - End Of File) karakterre

    kilpjnk a shellbol. Az exit vagy a logout parancsokat kell ilyenkor alkalmazni.markdirs Fjlnvkiegszts sorn ha knyvtrrl van sz, a kiegsztett nv vgre

    tesz egy perjelet (/).

    noclobber -C Megakadlyozza a kimenet tirnytst mr ltezo fjlba.

    monitor -m Engedlyezi a folyamatvezrlst. Azok a tbbfeladatos opercis rend-szerek s interaktv shellek esetben ez ltalban alaprtelmezett.

    errexit Nulltl eltro hibakd esetn a kivtel elkapsa. Ez shellszkriptek esetnannak befejezodst vonja maga utn.

    keyword -k Bekapcsolt llapotban ha egy parancs paramtere a nv=rtk formj,akkor a shell levgja azt a parancssorbl, s vgrehajtja azt, mint a parancsotmegelozo utastst, majd a parancs szmra a vgrehajts ideje alatt kiexportlja.

    nolog Hatsra a fggvnydefincikat nem menti el a parancsnapl fjlba.

    noglob Aktv llapotban a fjlnevek nem kerlnek kirtkelsre.

    noexec -n Hatsra a parancsok beolvasst kvetoen szintaxisellenorzsen esnek t,de nem kerlnek vgrehajtsra.

    nounset -u Shellprogramozs esetn hasznos hibakereso lehetosg, amely rvn fi-gyelmeztetst kapunk, ha olyan vltozra hivatkozunk, amely nem hordoz rt-ket (nincs definilva).

    trackall -t Ha a kapcsol aktv, akkor minden rvnyes, nem teljes bejrsi ttal meg-

    adott parancshoz automatikusan hozzrendelodik egy nyomkveto lnv (lsdott).

    Helyettesto nevek (alias)

    A helyettesto nevekkel parancsok valdi neve s azok paramterei helyettesthetok,gy egy hosszabb, surun hasznlt parancsot nevezhetnk el egy rvidebb nvvel.

    Hasznlata:

    alias [-t] [-x] nv="parancs [paramterek]"

    7. plda : Helyettesto nv

    $ alias ls="ls -al"

    $ ls

    total 4

    drwxr-xr-x 2 aries wheel 512 Jul 31 10:32 .

    drwxr-xr-x 4 aries wheel 512 Jul 31 10:32 ..

    -t A kapcsol segtsgvel nyomkveto lneveket (tracked aliases) definilhatunk.A shell szmos kiadott parancshoz automatikusan kszt egy nyomkveto lnvbejegyzst. Ezek rtke megegyezik az oket definil parancshoz tartoz bej-rsi ttal s a fjlnvvel. Mivel a shellek elobb nzik vgig az lneveket, mint aPATH krnyezeti vltozban megadott bejrsi utakat, ezrt ennek teljestmny-nvelo hatsa van. Ha nem adunk meg helyettestendo nevet, akkor egy listt

    14

  • 8/14/2019 Linux - Hjprogramozs

    16/26

    kapunk:

    8. plda : Nyomkveto lnevek

    $ alias -t

    cat=/usr/bin/cat

    ls=/usr/bin/ls

    vi=/usr/bin/vi

    $ alias -t man

    cat=/usr/bin/cat

    ls=/usr/bin/ls

    man=/usr/bin/man

    vi=/usr/bin/vi

    -x Ezzel a kapcsolval az export paranccsal kiexportlt lneveket definilhatunk. Eze-

    ket a shell gyermek folyamatai is megkapjk, azokat hasznlhatjk.Ha mr nincs szksgnk egy helyettesto nvre, akkor az unalias paranccsal

    szntethetjk meg.

    unalias helyettesto nv

    vagy

    unalias -a

    A -a kapcsol hatsra minden helyettesto nv trlodni fog. Mivel a helyettestonevek a memriban vannak trolva, ezrt a surun hasznlt lneveket clszeru a bel-

    pskor lefut .profile-ban elhelyezni.

    Parancsnaplz (history)

    Ismer parancsnaplz lehetosget, amely beptett funkciknt elrheto a history pa-ranccsal, gy megtehetjk, hogy egy korbbi parancsot megvltoztatunk s kiadunkanlkl, hogy jra be kellene gpelnnk. Ez gy lehetsges, hogy a shell folyamatosanmenti minden kiadott parancsunkat egy n. history fjlba, melynek helyt s nevt aHISTFILE vltoz hordozza. Ennek a fjlnak a mrete vges, szablyoznia HISTSIZEvltozval lehet, amelynek rtke a letroland programok szma.

    A kiadott utastsainkkal kapcsolatos muveletekre a history parancsot kell hasz-nlni. Ez egy helyettesto nv az fc (ez a fix command, magyarul parancs javtsrvidtse) parancsra a ms Bourne-gi shellek rdekben. A teljessg kedvrt mind-kettot ismertetjk.

    history [-r] [innentol [idig]]

    vagy

    fc -l [-nr] [innentol [idig]]

    Kapcsolk:

    -l Hatsra az fc kilistzza a parancsnapl tartalmt. A history az fc -l lneve.

    15

  • 8/14/2019 Linux - Hjprogramozs

    17/26

    -n Ennek eredmnyre az fc nem tnteti fel a parancsok melletti sorszmot. Ez hasz-

    nos lehet, ha pl. fjlba irnytjuk t a listt, hogy jra kiadjuk.-r A kapcsol eredmnyl a listnk fordtott sorrendben jelenik meg (a legutbb kia-

    dott kerl legfellre).

    innentol, idig Ezek megadsval szablyozhat, hogy a parancsnapl mekkora rszejelenjen meg.

    A parancssorba paramterek nlkl berva kapunk egy listt a korbban bevittparancsokrl.

    9. plda : History parancs paramterek nlkl

    $ history

    123 cd globt2

    124 ls125 ls -l

    126 df

    127 quit

    128 w

    129 df

    130 man ksh

    131 less

    132 man ksh

    133 vim

    134 joe

    135 ls /usr/bin

    1 36 l s / us r/ loc al /b in

    137 vi

    138 history

    Ha csak egy bizonyos rszt szeretnnk megkapni, akkor meg kell adni, hogy mettolmeddig terjedjen a listzs:

    10. plda : Parancsnapl egy rsznek lekrse

    $ history 123 128

    123 cd globt2

    124 ls

    125 ls -l

    126 df

    127 quit

    128 w

    A mr kiadott parancsainkat jra felhasznlni az r paranccsal lehet.

    r [rgi=j] [parancs]

    vagy

    fc -e - [rgi=j] [parancs]

    parancs Ha tudjuk a parancsunk sorszmt, akkor azt parancsnak megadva jra le fogfutni. Ha negatv szmot adunk meg, akkor az aktulis sorszmhoz hozzadvaaz j sorszm fog megjelenni.

    rgi, j Ha ezt a kt kapcsolt megadjuk, akkor amennyiben a rgi jelsort megtalljaa megadott parancsban, kicserli az jra. Ez hasznos lehet, ha elgpeltnk egyhossz parancsot, s tudjuk, hogy mit kell rajta mdostani.

    16

  • 8/14/2019 Linux - Hjprogramozs

    18/26

    11. plda : Rgebben kiadott parancs mdostott jrakiadsa

    Legyen a parancsunk a 125-s sorszm ls -l.

    Ezt szeretnnk kicserlni ls -al -re.

    Ekkor nem kell mst tennnk, mint kiadni az

    r -l=-al 125 utastst.

    A Korn shell ltal mdostott vltozk

    A Korn Shell rendelkezik nhny specilis vltozval, amivel a Bourne Shell nem.Ezek rtke folyamatosan vltozik, s o maga frissti. Ezek:

    ERRNO Azt a nemnulla szmot tartalmazza, amellyel a shellben legutoljra futtatottprogram visszatrt. A vltoz hasonlt a $?-hez, azzal a klnbsggel, hogy csakakkor kap rtket, ha a program hibval tr vissza.

    LINENO Csak szkriptfuttatsnl van jelentosge, ugyanis annak a sornak a szmtveszi fel, ahol a vgrehajts tart.

    OLDPWD A legutols cd parancs elott knyvtrnv teljes elrsi tvonalt tartal-mazza.

    PPID A jelenlegi folyamat szlojnek folyamatazonostja. Ha a $$ az ppen aktulisfolyamat PID-jt tartalmazza, akkor a PPID a folyamat szlojnek PID-jt. Folegszkriptek rsnl hasznlatos.

    RANDOM rtke 0 s 32767 kzti szm. Minden lekrskor vletlenszeruen vlto-zik az rtke. Mivel a vletlenszm generlsa nem fgg a bemenettol, ezrtshellszkriptekben is jl hasznlhat.

    SECONDS A shell indulstl szmtott idot adja vissza msodpercekben.

    A Korn Shell vltozi

    A Korn Shell vltozi magban foglaljk a Bourne Shell-t is, de tartalmaznak szmosegyebet is.

    1.5.3. Bourne Again Shell

    A Bourne Again Shell (tovbbiakban BASH) mint a

    17

  • 8/14/2019 Linux - Hjprogramozs

    19/26

    GNU Szabad Dokumentcis

    Licensz 1.1 verzi, 2000 mrcius

    Copyright c

    2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston,MA 02111-1307 USA

    Jelen licensz sz szerinti sokszorostsa s terjesztse brki szmra megengedett, vl-toztatni rajta ugyanakkor nem lehet.

    0. EL OSZ

    Jelen Licensz clja egyolyan kziknyv, tanknyv, vagy effajta rott dokumentummeg-alkotsa, mely a sz szoros rtelmben szabad: annak rdekben, hogy mindenkinekbiztostsa a szveg sokszorostsnak s terjesztsnek teljes szabadsgt, mdost-sokkal, vagy anlkl, akr kereskedelmi, akr nem-kereskedelmi ton. Msfelol, eLicensz megorzi a szerzo, vagy kiad munkja elismershez fuzodo jogt, s egyttalmentesti ot a msok ltal beiktatott mdostsok kvetkezmnyei all.

    Jelen Licensz egyfajta etalonnak tekintheto, ami nem jelent mst, mint hogy adokumentumbl szrmaztatott munkk maguk is szabad minostst kell, hogy kapja-nak. E dokumentum egyben a GNU ltalnos Felhasznli Licensz kiegsztojekntis szolgl, mely egy a szabad szoftverekre vonatkoz etalon licensz.

    E Licenszet a szabad szoftverek kziknyveiben val hasznlatra alkottuk, hiszen aszabad szoftver egyben szabad dokumentcit is ignyel: egy szabad programot olyankziknyvvel kell elltni, mely ugyanazon szabadsgokat biztostja, mint maga a prog-ram. Jelen Licensz, mindazonltal, nem korltozdik pusztn kziknyvekre; feltteleitetszoleges trgykru rott dokumentumra alkalmazhatk, fggetlenl attl, hogy azknyvformban valaha megjelent-e. Mindamellett e Licenszet foknt olyan munkk-hoz ajnljuk, melyek elsodleges clja az tmutats, vagy a tjkoztats.

    1. ALKALMAZHATSG S DEFINCIK

    E Licensz minden olyan kziknyvre, vagy ms jellegu munkra vonatkozik, melyenmegtallhat a szerzoi jogtulajdonos ltal feltntetett figyelmeztets, miszerint a do-kumentum terjesztse jelen Licensz felttelei alapjn lehetsges. A Dokumentumalbb brmely ilyen jellegu kziknyvre, vagy egyb munkra vonatkozik. A lakossgminden tagja potencilis licensztulajdonosnak tekintheto, s mindegyikk megszl-tsa egyarnt n.

    18

  • 8/14/2019 Linux - Hjprogramozs

    20/26

    A Dokumentum Mdostott Vltozata brmely olyan munkra vonatkozik, mely

    tartalmazza a Dokumentumot, vagy annak elemeit akr sz szerint, akr mdostsok-kal, s/vagy ms nyelvre lefordtva.A Msodlagos Szakasz egy egyedi nvvel br fggelk, esetleg a Dokumentum

    egy megelozo szakasza, mely kizrlag a kiadknak, vagy az alkotknak a Dokumen-tum tfog trgykrhez(vagy kapcsold tmkhoz) fuzodo viszonyrl szl, s nemtartalmaz semmi olyat, ami kzvetlenl ezen tfog tmakr al eshet. (Ha pldul aDokumentum rszben egy matematika tanknyv, gy a Msodlagos Szakaszban nincslehetosg matematikai trgy magyarzatokra.) A fenti kapcsolat trgya lehet a tma-krrel, vagy a kapcsold tmkkal val trtnelmi viszony, illetve az azokra vonat-koz jogi, kereskedelmi, filozfiai, etikai, vagy politikai felfogs.

    A Nem Vltoztathat Szakaszok olyan specilis Msodlagos Szakasznak szm-tanak, melyek ilyetn val meghatrozst az a kzlemny tartalmazza, miszerint aDokumentum jelen Licensz hatlya alatt lett kiadva.

    A Bortszvegek olyan rvid szvegrszek, melyek Cmlap-szvegknt, illetveHtlap-szvegknt kerlnek felsorolsraabban a kzlemnyben, miszerint a Dokumen-tum jelen Licensz hatlya alatt lett kiadva.

    A Dokumentum tltsz pldnya olyan gppel-olvashat vltozatot jell, melya nyilvnossg szmra hozzfrheto formtumbankerl terjesztsre, tovbb melynektartalma szokvnyos szvegszerkeszto-programokkal, illetve (pixelekbol ll kpekesetn) szokvnyos kpmegjelento-programokkal, vagy (rajzok esetn) ltalnosanhozzfrheto rajprogramok segtsgvel azonnal s kzvetlenl megtekintheto, vagymdosthat; tovbb olyan formtumban mely alkalmas a szvegszerkesztokbe valbevitelre, vagy a szvegszerkesztok ltal kezelt formtumokba val automatikus ta-laktsra. Egy olyan, egybknt tltsz formtumban kszlt pldny, melynek mar-kupja gy lett kialaktva, hogy megakadlyozza, vagy eltntortsa az olvaskat minden

    tovbbi mdoststl, nem tekintheto tltsznak. A nem tltsz pldnyok aztltszatlan megnevezst kapjk.Az tltszsg kritriumainak megfelelo formtumok kztt megtallhat pldul

    a markup nlkli egyszeru ASCII, a Texinfo beviteli formtum, a LATEX beviteli for-mtum, az SGML vagy az XML egy ltalnosan hozzfrheto DTD hasznlatval, sa standardnak megfelelo, emberi mdostsra tervezett egyszeru HTML. Az tltszat-lan formtumok kz sorolhat a PostScript, a PDF, a szabadalmaztatott s csak fizetosszvegszerkesztokkel olvashat formtumok, az olyan SGML vagy XML, melyhez aszksges DTD s/vagy egyb feldolgoz eszkzk nem ltalnosan hozzfrhetok, saz olyan gpileg-generlt HTML formtum, melyet egyes szvegszerkesztok hoznakltre, kizrlag kiviteli clra.

    Egy nyomtatott knyv esetben a Cmlap magt a cmlapot, illetve brmely aztkiegszto tovbbi oldalt jell, amely a jelen Licenszben definilt cmlap-tartalmakkzzttelhez szksges. Az olyan formtum munkknl, melyek nem rendelkez-nek effajta cmlappal, a Cmlap a munka cmhez legkzelebb eso, m a szvegtrzst megelozo szvegrszeket jelli.

    2. SZ SZERINTI SOKSZOROST S

    nnek lehetosge van a dokumentum kereskedelmi, vagy nem-kereskedelmi jellegusokszorostsra s terjesztsre, brmely mdiumon keresztl, feltve, hogy jelen Li-censz, a szerzoi jogi figyelmeztets, tovbb a Dokumentumot jelen Licensz hatlya

    19

  • 8/14/2019 Linux - Hjprogramozs

    21/26

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

    kvl semmi mst nem tesz hozz a szveghez. Nem alkothat olyan technikai korl-tokat, melyek megakadlyozhatjk, vagy szablyozhatjk az n ltal terjesztett pld-nyok elolvasst, vagy sokszorostst. Mindazonltal elfogadhat bizonyos sszeget amsolatok fejben. Amennyiben az n ltal terjesztett pldnyok szma meghalad egybizonyos mennyisget, gy a 3. szakasz feltteleinek is eleget kell tennie.

    A fenti kritriumok alapjn klcsnbe adhat egyes pldnyokat, de akr nyilvno-san is kzzteheti a szveget.

    3. SOKSZOROST S NAGYOBB MENNYISGBEN

    Amennyiben 100-nl tbb nyomtatott vltozatot tesz kzz a Dokumentumbl, s an-

    nak Licensze felttell szabja a Bortszvegek megltt, gy minden egyes pldnytkteles elltni olyan bortlapokkal, melyeken a kvetkezo Bortszvegek tisztn solvashatan fel vannak tntetve: Cmlap-szvegeka cmlapon, illetve Htlap-szvegeka htlapon. Mindkt bortlapra egyrtelmuen s olvashatan r kell vezetnie a kiad,vagyis jelen esetben az n nevt. A cmlapon a Dokumentum teljes cmnek jl lt-hatan, tovbb minden egyes sznak azonos szedsben kell megjelennie. Ezen fell,beltsa szerint, tovbbi rszleteket is hozzadhat a bortlapokhoz. Amennyiben azesetleges mdostsok kizrlag a bortlapokat rintik, s feltve, hogy a Dokumen-tum cme vltozatlan marad, tovbb a bortlapok megfelelnek minden egyb kve-telmnynek, gy a sokszorosts ettol eltekintve sz szerinti reprodukcinak minosl.

    Abban az esetben, ha a bortlapok brmelyikn megkvetelt szvegrszek tlhossznak bizonyulnnak az olvashat kzzttelhez, gy csak az elsoknt felsorol-takat kell feltntetnie (amennyi jzan belts szerint elfr) a tnyleges bortn, a tovb-biak pedig tkerlhetnek a kvetkezo oldalakra.

    Amennyiben 100-nl tbb tltszatlan pldnyt tesz kzz, vagy terjeszt a Doku-mentumbl, gy kteles vagy egy gppel-olvashat tltsz pldnyt mellkelni min-den egyes tltszatlan pldnyhoz, vagy lerni minden egyes tltszatlan pldnybanegy a mdostatlan tltsz pldnyt tartalmaz nyilvnos hozzfrsu szmtgp-hlzat elrhetosgt, ahonnan brki, anonim mdon, trtsmentesen letltheti azt,egy kzismert hlzati protokoll hasznlatval. Ha az utbbi lehetosget vlasztja,kteles gondoskodni arrl, hogy attl a naptl kezdve, amikor az utols tltszatlanpldny is terjesztsre kerlt (akr kzvetlenl n ltal, akr kiskereskedelmi forga-lomban), a fenti helyen kzztett tltsz pldny mg legalbb egy vig hozzfrhetolegyen a felhasznlk szmra.

    Megkrjk, mde nem ktelezzk nt arra, hogy minden esetben, amikor nagyobb

    pldnyszm terjesztsbe kezd, mr jval ezt megelozoen lpjen kapcsolatba a Doku-mentum szerzoivel, annak rdekben, hogy megkaphassa tolk a Dokumentum esetle-ges feljtott vltozatt.

    4. MDOST S

    nnek lehetosge van a Dokumentum Mdostott Vltozatnak sokszorostsra s ter-jesztsre a 2. s 3. szakaszok fenti rendelkezsei alapjn, feltve, hogy a Mdostott

    20

  • 8/14/2019 Linux - Hjprogramozs

    22/26

    Vltozatot kizrlag jelen Licensz feltteleivel sszhangban teszi kzz, ahol a M-

    dostott Vltozat a Dokumentum szerept tlti be, ezltal lehetosget biztostva annakterjesztsre s mdostsra brkinek, aki csak hozzjut egy pldnyhoz. Mindezenfell, a Mdostott Vltozat az albbi kvetelmnyeknek is meg kell, hogy feleljen:

    A Cmlapon (s ha van, a bortkon) tntessen fel egy a Dokumentumtl, illetvebrmely korbbi vltozattl eltro cmet (melyeknek, ha vannak, a Dokumen-tum Elozmnyek szakaszban kell szerepelnik). Egy korbbi vltozat cmtcsak akkor hasznlhatja, ha annak szerzoje engedlyezte azt.

    A Cmlapon szerzokknt sorolja fel a Mdostott Vltozatban elvgzett vltozta-tsokrt felelos szemlyeket, vagy entitsokat, tovbb a Dokumentum fo szer-zoi kzl legkevesebb tt (vagy mindet, ha nincsenek ten).

    A Cmlapon a Mdostott Vltozat kzzttelrt felelos szemlyt tntesse felkiadknt.

    A Dokumentum sszes szerzoi jogi figyelmeztetst hagyja rintetlenl.

    Sajt mdostsaira vonatkozan is tegyen kzz egy szerzoi jogi megjegyzst,a tbbi ilyen jellegu figyelmeztets mellett.

    Rgtn a szerzoi jogi figyelmeztetseket kvetoen tntessen fel egy kzlemnyt,az albbi Fggelk mintjra, melyben engedlyezi a Mdostott Vltozat fel-hasznlst jelen Licensz felttelei alapjn.

    A fenti kzlemnyben hagyja rintetlenl a Nem Vltoztathat Szakaszok s aszksges Bortszvegek jelen Dokumentum licenszben elort teljes listjt.

    Mellkelje jelen Licensz egy eredeti pldnyt. Az Elozmnyek szakaszt, illetve annak cmt szintn hagyja rintetlenl,

    emellett adjon hozz egy j elemet, amely minimlisan tartalmazza a Mdo-stott Vltozat cmt, kiadsi vt, tovbb az j szerzok, illetve a kiad nevt,a Cmlapon lthatkhoz hasonlan. Amennyiben a Dokumentum nem tartalmazsemmifle Elozmnyek elnevezsu szakaszt, gy hozzon ltre egyet, mely tar-talmazza a Dokumentum cmt, kiadsi vt, tovbb a szerzok, illetve a kiadnevt, a Cmlapon lthatkhoz hasonlan; majd ezt kvetoen adjon hozz egy j,a Mdostott Vltozatra vonatkoz elemet, a fentiekkel sszhangban.

    Ne tegyen vltoztatsokat a Dokumentumban megadott tltsz pldny nyilv-nos hlzati elrhetosgt(ha van ilyen) illetoen, vagy hasonlkpp,a Dokumen-

    tum alapjul szolgl korbbi vltozatok hlzati helyre vonatkozan. Ezek azElozmnyekszakaszban is szerepelhetnek. Csak abban az esetben hagyhatjaelegyes korbbi vltozatok hlzati elrhetosgt, ha azok legkevesebb ngy vvela Dokumentum elott kszltek, vagy ha maga az alkot engedlyezi azt.

    Brmely Ksznetnyilvnts,vagy Ajnlsok szakasz cmt hagyja rintet-lenl, tovbb gondoskodjon arrl, hogy azok tartalma s hangvtele az egyeshozzjrulkat, s/vagy az ajnlsokat illetoen vltozatlan maradjon.

    A Dokumentum sszes Nem Vltoztathat Szakaszt hagyja rintetlenl, gycmket, mint tartalmukat illetoen. A szakaszok szmozsa, vagy brmely azzalegyenrtku jells nem tartozik a szakaszcmek kz.

    21

  • 8/14/2019 Linux - Hjprogramozs

    23/26

    Trljn minden Jvhagys elnevezsu szakaszt. Effajta szakaszok nem k-

    pezhetik rszt a Mdostott Vltozatnak. Ne nevezzen t semmilyen ltezo szakaszt Jvhagys-ra, vagy olyasmire,

    mely cmben a Nem Vltoztathat Szakaszokkal tkzhet.

    Ha a Mdostott Vltozat j megelozo szakaszokat tartalmaz, vagy olyan fggel-keket, melyek Msodlagos Szakasznak minoslnek, m nem tartalmaznak a Dokumen-tumbl szrmaz anyagot, abban az esetben, beltsa szerint, e szakaszok nmelyikt,vagy akr az sszeset nem vltoztathatknt sorolhatja be. Ehhez nem kell mst tennie,mint felsorolni a szban forg cmeket a Mdostott Vltozat licensznek Nem Vltoz-tathat Szakaszok listjban. E cmeknek hatrozottan el kell klnlnie mindenegybszakaszcmtol.

    Jvhagys elnevezsu szakaszt csak akkor adhat a Dokumentumhoz, ha az ki-

    zrlag a Mdostott Vltozatra utal megjegyzseket tartalmaz pldul msok re-cenziira vonatkozan, vagy hogy egy szervezet a szveget egy standard mrvad de-fincijaknt ismerte el.

    Cmlap-szveg gyannt egy legfeljebb t szbl ll szvegrszt adhat meg, aHtlap-szveg esetn pedig 25 szt fuzhet a Mdostott Vltozat Bortszvegeinekvghez. Brmely entits csak s kizrlag egy Cmlap- s egy Htlap-szvegrsztadhat (akr kzvetton keresztl) a Dokumentumhoz. Ha a dokumentum mr eleverendelkezik Bortszveggel, akr azrt, mert azt korbban n adta hozz, vagy mertvalaki ms nn keresztl gondoskodott errol, abban az esetben nincs lehetosg jabbBortszveg hozzadsra; a rgit mindazonltal lecserlheti, abban az esetben, haannak kiadja egyrtelmuen engedlyezi azt.

    A Dokumentum szerzoje/i s kiadja/i jelen Licensz alapjn nem teszik lehetovnevk nyilvnos felhasznlst egyetlen Mdostott Vltozat tmogatsa, vagy tmo-

    gatottsga rdekben sem.

    5. KOMBINLT DOKUMENTUMOK

    nnek lehetosge van a Dokumentum egyb, e Licensz hatlya alatt kiadott dokumen-tumokkal val kombinlsra a 4. szakasz mdostott vltozatokra vonatkoz rendel-kezsei alapjn, feltve, hogy a kombinci mdosts nlkl tartalmazza az eredetidokumentumok sszes Nem Vltoztathat Szakaszt, s hogy azok mind Nem Vltoz-tathat Szakaszknt kerlnek felsorolsra a kombinlt munka licenszben.

    A kombinlt munknak jelen Licensz mindssze egy pldnyt kell tartalmaz-nia, az egymssal tfedsben lvo Nem Vltoztathat Szakaszok pedig kivlthatk

    egy sszegzett pldnnyal. Amennyiben tbb Nem Vltoztathat Szakasz szerepelneugyanazon cmmel, m eltro tartalommal, gy alaktsa t minden egyes szakasz cmtolyan mdon, hogy mgrja zrjelben az eredeti szerzo s kiad nevt (ha ismeri),vagy egy egyedi sorszmot. Ha szksges, a Nem Vltoztathat Szakaszok cmeivel isvgezze el a fenti mdostsokat a kombinlt munka licenszben.

    A kombinlt munkban az eredeti dokumentumok sszes Elozmnyek elneve-zsu szakaszt ssze kell olvasztania, miltal egy sszefggo Elozmnyek szakasz

    jn ltre; hasonlkppkell eljrnia a Ksznetnyilvnts, illetve az Ajnlsok sza-kaszok tekintetben. Ugyanakkor minden Jvhagys elnevezsu szakaszt trlniekell.

    22

  • 8/14/2019 Linux - Hjprogramozs

    24/26

    6. DOKUMENTUMGY UJTEMNYEK

    nnek lehetosge van a Dokumentumbl, illetve brmely egyb, e Licensz hatlya alattkiadott dokumentumbl gyujtemnyt ltrehozni, s az egyes dokumentumokban tall-hat licenszeket egyetlen pldnnyal kivltani, feltve, hogy a gyujtemnybenszereplosszes dokumentum esetn minden ms tekintetben kveti jelen Licensz feltteleit,azok sz szerinti sokszorostsra vonatkozan.

    Tetszse szerint ki is emelhet egy meghatrozott dokumentumot a gyujtemnybol,tovbb terjesztheti azt jelen Licensz felttelei alapjn, feltve, hogy a szban forg do-kumentumhoz mellkeli e Licensz egy pldnyt, s minden egyb tekintetben betartja

    jelen Licensz elorsait a dokumentum sz szerinti sokszorostsra vonatkozan.

    7. SSZEF UZS FGGETLEN MUNKKKALA Dokumentum s annak szrmazkainak klnll, vagy fggetlen dokumentumok-kal, illetve munkkkal val sszefuzse egy kzs trolsi, vagy terjesztsi egysgen,egszben nem tekintheto a Dokumentum Mdostott Vltozatnak, feltve, hogy azsszefuzs nem lesz szerzoi jogvdett. Az effajta sszefuzs eredmnyeknt sszeg-zs jn ltre, m jelen Licensz nem rvnyes az abban a Dokumentummal egyttszereplo nll munkkra, hacsak azok nem a Dokumentum szrmazkai.

    Amennyiben a 3. szakasz Bortszvegekre vonatkoz rendelkezsei alkalmazha-tk a Dokumentum e pldnyaira, s a Dokumentum a teljes sszegzsnek kevesebb,mint egynegyedt teszi ki, gy a Dokumentum Bortszvegeit olyan mdon is el le-het helyezni, hogy azok csak magt a Dokumentumot fogjk t. Minden ms esetben

    a teljes sszegzs bortlapjain kell feltntetni a fenti szvegeket.

    8. FORDT S

    A fordts egyfajta mdostsnak tekintheto, gy ht a Dokumentum lefordtott pld-nyai a 4. szakasz rendelkezsei alapjn terjeszthetok. A Nem Vltoztathat Szakaszoklefordtsa kln engedlyt ignyel a szerzoi jogtulajdonostl, mindazonltal kzz-teheti a lefordtott vltozatokat is abban az esetben, ha az eredeti Nem VltoztathatSzakaszokat is belefoglalja a munkba. E Licensz lefordtsra ugyanezek a felttelekrvnyesek, vagyis a lefordtott vltozat csak akkor jelenhet meg, ha mellette ott vanaz eredeti, angol nyelvu Licensz szvege is. Amennyiben eltrs mutatkozna az ere-

    deti vltozat, illetve a fordts kztt, gy a Licensz angol nyelvu eredetije tekintendomrvadnak.

    9. MEGSZUNS

    A jelen Licenszben egyrtelmuen kijellt kereteken kvl tilos a Dokumentum br-minemu sokszorostsa, mdostsa, allicenszelse, vagy terjesztse. Minden ezzelszembeni sokszorostsi, mdostsi, allicenszelsi, vagy terjesztsi ksrlet a jelen Li-censzben meghatrozott jogok automatikus megszunst vonja maga utn. Azok a fe-

    23

  • 8/14/2019 Linux - Hjprogramozs

    25/26

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

    vesztik el azokat, amg maradktalanul betartjk e Licensz elorsait.

    10. JELEN LICENSZ JVOBENI JAVTSAI

    Megtrtnhet, hogy a Szabad Szoftver Alaptvny idorol idore fellvizsglt s/vagy jverzikat bocst ki a GNU Szabad Dokumentcis Licenszbol. E verzik szellemi-sge hasonl lesz jelen vltozathoz, m rszleteikben eltrhetnek, j problmk, jagglyok felmerlse okn. V.: http://www.gnu.org/copyleft/

    A Licensz minden vltozata egyedi verziszmmal van elltva. Ha a Dokumen-tum jelen Licensz egy konkrt, szmozott verzijra, vagy brmely jabb verzirahivatkozik, gy nnek a szban forg vltozat, vagy brmely jabb a Szabad SzoftverAlaptvny ltal (nem vzlatknt) publiklt verzi feltteleinek kvetsre lehetosge

    van. Ha a Dokumentum nem ad meg semmilyen verziszmot, gy brmely a SzabadSzoftver Alaptvny ltal valaha (nem vzlatknt) publiklt vltozat megfelel.

    FGGELK: A Licensz alkalmazsa sajt dokumentu-maira

    Ha e Licenszet egy n ltal rt dokumentumban kvnja hasznlni, akkor mellkeljehozz a Licensz egy pldnyt, tovbb vezesse r az albbi szerzoi jogi s licenszkzlemnyeket, rgtn a cmlapot kvetoen:

    Copyright c

    V AZ N NEVE.

    E kzlemny felhatalmazst ad nnek jelen dokumentum sokszorost-sra, terjesztsre s/vagy mdostsraa Szabad Szoftver Alaptvnyltalkiadott GNU Szabad Dokumentcis Licensz 1.1-es, vagy brmely azt k-veto verzijnak felttelei alapjn. A Nem Vltoztathat Szakaszok neveSOROLJA FEL A CMKET , a Cmlap-szvegek neve LISTA, a Htlap-szvegek neve pedig LISTA. E licensz egy pldnyt a GNU Szabad Do-kumentcis Licensz elnevezsu szakasz alatt tallja.

    Ha a szvegben nincsenek Nem Vltoztathat Szakaszok, gy rjon nincs NemVltoztathat Szakasz-t, ahelyett, hogy egyenknt felsoroln azokat. Ha nincsenekCmlap-szvegek, akkor rjon nincs Cmlap-szveg-et, ahelyett, hogy a Cmlap-szvegek neve LISTA, s hasonlkpp jrjon el a Htlap-szvegek esetben is.

    Amennyiben a dokumentum halad programkd-pldkat is tartalmaz, gy azt ja-vasoljuk, hogy e pldkat egy vlasztsa szerinti szabad szoftver licensz alatt kzlje mint pldul a GNU ltalnos Felhasznli Licensz , hogy lehetov tegye a kdokszabad szoftverekben val alkalmazst.

    24

  • 8/14/2019 Linux - Hjprogramozs

    26/26

    Htlapszveg

    Ezen dokumentum eredetije kszlt 2001-2002-ben a Linux-FelhasznlkMagyarorszgi Egyeslete gondozsban aMEH IKB pnzgyi tmo-

    gatsval. A dokumentum szabadon terjesztheto s msolhat a GNU Szabad Dokumentcs Licensz felttelei alapjn.

    25