Top Banner

of 381

Hu - Unix Felhasznaloi Ismeretek

Jul 22, 2015

Download

Documents

joey0627
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Infopen Online

Bartk Nagy Jnos Laufer Judit

UNIX FELHASZNLI ISMERETEKElsz Tartalomjegyzk Kiad: Openinfo Kiad1111 Budapest, Kende u 13. Tel: 209-5400/123, Fax: 466-7503 rta: Bartk Nagy Jnos, Laufer Judit Lektorlta: Dr. Demetrovics Katalin, Ivanyos Gbor, Singer Pter Az Openinfo Knyvek sorozatszerkesztje: Dr. Hutter Ott (C) Openinfo Kiad Kft, 1998. Az elektronikus vltozat sajt, egyni tanuls cljra ingyenesen hasznlhat, de brmilyen nyomtatott vagy elektronikus formban trtn jra publiklsa szigoran tilos. Ms kiadvnyokbl az elektronikus vltozat elrhetsgre a http://www.infopen.hu cimre mutat linkkel lehet hivatkozni.

http://www.infopen.hu/ufi/ (1 of 2) [1999.08.31. 20:44:36]

Infopen Online

A knyv nyomtatott vltozata (B5 formtum, 415 oldal terjedelem) 1450 Ft-os ron kaphat a szmtstechnikai knyveket forgalmaz knyvesboltokban, vagy megrendelhet a kiadnl postai utnvtellel Tel: 209-5400/123, Fax: 466-7503, e-mail: [email protected] Viszonteladi rtkests: Kiskapu Kft. Tel/Fax: 303-9119, 303-1619, e-mail: [email protected] Nagyker. raktr: 1081 Npsznhz u. 29.

http://www.infopen.hu/ufi/ (2 of 2) [1999.08.31. 20:44:36]

Bvezeto a UNIX knyvhz

ELSZKnyvnk az MTA SZTAKI Unix Oktatkzpontja tanfolyamainak anyagra tmaszkodva kszlt. Megrsakor ktelyek merltek fel bennnk, vajon rdemes-e jabb UNIX knyvet rni, amikor a knyvpiac tele van a Unixot trgyal knyvekkel, s ezek kzl a Kernighan-Pike pros nlklzhetetlen alapmve, A UNIX opercis rendszer magyarul is hozzfrhet. Mgis a megrs mellett dntttnk, egyrszrl mert a Kernighan-Pike knyv elg rgen rdott, s azta a Unix is jelents fejldsen ment t, msfell szmos tmval e knyvek nem foglalkoznak, illetve csak egyegy rszterletben mlyednek el, sajnlatosan kevs hangslyt fektetve a mindennapi letben rendszeresen felmerl problmkra. A fent lertak szellemben szerepel knyvnkben a vi s a sed editor ismertetse ppgy, mint a C s a Korn shellek, amelyekrl ismereteink szerint egyltaln nincs hozzfrhet magyar nyelv irodalom. Igyekeztnk a mg tapasztalatlan felhasznl hnyattatsait enyhteni, ppen ezrt kln fejezetben foglalkozunk a mindennapi munka sorn elkerl, gyakran a rendszeradminisztrci hatrterleteinek minsthet komplex tevkenysgekkel (ments, nyomtats, kommunikci stb). Elssorban a kezd, s az angolban nem jratos felhasznl veheti nagy hasznt a magyar nyelv parancs-referencia rsznek, s az ennek hasznlatt megknnyt permutlt indexnek. A Hibakeress, tippek s trkkk cm fejezetben a leggyakoribb hibahelyzeteket, s ezek kezelst foglaljuk ssze sajt tapasztalataink alapjn. Knyvnk msik erssgnek szntuk a gazdag feladatgyjtemnyt, amely lehetsg szerint minden fontosabb terletet rint. Az itt szerepl feladatok megoldsval az olvas remnynk szerint kell ismereteket fog szerezni ahhoz, hogy biztonsggal s rt mdon dolgozhasson, tetszleges Unix rendszer alatt. Knyvnk megrsnl a lehetsg szerint maximlisan megprbltunk platform- s verzisemlegesek maradni, ami egyltaln nem bizonyult knny feladatnak. A knyv mondanivaljnak tbbsge egyetemlegesen igaz a klnbz Unix verzikra, az olyan rszeknl, ahol jelents eltrsek mutatkoznak az egyes Unix verzik kztt, erre mindig utalunk a szvegben. Vgezetl szeretnnk ksznetet mondani mindazoknak, akik megjegyzseikkel s tancsaikkal segtettk e knyv megszletst; a Kedves Olvast pedig arra krjk, a knyvvel kapcsolatos megjegyzseit, javaslatait, netn msokkal megosztsra rdemes tapasztalatait juttassa el a kiadnak, hogy az jabb kiadsok mindannyiunk javra gazdagodhassanak. Budapest, 1994 A Szerzk

http://www.infopen.hu/ufi/Bevezeto.html (1 of 2) [1999.08.31. 20:45:02]

Bvezeto a UNIX knyvhz

ELSZ A MSODIK KIADSHOZt utnnyoms utn, vgre tdolgozva adjuk az Olvas kezbe knyvnk msodik kiadst, abban a remnyben, hogy a Unix opercis rendszerrel ismerkedknek ezutn is sok hasznos informcit fog nyjtani. Iparkodtunk az els kiadsban fellelhet hibkat gykerestl kiirtani, br nem ringatjuk magunkat abban a hi remnyben, hogy ez ne lett volna jabb hibk meleggya... A nyilvnval sajthibkon s kisebb korrekcikon tlmenleg teljesen tdolgoztuk a sed s a vi editorokrl szl fejezetet, szndkunk szerint most gyakorlatiasabb, ugyanakkor teljesebb lerst kap kezbe az olvas. Szintn teljesen tdolgoztuk a trgymutatt, de ami a legfontosabb, knyvnk immr megprblja tkrzni az elz kiads ta bekvetkezett vltozsokat, s ahol csak lehetett, a Unix'95 szabvnyokhoz igaztottuk anyagunkat. Kln is szeretnnk ksznetet mondani mindazoknak, akik hozzjrultak knyvnk megszletshez s nevk kimaradt az els kiadsbl; ksznet illeti Zahemszky Gbort, lelkiismeretes s mindenre kiterjed megjegyzseirt, tovbb Zsemlye Tamst, akinek oroszlnrsze volt feladatgyjtemnynk kidolgozsban. A Kedves Olvast pedig tovbbra is arra krjk, szrevteleit, jobbt javaslatait juttassa el a Kiadnak (akr egy e-mailben is), mert hisszk, hogy rtkll m a mai gyorsan vltoz vilgban csakis az olvasval egytt, annak ignyeire hallgatva szlethet s maradhat fenn... Budapest, 1997 november A Szerzk

http://www.infopen.hu/ufi/Bevezeto.html (2 of 2) [1999.08.31. 20:45:02]

TARTALOMJEGYZK

TARTALOMJEGYZK1. BEVEZETS

A UNIX kialakulsa Mi is a UNIX? A rendszer felptse UNIX dokumentcik Kziknyvek On-line help2. ALAPFOGALMAK

Tbbfeladatos-tbbfelhasznls mkds Bekapcsols-belps-kilps-kikapcsols Bejelentkezsi nevek s kulcsszavak Norml s privilgizlt felhasznlk Terminlelrs: soros vonali s hlzati s rendszerterminlok Folyamatkezels: eltr- s httrfolyamatok, dmonok s jobok Programok s folyamatok Httrfolyamatok s dmonok A parancsrtelmez A shell mint programozsi nyelv A "szerszmoslda" s a "deszkapados modell" Klnbz shellek A fjlrendszer: Fjlok s katalgusok, nvkonvencik Felhasznli- s csoportazonostk Hozzfrsi jogok s vgrehajthat fjlok3. ISMERKEDS AZ LLOMNYRENDSZERREL

Bejelentkezs

http://www.infopen.hu/ufi/tartalom.html (1 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

A fjlrendszert kezel parancsok A fjlrendszer kitntetett pontjai Hol vagyunk? A pwd parancs Mit lthatunk? Az ls parancs Hov jutunk? A cd parancs Minek nevezzelek? Nvkonvencik Rejtett fjlok Katalgusok ltrehozsa: a mkdir parancs Katalgusok trlse: az rmdir parancs Alapvet fjlkezel parancsok Fjlok ltrehozsa Fjlok megtekintse: a cat parancs Fjlok tnevezse: a mv parancs Fjlok msolsa: a cp parancs Fjlok trlse: az rm parancs Lncok ltrehozsa: az ln parancs A szimbolikus lnc Hozzfrsi jogosultsgok Hozzfrsi jogosultsgok mdostsa: a chmod parancs Tulajdonos- s csoportvlts: chown s chgrp Msodlagos csoportok Gyakorlati plda: a passwd program Mi hol tallhat a UNIX-ban? llomnykonvencik4. A PARANCSRTELMEZ (BOURNE SHELL)

Specilis karakterek A vezrlkarakterekrl

http://www.infopen.hu/ufi/tartalom.html (2 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

Karaktertrls Sortrls Specilis jelents elnyomsa Programfuts meglltsa Httrben fut programok meglltsa Fjlvge Kpernylistzs A parancssor feldolgozsa Tbb parancs egy sorban A standard perifrik s tirnytsuk A csvezetk (pipe) Programok csoportostsa zrjelezssel A standard error Csvek elgaztatsa: a tee parancs Folyamatkezels Httrfolyamatok s folyamatazonostk Folyamatok lelvse: a kill parancs Folyamatok kilistzsa: a ps parancs Programfuttats kilps utn: a nohup parancs Programok idztett vgrehajtsa: az at parancs A fjlnevek behelyettestse a shell-ben A DOS s UNIX metakarakterek Metakarakterek semlegestse Megjegyzsek Shell-scriptek Programargumentumok, shell vltozk

http://www.infopen.hu/ufi/tartalom.html (3 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

A rendszer ltal lltott fontosabb shell-vltozk Shell-vltozk exportja Pozicionlis paramterek Paramterbehelyettests Parancsbehelyettests Krnyezetalakts: a profile fjlok5. REGULRIS KIFEJEZSEK 6. AZ ED EDITOR

A UNIX szvegszerkesztirl ltalban Az ed Mkdsi alapelvek Az ed parancsainak alakja Az ed szvegszerkeszt parancsai Nhny plda az ed szvegszerkeszt hasznlatra 7. A SED EDITOR A sed mkdsi elve Cmzs a sed-ben A sed fontosabb parancsai Behelyettests Trls Hozzfzs, beszrs, vltoztats Transzformci Nyomtats j sor beolvassa Fjlok rsa-olvassa Tbb sor kezelse

http://www.infopen.hu/ufi/tartalom.html (4 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

Az ideiglenes troltr s parancsai Elgazsok, feltteles parancsvgrehajts8. A VI EDITOR

A vi mkdse, zemmdjai Ismerkeds - a tllkszlet Pozicionl parancsok Szavak, mondatok s egyb szvegelemek A vi parancsok felptse Pozicionls karakterek alapjn Pozicionls sorok alapjn Pozicionls szavak alapjn Pozicionls mondatok alapjn Pozicionls bekezdsek alapjn Pozicionls a kpernyn Pozicionls az llomnyban - grgets Pozicionls sorszm alapjn Pozicionls mintakeresssel Szvegbeviteli parancsok Szvegmdost (cserl) parancsok Trl parancsok Trls parancsmdban Trls beviteli mdban llomnyvlts s ments Specilis parancsok Jelzpontok (markerek) Pufferkezels

http://www.infopen.hu/ufi/tartalom.html (5 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

Nvtelen s neveztett pufferek Szvegmsols: p s y parancs Vgs-ragaszts Fjlmveletek s kls shell parancsok Kls parancs vgrehajtsa vi all Fjlok rsa-olvassa Puffermveletek Komplex keressek s behelyettestsek Rvidtsek s makrk A vi konfigurlsa A :set parancs s a vi bels vltoz A vi s ex konfigurcis fjljai Az editorok sszehasonltsa 9. SEGDPROGRAMOK Visszatrsi rtk Szrk llomnyok rendezse Mintakeress llomnyokban llomnyok sszehasonltsa llomnylistz ("dump") parancsok Karakterkonverzi llomnykeress Adatbeviteli parancsok Aritmetikai kifejezseket kezel parancsok Kommunikcis parancsok Egyb hasznos UNIX utility-k

http://www.infopen.hu/ufi/tartalom.html (6 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

10. SHELL PROGRAMOZS A shell komplex tirnytsi funkcii Begyazott input (here documents) Vezrlsi szerkezetek a shell-ben Elgazsok Az if elgazsi mechanizmus A case elgazsi mechanizmus Ciklusok A for ciklus A while s az until ciklus Pldaprogramok 2, 3, 4, ...: tbbhasbos nyomtats bell: adott szm terminl hangjelzs exch: llomnyok cserje same_nm: azonos nev llomnyok keresse updt: frissen mdostott llomnyok listzsa bundle: programcsomagok tmrtse s kibontsa 11. A C SHELL A C shell indtsa Kilps a C shellbl A C shell konfigurcis fjljai A .cshrc konfigurcis fjl A .login konfigurcis fjl A .logout konfigurcis fjl Metakarakterek semlegestse Szintaktikus metakarakterek

http://www.infopen.hu/ufi/tartalom.html (7 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

Automatikus fjlnv kiegszts Parancsszerkesztsi lehetsgek a C shell-ben Parancshistria megtekintse Parancsok ismtelt vgrehajtsa Hivatkozs az esemny sorszmval Hivatkozs az esemny relatv elhelyezkedsvel Hivatkozs az esemny szvegvel Parancs argumentumok jra felhasznlsa Elz esemnyek mdostsa Az alias mechanizmus Az alias behelyettests Alias trlse tirnytsok Shell-vltozk rtkads s hivatkozs vltozkra Numerikus shell-vltozk s kifejezsek Vltozbehelyettests Krnyezeti- s shell-vltozk a C shell-ben A C shell bels vltozi Parancsbehelyettests Fjlnv behelyettests Kifejezsek s opertorok Aritmetikai opertorok Logikai (relcis) opertorok rtkadsi opertorok Postfix opertorok

http://www.infopen.hu/ufi/tartalom.html (8 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

Fjl- s parancs-teszt opertorok Vezrlsi szerkezetek if-then-endif switch foreach while goto A parancsvgrehajts folyamata Jobkezels A C shell beptett parancsai 12. A KORN SHELL Indts s kilps a Korn shell-bl Konfigurcis fjl- s shell-vltozk A shell opciinak belltsa A shell, mint parancsrtelmez tulajdonsgai Ktirny cshlzat llomnynv kiegsztsek Tilde jel behelyettestse Vltozk s a paramter helyettestsek Utastsok behelyettestse Alias-ok s fggvnyek Egsz aritmetika A job fogalma Az utastssor editlsa, history hasznlata 13. AMI KIMARADT... Terminlkezels

http://www.infopen.hu/ufi/tartalom.html (9 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

Az stty parancs Kontroll belltsok Input belltsok Output belltsok Loklis belltsok Vezrlkarakter belltsok Kombinlt belltsok Eltrs az SVR4 s BSD stty kztt Terminlproblmk kezelse A tput parancs Nyomtats SVR4 rendszerek Az lp parancs A cancel parancs Az lpstat parancs BSD rendszerek Az lpr parancs Az lpq parancs Az lprm parancs Archivls, ments A cpio parancs A tar parancs A dd parancs DOS alap fjlok s lemezek kezelse DOS konverzis segdprogramokFGGELKEK

http://www.infopen.hu/ufi/tartalom.html (10 of 11) [1999.08.31. 20:45:24]

TARTALOMJEGYZK

Permutlt index Mini manul Hibakeress, tippek s trkkk Feladatgyjtemny

http://www.infopen.hu/ufi/tartalom.html (11 of 11) [1999.08.31. 20:45:24]

1

1. A UNIX kialakulsa1969-et rtak, amikor az AT&T Bell Laboratriuma kiszllt abbl a projektbl, amelyet az MIT-vel egytt folytatott a Multics opercis rendszer kifejlesztse cljbl. A Bell Laboratrium munkatrsai gy knyelmes interaktv szmtgpes krnyezet nlkl maradtak. Ken Thomson s Dennis Ritchie ekkor fejlesztette ki egy gazdtlan PDP-7 tpus gpre a UNIX prototpust, mely a Multics nyomn kapta nevt. Ez a rendszer mr tartalmazta a UNIX legalapvetbb jellemzit, nevezetesen az llomnys processzkezel alrendszert, valamint minimlis szm egyb segdprogramot. 1971-ben a UNIX-ot, mely ekkor mg teljes egszben assemblyben volt megrva, s nem volt nagyobb 16 kilobyte-nl, PDP-11-re rtk t. Ekkoriban hozta ltre Ritchie a C programozsi nyelvet, mely az addig ltez assembly s magasszint nyelvek kztti igen szerencss tmenetnek bizonyult. A UNIX rendszer magjt, a kernelt (pontosabban annak legnagyobb rszt) 1973-ban trtk C nyelvre, ami abban az idben szokatlan tletnek tnt. A C nyelv kernel hordozhatsga kvetkeztben hamarosan mr 25 UNIX rendszer mkdtt a Bell Laboratrium klnbz rszlegeiben. 1974-ben jelent meg az els nyilvnos publikci a UNIX-rl, s ekkortl kezdett el rohamosan terjedni, klnsen az egyetemeken, ahol az AT&T a kezdeti idkben ingyenesen terjesztette. 1979-re mr mintegy 500 klnbz UNIX rendszer mkdtt az Egyeslt llamokban; klnsen nagy npszersgnek rvendett a telefontrsasgoknl, ahol mind programfejlesztsi, mind hlzati tranzakcis feladatokra kiterjedten alkalmaztk. Ebben az vben kezdtk meg a kereskedelmi cl rtkestst is, s szintn ebben az vben trtnt meg az els tvitel egy nem PDP gpre. Az els idszak szabad terjesztsi politikja a gyors elterjeds mellett htrnyokkal is jrt: a szabadon terjesztett forrskdba brki belenylhatott, sajt kpre s hasonlatossgra formlva a helyi UNIX rendszert. Az 1977-82 kzti idszakban az AT&T megprblta sszefogni a sajt UNIX varinsokat, s a Version 7 utn a System III nven ismert rendszerrel jelent meg a piacon. 1983-ban (ekkor mr szzezer krl jrt a mkd UNIX rendszerek szma), jelent meg a System III tovbbfejlesztse, a System V, amelynek jelenlegi legfrissebb vltozata az 1997-ben bejelentett System V Release 5 (V.5).

A Berkeley UNIXA kaliforniai Berkeley egyetemen mr 1977 ta hasznltk a UNIX-ot, s az idk folyamn kialakult egy szles krben elterjedt sajt UNIX vltozatuk, mely tbb ponton ersen eltr az AT&T verziitl. E csaldot a BSD (Berkeley Software Distribution) jelzssel lttk el, legfrissebb vltozata a 4.4 BSD UNIX.

A XenixA Xenix volt az els olyan UNIX rendszer, mely IBM PC gpekre kszlt. (Megrgztt Unix hvket tn nem ildomos erre emlkeztetni, de kifejlesztje a Microsoft volt...)Els vltozatai csak i8088 processzoron futottak, s annak korltozott kpessgei miatt igazi tbbfelhasznls mkdst nem is tettek lehetv. Az i386 alap PC-k megjelensvel a Xenix is biztostja a hagyomnyos UNIX gpek funkciit. A Xenix elssorban az MS-DOS rendszerrel kapcsolatos plusz szolgltatsokban trt el a

http://www.infopen.hu/ufi/1_1.html (1 of 4) [1999.08.31. 20:45:48]

1

System V s BSD alap UNIX rendszerektl, gy rtelemszeren a Xenix alap gpek biztostottak elszr lehetsget az egy gpen prhuzamosan meglv MS-DOS llomnyok UNIX alli kezelshez. Mra, a nagyteljestmny PC-k megjelensvel, egyre tbb igazi UNIX rendszert knlnak PC-kre is; a kereskedelmi (rtsd: fizets) rendszerek kzl messze a legelterjedtebb az SCO UNIX, de a szabadon hozzfrhet Linux s FreeBSD is rohamosan terjed.

Trendek s szabvnyokgy tnik, a UNIX terjedsi teme az elkvetkez vekben is megmarad, st fokozdik. Pr ve mg csak a miniszmtgpek terletn volt jelents a rszesedse, azta viszont mind a magasabb, mind az alacsonyabb teljestmnykategrikban is elkel helyet harcolt ki magnak. A szmtgpes rendszerek teljes piacn az 1981-es 2%-rl 1986-ra a UNIX kereken meghromszorozta jelenltt, s 1991-es becslt piaci rszesedse elrte a 22%- ot, ami tbb mint 30 millird dollros forgalmat jelentett. E hatalmas piac megszerzshez egy nagy problmval kell mg megkzdeni a gyrtknak, s ez paradox mdon pp a szabvnyok hinya. A UNIX ugyanis kzel sem olyan egysges s hordozhat, mint azt eleinte hittk. A problmk gykere a kezdeti idkre nylik vissza, amikor a UNIX forrskdjt szabadon terjesztette az AT&T. Az ennek kvetkeztben ltrejtt varinsokat igen nehz egysgesteni, az AT&T-nek is tbb esztendbe kerlt, amg hzon bell kialakult valamifle egysg a System III kpben. Jelenleg vatos becslsek szerint is legalbb hetven fle, jelentsen eltr UNIX van kereskedelmi forgalomban, a System V, a BSD, illetve a Xenix megjells mindssze a kiindulsi alapot biztostja egy-egy UNIX rendszer megtlsnl. (Mindegyik vltozatnak vannak befolysos tmogati, a System V a nagy eurpai szoftverhzak krben s az zleti alkalmazsoknl npszer, a BSD vltozatok a kutatsi intzmnyekben kedveltek.) Ilyen krlmnyek kztt a szabvnyostsnak rendkvli a jelentsge, s a kilencvenes vek elejre felersdtek az erre irnyul trekvsek. A kezd lpst az AT&T tette meg, amikor nyilvnossgra hozta az SVID (System V Interface Definition) nven ismert ajnlst. Ez lnyegben az AT&T ltal szabvnyosnak tekintett System V rendszerhvsainak s szubrutinjainak egysges felhasznli fellett s definciit hatrozza meg. Egy UNIX verzi akkor minsl SVID kompatibilisnak, ha tjut az AT&T gynevezett validcis tesztjein, mely a rendszerhvsok SVID-konform voltt vizsglja. Az SVID ktl fegyvernek bizonyult az AT&T szmra: noha minden nagy szoftvercg elismerte az SVID jelentsgt, az riasztlag hatott rjuk, hogy az egysges UNIX jvje egy kzel sem prtatlan cg kizrlagos felgyelete alatt alakuljon. Mintegy ellenreakci is volt teht, hogy a UNIX-ot forgalmaz szoftvercgek egy csoportja (a /usr/group nev felhasznli csoport munkjt folytatva) Posix nven (Portable Operating System Interface (x)) nven egy szabvnytervezetet dolgozott ki az IEEE gisze alatt, melyet jelenleg mind az ANSI, mind az ISO tmogat. A Posix az SVID-ben definilt rendszerhvsok mintegy hetven szzalkt hasznlja, szmos terleten hozz is tesz azonban j vonsokat, elssorban a valsidej, hlzati s adatbzis alkalmazsok, valamint az Ada nyelvvel val kapcsolat terletn. Hogy a dolog mg tovbb bonyoldjon, a legnagyobb eurpai gyrtkat tmrt X/OPEN csoport ugyan tmogatta a Posixot, valamint tbb-kevsb az SVID-t is, de sajt ajnlsaiban tovbbi termszetesen eltr... bvtseket (szktseket) is ajnl.

http://www.infopen.hu/ufi/1_1.html (2 of 4) [1999.08.31. 20:45:48]

1

Ami ezek utn az egyes UNIX-ot elllt cgeket illeti, a mg kzel sem kiforrott szabvnyok kzti lavrozsban egszen mostanig a mindennel (tbb-kevsb) kompatibilisnek lenni elve knlta az egyetlen kiutat. gy az ltalnos gyakorlat szerint egy- egy UNIX rendszer alapveten valamelyik elterjedt vltozatra (System V vagy BSD) pl, de a rivlis rendszer s a kszl szabvnyok szerinti egyb rendszerhvsokat is tartalmazza, ha pedig azonos nev rendszerhvsok mskpp mkdnnek az egyes vltozatokban, a felhasznl vlaszthatja meg, melyik rtelmezs szerint mkdjn az adott rendszerhvs.

Egysges UNIXAz elmlt ngy-t v sorn a nagy UNIX fejleszt cgek kztt elkeseredett harc indult a UNIX egysgestsrt, pontosabban az ltaluk favorizlt UNIX rendszerek szabvnyostsrt, s az gretesen nvekv piac megszerzsrt. A szakmban csak The UNIX War nven emlegetett hborskods 1987-ben vette kezdett, amikor az AT&T bejelentette, hogy az addig a BSD rendszereket tmogat Sun kzremkdsvel egysges UNIX-ot fejlesztenek ki, pontosabban, a System V kvetkez vltozata, a System V Release 4 (SVR4) integrlni fogja az AT&T s a BSD rendszerek szolgltatsait. E cl megvalstsra jtt ltre a UNIX International (UI) nev tmrls, tmogati kztt tallhat tbbek kzt az NCR, a Unisys s a Data General. Az SVR4, amelyet az AT&T s a Sun mellett az Intel, a Microsoft s az INTERACTIVE Systems kzremkdsvel fejlesztettek, egyesti magban a System V, a 4.3 BSD s a Xenix szolgltatsait, valamint a Posix ajnlsainak is megfelel. Az SVR4 f vetlytrsa az Open Systems Foundation (OSF) ltal tmogatott Unix verzi, az OSF/1 volt. Ez szintn egyestette magban a fbb Unix varinsok funkciit, de nem a hagyomnyos Unix kernelre tmaszkodott, hanem a Carnegie-Mellon egyetemen fejlesztett Mach opercis rendszerre. A Mach rendszerhvsi szinten teljesen Unix kompatibilis ugyan, de eleve tbbfonalas, n. multithreaded kernelre pl. Ennek rvn helybl tmogatja a Unix tbbprocesszoros rendszereken val hasznlatt, s a fut feladatok tbb processzor kzti sztosztst is. E tborba sorakozott fel az IBM, a DEC, a HP, a Bull s a Siemens-Nixdorf is. A kt "ellensges szekrtbor" kztt mindig is volt mozgs, de az egsz piac akkor bolydult meg igazn, amikor a Novell megvsrolta a Unix System Laboratories-t (USL), azt a cget, ami az AT&T jogutdjaknt gondozta az SVR4 Unix rendszerek forrskdjt. Az iparban hatalmas vihart kavart e lps, mert ktsgess vlt, hogy a Unixszal soha nem foglalkozott Novell teljes llekkel fogja-e a tovbbiakban tmogatni a Unix fejlesztst. Taln ppen e flelmek miatt, egyre tbb cg vette meg a Unix forrskdjt a Novelltl, hogy bebiztostsa magt az esetleges ksbbi "rugalmas elszakadsra". A fenntartsok igazoldtak, a Novell nem igazn tudott mit kezdeni a Unixszal, mg vgl 1993-ban egy vratlan hzssal tadta az SVR4 Unix vdjegyet s az azzal kapcsolatos minstsi jogokat a fggetlen X/Opennek. gy a Unix-megfelelsg elbrlsa vgre egy gyrtfggetlen szervezethez kerlt, ami jelents lkst adhat a tovbbi fejlesztsnek. Az X/Open a Posix ajnlsokat tovbbfejlesztve s a legfontosabb gyrtkkal konzultlva fejlesztette ki az n. Spec 1170 ajnlst, ami jelenleg a Unix minsts alapjt kpezi. (A nv onnan ered, hogy a megkrdezett gyrtk kzmegegyezses alapon definiltk a szmukra legfontosabb Unix rendszerhvsokat s segdprogramokat, mindazokat, amiket legfontosabb programjaik hasznlnak - e kvnsglista sszefslse utn pedig nem tbb s nem kevesebb mint 1170 parancs illetve rendszerhvs maradt a listn.) Az X/Open kt minstsi szintet

http://www.infopen.hu/ufi/1_1.html (3 of 4) [1999.08.31. 20:45:48]

1

jellt meg a Unix vdjegyre plyzknak, a nem teljes Posix megfelelsget igazol Unix 93, illetve az ersebb Unix 95 nevt. A Unix 95 cmkt elnyer Unix verzik szz szzalkosan megfelelnek a Spec 1170 szabvnynak, s az aljuk rt programoknak (jrafordts utn persze) futniuk kell brmelyik msik Unix 95 minsts rendszeren. Szintn rmteli fejlemnyknt rtkelhet, hogy a korszer grafikus felhasznli felletek tern is kialakult egy egysges szabvny. A CDE (Common Desktop Environment) az X11/Motif grafikus ablakkezel rendszerre pl, s ma mr gyakorlatilag minden gyrt biztostja grafikus fellettel br gpein. E szabvny jelentsgt nem lehet elgg tlrtkelni, hiszen gy a Unixos gpeken dolgoz felhasznlk a grafikus fellet szintjn is egysges (s igen jl hasznlhat, szmos korszer eszkzt tartalmaz) fellettel tallkoznak, kikszblve a Unix rendszerekkel szemben eddig felhozott legfontosabb kifogsokat. Knyvnk legutols kiadsnak zrsakor a kt legfrissebb fejlemny a 64 bites Unix API specifikci fejlesztse, illetve az a bejelents, hogy az SCO megvette a Unix forrskdot a Novelltl, s a tovbbiakban a Hewlett-Packarddal egytt hrmasban fejlesztik a licensztads alapjul szolgl Unix kdot. Utbbi tny drmaian lecskkenti a piacon lv eltr Unix kdverzik szmt (mr eddig is egyre tbben gyakorlatilag vltoztats nlkl vettk t az eredeti USL majd Novell kdot, s ahhoz rtak kiterjesztseket), s ez megint csak a gyorsabb s hatkonyabb fejleszts irnyba hathat. Az egysges 64 bites Unix specifikci szles kr elfogadsa pedig szintn ebbe az irnyba mutat, lehetv tve hogy a Unix versenykpesen, egysges platformon megjulva lphessen t a huszonegyedik szzadba.

1. bra: A fbb UNIX vltozatok kialakulsa

Tartalomjegyzk

http://www.infopen.hu/ufi/1_1.html (4 of 4) [1999.08.31. 20:45:48]

Mi is a UNIX

Mi is a UNIX? A rendszer felptseA UNIX sz nem csak egy szk rtelemben vett opercis rendszert jelent, hanem az ahhoz kapcsold felhasznli felletet, programokat s segdprogramokat (utility-ket) is, amelyek egytt egy tbbfelhasznls (multiuser), tbbfeladatos (multitasking) rendszert eredmnyeznek. Tanulsgos lehet az MS-DOS, az OS-2 s a UNIX rendszert ebbl a szempontbl sszehasonltani: az MS-DOS egyfelhasznls, egyfeladatos rendszer, azaz egyszerre csak egy felhasznl s egy programot futtathat rajta. Az OS-2 mr tbbfeladatos rendszer, ahol egy felhasznl tbb feladatot is futtathat egyidben. A UNIX alatt viszont egyszerre tbb felhasznl is dolgozhat, s mindegyikk tbb programot is futtathat egyidejleg. A UNIX rteges felpts, ezt szemllteti a 2. bra. A legbels rsze a kernel, az opercis rendszer magja, amely a rendszer erforrsainak sztosztst, s a fut folyamatok temezst vgzi. A kernel kr plnek a UNIX rendszer legklnflbb programjai (utility-k), amelyek a felhasznl parancsainak vgrehajtstl kezdve a szvegfeldolgozson t a kommunikciig, a rendszeradminisztrcitl a jtkokig minden tevkenysget lefednek. Ezek kzl a programok kzl csak egy, br a felhasznlk szmra ktsgkvl a legfontosabb a parancsrtelmez (shell, hj, burok stb). Ez az a program, amelyik egy felhasznl belpsekor elindul, kirja a promptot, beolvassa s rtelmezi a felhasznl ltal begpelt parancsokat, meghvja az elindtand programokat, gondoskodik a be- s kimenet kezelsrl, s egyttal egy igen erteljes, ugyanakkor rugalmas programozsi nyelvet is nyjt a felhasznlnak. Az tlag felhasznl szmra az a UNIX, amit az opercis rendszerbl a shell-en keresztl lt, nem pedig a rendszerprogramoz ltal kiadhat lehetsges rendszerhvsok gyjtemnye.

Tartalomjegyzk

http://www.infopen.hu/ufi/1_2.html [1999.08.31. 20:46:02]

UNIX dokumentcik

UNIX dokumentcikKlnsen a kezd felhasznl szmra lehet nyomaszt a UNIX ismeretlensge, de a DOS-hoz szokott felhasznlkat is zavarba ejtheti a UNIX mrete, bonyolultsga, a rendelkezsre ll parancsok nagy szma, s maga az a tny is, hogy tbbfelhasznls rendszerrel van dolga, ahol mg a ki- s bekapcsols se olyan egyszer, mint egy PC-n. A rendszer mretvel radsul arnyos a dokumentcik s lersok terjedelme is. Mindezek miatt igen fontos annak ismerete, hogy milyen informcit hol tallhatunk meg a klnfle lersokban. Az albbiakban az ezzel kapcsolatos alapvet ismereteket foglaljuk ssze.

KziknyvekA UNIX-hoz szlltott kziknyvek rendszerint kt f csoportra oszthatak, nevezetesen a referencia kziknyvekre (Reference Manual), s az sszes egybre; ezek rendszerint a megcmzett felhasznlk, illetve tmakrk szerint vannak csoportostva, pldul User's Guide, vagy Programmer's Reference Manual, Administrator's Reference Manual, stb. Mg a referencia kziknyvek nevknek megfelelen az egyes parancsok, rendszerhvsok stb. rszletekbe men ismertetst nyjtjk, a tbbi ktet vagy valamilyen bevezet szint, vagy haladbb ismereteket ad a rendszer hasznlatnak egyes vonatkozsairl, pldul a hlzati szolgltatsokrl s parancsokrl (a felhasznlk szmra), a hlzatadminisztrcirl (a rendszeradmi-nisztrtorok szmra), vagy ppen a hlzati fellet programozsrl (fejlesztk szmra). Noha a dokumentci szervezse rendszerrl rendszerre vltozik, teljes dokumentcikszlet esetn biztosak lehetnk abban, hogy tallunk benne valami Getting Started ... jelleg, teljesen kezdknek szl lerst, ami tsegthet bennnket a knyvtorony megpillantsa kivltotta kezdeti sokkos llapoton. Hasonlkppen, a legfontosabb tevkenysgekrl (szvegfeldolgozs, kommunikci, stb) rendszerint rszletekbe men s j magyarzatokkal elltott ktetek szlnak. A mindennapi munkban viszont mg gyakorlott felhasznlk sem tudnak meglenni a referencia kziknyvek gyakori lapozgatsa nlkl - s a parancsok nagy szmt, s az opcik vgtelen formagazdagsgt tekintve ez nem szgyen(1).

Az albbiakban teht a referencia kziknyvek szerkezett ismertetjk.

A referencia ktetek anyaga hagyomnyosan nyolc fejezetre tagoldik, ezek a kvetkezk:

1 A shell-bl kiadhat, a felhasznl ltal meghvhat parancsok (segdprogramok, utility-k). 2 Rendszerhvsok. A UNIX kernel szmra kiadhat rendszerhvsok gyjtemnye, C nyelvi szintaxis szerint megadva, ahogyan egy C nyelv programbl hvhatak. 3 Szubrutinok. A standard s opcionlis rendszerknyvtrak rutinjai, pldul stringkezels, matematikai vagy kpernyvezrl rutinok. 4 llomnyformtumok. 5 Vegyes szolgltatsok, llomny s adatformtumok.

http://www.infopen.hu/ufi/1_3.html (1 of 4) [1999.08.31. 20:46:24]

UNIX dokumentcik

6 Jtkprogramok. 7 Perifriallomnyok, a fizikai perifrikat reprezentl fjlok struktrja, s a megfelel eszkzmeghajt (device driver) vezrl parancsok. 8 Rendszeradminisztrci s karbantarts.

A fentieken bell gyakran alcsoportokat is megklnbztetnk, pldul egyes rendszerekben 1M al kerlnek az egybknt nyolcadik fejezetbe tartoz karbantart programok, 3M jelli a matematikai szubrutinokat, 3N a hlzatiakat s gy tovbb. Az irodalomban az egyes parancsokra val hivatkozsnl zrjelek kztt rendszerint megadjk, hogy a parancs a referenciakziknyv melyik fejezetben tallhat, pldul ls(1). Ha a referencia kziknyv a fenti szempontok szerint tovbb tagolt, akkor vigyzzunk arra, hogy egyes fejezetek mind a Programmer's Reference Manual-ban, mind a User's Reference Manual-ban megtallhatak (pldul utility-k), mg msok nem (pldul rendszerhvsok rtelemszeren csak a Programmer's Reference Manual-ban szerepelnek). A referencia kziknyvek elejn gyakran tallhat egy gynevezett permutlt index, amely klnsen akkor tehet j szolglatot, ha egy konkrt feladat megoldshoz keresnk egy ltalunk ismeretlen programot. A permutlt indexben minden egyes UNIX parancs szerepel egy egysoros lers erejig, de az index minden egyes parancsismertet sor minden egyes szava szerint rendezett, s gy trgymutatknt hasznlva pillanatok alatt megtallhatak azok a parancsok, amelyek lersban az ltalunk keresett sz szerepel. Pldul a cat parancs ismertetje az albbi:

cat(1) - concatenate, copy, and print files

Ennek az albbi sorok felelnek meg a permutlt indexben:

... and print files. cat(1) - concatenate, copy, ... files. cat(1) - concatenate, copy, and print ... cat(1) - concatenate, copy, and print files. ... copy, and print files. cat(1) - concatenate, ... concatenate, copy, and print files. cat(1) -

http://www.infopen.hu/ufi/1_3.html (2 of 4) [1999.08.31. 20:46:24]

UNIX dokumentcik

...

Lthat, hogy a parancslersban szerepl minden lnyeges sz szerint rtallhatunk a keresett parancsra.

On-line helpAz on-line segtsg legkzenfekvbb vltozatt sajt hibink keltik letre: szmos UNIX parancs, ha paramter nlkl, rossz paramterezssel, vagy a -? opcikkal hvjuk meg, kir a kpernyre egy meglehetsen tmr, de gyakran elegendnek bizonyul zenetet az adott parancs hasznlatrl. (A shell-programozsnl ltni fogjuk, hogy nagyon knnyen lehet ilyen gynevezett "usage" stringeket bepteni programjainkba, s mivel ez mind magunk, mind a tbbi felhasznl szmra megknnyti az letet, az erre val "rszokst" csak ajnlani tudjuk az olvasnak - pr hnap utn az ember mr a sajt programjnl se felttlenl emlkszik, milyen paramterekkel s hogyan hvhat...) Pldul ha az mv parancsot hvjuk meg rosszul:$ mv src.c mv: Insufficient arguments (1) Usage: mv [-f] [-i] f1 f2 mv [-f] [-i] f1 ... fn d1 mv [-f] [-i] d1 d2 $

Lehetsget biztost a UNIX arra is, hogy on-line mdon hozzfrjnk a kziknyvekhez. A man parancs hatsra (paramternek a referencia kziknyv valamelyik ttelnek nevt kell megadni, pldul man cat, vagy man hosts), s a megnevezett UNIX parancs, rendszerhvs, vagy szubrutinra vonatkoz manul oldalakat kilistzza a rendszer a kpernyre.(2) A permutlt index on-line megfelelje is ltezik: a man -k kulcssz parancs hatsra (pldul man -k (3) file) kilistzdik az sszes olyan parancs egysoros lersa, amelyekben szerepel a megadott kulcssz (esetnkben a file):... vhe_list(4) - information file for the Virtual Home Environment vhe_u_mnt(1M) - perform Network File System (NFS) mount to remote file system vipw(1M) - edit the password file vis, inv(1) - make unprintable characters in a file visible or invisible which(1) - locate a program file including

http://www.infopen.hu/ufi/1_3.html (3 of 4) [1999.08.31. 20:46:24]

UNIX dokumentcik

aliases and paths x25init_smpl(4) - sample configuration file used to initialize an X.25 interface. x25upload(1M) - dump X.25/9000 interface card memory into a file. x29hosts(4) - PAD-related configuration file x3config(4) - PAD-related X.3 configuration file ypfiles(4) - Network Information Service database and directory structure ...

A whereis parancs rvn (ez BSD alap parancs, gy nem minden rendszerben tallhat meg) azt tudhatjuk meg, hogy az ltalunk keresett parancs vajon ltezik-e UNIX rendszernkben, s ha igen, akkor hol tallhat a futtathat, illetve forrskd vltozata, illetve a rvonatkoz esetleges kziknyv rsz:$ whereis cat cat: /bin/cat /usr/man/man1.Z/cat.1 $

Nem lehet elgg hangslyozni a kziknyvek (mind a nyomtatott, mind az on-line) vltozat hasznlatnak fontossgt: a UNIX olyan hatalmas rendszer, annyi paranccsal s parancsopcival, hogy ezek szmontartsa s memorizlsa hasztalan, s gy felesleges is. Az on-line help szolgltats mindig hozzfrhet informcikat ad a keresett parancsrl. s vgl mg egy dolgot rdemes megemlteni: az egyes eltr UNIX vltozatok miatt eltr gpeken ugyanazok a parancsok eltren mkdhetnek, illetve ugyanannak a parancsnak tbb vltozata is jelen lehet gpnkn, ezrt mindig gondosan olvassuk el a kziknyv erre vonatkoz utalsait. (Elrettent pldaknt ajnljuk az olvas szves figyelmbe az echo parancsot, amelynek legalbb ngy vltozata ltezik, mind beptett shell funkci, mind nll parancs formjban...)

Tartalomjegyzk

http://www.infopen.hu/ufi/1_3.html (4 of 4) [1999.08.31. 20:46:24]

Tbbfeladatos-tbbfelhasznls

Tbbfeladatos-tbbfelhasznls mkdsMint emltettk, a UNIX gynevezett tbbfelhasznls-tbbfeladatos (multiuser-multitasking) rendszer. A tbbfelhasznls mkds fogalma azt jelenti, hogy egyszerre tbb felhasznl is dolgozhat egy adott gpen, mg a tbbfeladatos mkds azt jelenti, hogy a gp egyszerre legalbbis a felhasznl szempontjbl tbb programot tud futtatni. (Termszetesen ez csak virtulisan jelent prhuzamos futtatst, legalbbis egyprocesszoros rendszereken; a tbbprocesszoros rendszereknl mr tnylegesen lehetsges, hogy az egyes processzorok kln-kln ms-ms feladattal foglalkozzanak.) A UNIX fenti jellegnek szmos kvetkezmnye van, mind a rendszer mkdsre, mind a felhasznlk munkjra nzve.

Tartalomjegyzk

http://www.infopen.hu/ufi/2-1.html [1999.08.31. 20:46:45]

Bekapcsols-belps-kilps-kikapcso-ls

Bekapcsols-belps-kilps-kikapcsolsA tbbfelhasznls mkds egyik legalapvetbb kvetkezmnye, hogy sztvlik a rendszer bekapcsolsnak s a felhasznl belpsnek, illetve a felhasznl kilpsnek s a gp kikapcsolsnak folyamata. A hagyomnyos nagygpes rendszereken ez persze mindig is gy volt, a PC-hez szokott felhasznlk szmra azonban ez a tnyt nem lehet elgg hangslyozni. Hogyan is zajlik teht egy UNIX rendszer lete? A gp bekapcsolsakor elszr az opercis rendszer tltdik be a gp memrijba, elindulnak az alapvet rendszerfolyamatok (ez a folyamat alkalmasint igen hossz id, tbb perc is lehet), s csak ez utn ksz a rendszer az egyes felhasznlk fogadsra. Ezt a terminlokon megjelen belptetsi zenet, az gynevezett login prompt szokta jelezni. Az egyes felhasznlk ekkor lphetnek csak be a rendszerbe, majd munkjuk vgeztvel kilpnek, de ettl a rendszer mg fut llapotban marad, akkor is, ha ppen egyetlen felhasznl sincs bejelentkezve. Ksbb ltni fogjuk, hogy mg ebben az resjrati llapotban is szmos kiszolgl s felgyel program fut a httrben, amelyek a rendszer mkdst vezrlik. A rendszer lekapcsolst ltalban a rendszergazda hajthatja vgre a rendszerterminlrl; a kikapcsolsi parancs hatsra sorra lellnak a rendszer funkcii, biztonsgos llapotba kerlnek a rendszer legfontosabb adatai, s csak ezek utn lehet fizikailag is kikapcsolni a gpet. Mskppen fogalmazva: UNIX-ot futtat gpet (PC-t sem!) NEM SZABAD a hlzati kapcsolval egyszeren kikapcsolni!! Ennek okaira a ksbbiekben mg visszatrnk. Az elbbiek alapjn egy UNIX rendszer letciklust a 3. bra szemllteti

Tartalomjegyzk

http://www.infopen.hu/ufi/2_2.html [1999.08.31. 20:46:52]

http://www.infopen.hu/ufi/image3.gif

http://www.infopen.hu/ufi/image3.gif [1999.08.31. 20:47:16]

http://www.infopen.hu/ufi/Image5.gif

http://www.infopen.hu/ufi/Image5.gif [1999.08.31. 20:48:12]

Bejelentkezsi nevek s kulcsszavak

Bejelentkezsi nevek s kulcsszavakAz egyes felhasznlkat a UNIX a bejelentkezsi nevk (login name) alapjn klnbzteti meg egymstl. A bejelentkezsi (vagy belpsi) nv egy ltalban 8 karakternl nem hosszabb karaktersorozat, amit a rendszeradminisztrtor oszt ki az j felhasznlknak, s ennek begpelsvel jelezzk a rendszernek belpsi szndkunkat. Az albbi plda a guest belpsi nvvel trtn bejelentkezst mutatja. Attl fggen, hogy honnan s milyen gpre jelentkeznk be, a login sz eltt bizonyos zenetek jelenhetnek meg a kpernyn, amelyek a gpet s a terminlt azonostjk a felhasznl szmra.HP-UX hp A.08.02 B 9000/817 (ttys1) login: guest password:

A belpsi nv megadsa utn a rendszer egy jelszt (password) kr tlnk. Mivel a UNIX tbbfelhasznls rendszer, a kulcsszavas vdelemre mindenkppen szksg van, hogy az egyes felhasznlk adatainak vdelmt s titkossgt biztostani lehessen a tbbi felhasznlval szemben. j felhasznlk kulcsszavt ltalban a rendszeradminisztrtor lltja be, de a felhasznl megvltoztathatja azt, a passwd parancs hasznlatval. A kulcssz sikeres megadsa utn klnfle rendszerzenetek jelenhetnek meg a kpernyn (pldul van-e az illetnek j levele, ltalnos rdekldsre szmot tart rendszeradminisztrtori kzlemnyek, stb), vgl megjelenik az gynevezett parancs prompt, ami leggyakrabban egy $, %, vagy # karakter. E parancs prompt jelzi azt, hogy a belps folyamata sikeresen lezajlott, s a rendszer kszen ll parancsaink fogadsra.

Tartalomjegyzk

http://www.infopen.hu/ufi/2.2.5.html [1999.08.31. 20:48:28]

Norml s privilgizlt felhasznlk

Norml s privilgizlt felhasznlkA UNIX rendszerekre, mint ltalban a hagyomnyos nagygpes rendszerekre, is igaz az, hogy a felhasznlk kzl egyesek specilis eljogokkal brnak. Ezek a privilgizlt felhasznlk a rendszeradminisztrtorok s opertorok, akik az egsz rendszer mkdst felgyelik. Szmos olyan tevkenysg van, amit csak a privilgizlt felhasznlk hajthatnak vgre (pldul a rendszer kikapcsolsa, j felhasznlk adminisztrcija, programcsomagok installlsa stb). A privilgizlt felhasznlk kztt is kiemelt szerepe van a rendszergazdnak (superuser). A rendszergazda let s hall ura a rendszerben, az, aki mindent megtehet, mert mindenre van jogosultsga. Minden UNIX rendszerben kell hogy legyen egy rendszergazda, hogy egyb privilgizlt felhasznlk vannak-e, az a helyi viszonyok fggvnye, kisebb rendszerekben ltalban csak a rendszergazdai hatskr ltezik, nagyobb rendszereken ms-ms szemly lehet felels a hlzatadminisztrcirt, az installlsokrt, vagy mondjuk az archivlsokrt. A rendszergazda bejelentkezsi neve hagyomnyosan root (az angol gykr szbl ered, ennek nmileg npszerst magyarzata az, hogy a rendszergazda fennhatsga a fjlrendszer gykertl kezdve mindenre kiterjed). Az egyb szoksos rendszeradminisztrtori nevek a bin, adm, admin, fsck, sys, daemon.

Tartalomjegyzk

http://www.infopen.hu/ufi/2_3.html [1999.08.31. 20:48:43]

Terminlelrs: soros vonali s hlzati

Terminlelrs: soros vonali s hlzati s rendszerterminlokA felhasznl szmos ton-mdon csatlakozhat egy UNIX rendszerre, most csak a legalapvetbb hozzfrsi mdokat tekintjk t. Leggyakoribb szituci, fkppen a kzp- s nagykategriba es rendszereknl, hogy maga a UNIX-os gp kialaktsa olyan, hogy szmos terminlt lehet r csatlakoztatni kzvetlenl, n. soros vonalon keresztl. (A mai technikai szinten ez ltalban legalbbis tbb tucat soros vonali csatlakozst jelent, de a tbb szz terminl kiszolglsra kpes architektrk se mennek ritkasgszmba.) Ez a megolds a hagyomnyos nagyszmtgpes rendszerek kialaktsnak felel meg. A gpre csatlakoz terminlok kztt mindig van egy, ami kitntetett jelentsggel br, ez az gynevezett rendszerterminl (konzol, console). Ez rendszerint kzvetlenl a gp mellett helyezkedik el, s ez a rendszergazda munkahelye. Pontosabban fogalmazva, szmos, a rendszer szempontjbl kritikus akci csak a rendszerterminlrl indthat, elssorban biztonsgi megfontolsokbl. Munkallomsokon, illetve PC-n fut UNIX esetn rtelemszeren a munkalloms, illetve a PC billentyzete s kpernyje a rendszerterminl. A helyi hlzatok terjedsvel egyre gyakoribb eset az, hogy a felhasznlk hlzaton keresztl rik el a UNIX-os rendszert, akr valamilyen Ethernet alap helyi hlzaton keresztl (LAN), a sajt PC-jkrl bejelentkezve, vagy ppen nagytvolsg hlzaton (WAN) keresztl, akr telefonvonalon, modem segtsgvel, de akr X.25 alap csomagkapcsolt hlzaton keresztl is. Ilyen esetekben hlzati hozzfrsrl van sz, de a felhasznl szmra elvileg! teljesen szrevehetetlen kell hogy legyen az a tny, hogy nem kzvetlenl csatolt terminlon dolgozik. A 4. bra egy olyan UNIX-os rendszert mutat, ahol mind soros vonali, mind helyi hlzati, mind modemen keresztl csatlakoz nagytvolsg hlzati terminlok hasznljk a UNIX rendszert.

Tartalomjegyzk

http://www.infopen.hu/ufi/2_4.html [1999.08.31. 20:48:56]

http://www.infopen.hu/ufi/Image6.gif

http://www.infopen.hu/ufi/Image6.gif [1999.08.31. 20:49:02]

Folyamatkezels: eltr- s httrfolyamatok, dmonok s jobok

Folyamatkezels: eltr- s httrfolyamatok, dmonok s jobokProgramok s folyamatokA UNIX, mint multitasking rendszer, kpes arra, hogy egyszerre tbb feladat futhasson a gpen. Ennek kapcsn kt igen fontos fogalom merl fel, amelyek szorosan sszefggenek ugyan, de egymssal nem helyettesthetek be: a program s a folyamat (process). A program egy futtathat (akr gpi kdot tartalmaz binris, akr a shell ltal rtelmezhet parancsokbl ll) fjl; valahnyszor egy programot elindtunk, egy j folyamat jn ltre. Nmileg leegyszerstve, a folyamat egy programnak egy fut pldnya, a sajt kln adatterletvel. Lehetsges teht, hogy ugyanazt a programot egyszerre tbben is futtassk a rendszerben - ilyenkor ugyanabbl az egy programfjlbl annyi darab nll, egymstl teljesen fggetlen folyamat jn ltre, ahnyan elindtottk a programot. (Csak zrjelben jegyezzk most meg, egy elindtott folyamat tbb msik, n. gyermekfolyamatot is elindthat.)

Httrfolyamatok s dmonokA parancsok (pontosabban a parancsok elindtsval letre keltett folyamatok) vgrehajtsa szekvencilisan trtnik; ez annyit jelent, hogy ha a felhasznl elindt egy parancsot, addig nem kapja vissza a parancs promptot, s nem indthat el jabb parancsot, amg az ppen fut be nem fejezdtt. Ha azonban a felhasznl egy httrfolyamatot (background process) indt el, rgtn visszakapja a parancspromptot, s lehetsge van jabb parancs vgrehajtsra. E mechanizmus hasznlata kivltkpp olyankor elnys, ha egy hosszan fut folyamat futtatsa mellett ms tevkenysggel is szeretnnk foglalkozni.

A httrfolyamatoknak egy specilis vlfaja a dmon (daemon) folyamat. Ez egy olyan folyamat, amit rendszerint automatikusan indt el a rendszer, s valamilyen felgyeleti szerepet elltva llandan fut a httrben. Dmon folyamatok gondoskodnak pldul a nyomtatsi krelmek besorolsrl s vgrehajtsrl, a terminlvonalak figyelsrl, hogy van-e jonnan belp felhasznl, de dmonok felgyelik a memriahasznlatot ppgy, mint a loklis hlzaton trtn belpseket. A rendszer "resjratban", amikor ppen nincs bejelentkezett felhasznl, ltalban tbb tucat ilyen dmonfolyamat fut, biztostva a rendszer folyamatos mkdst. A dmonoknak vgrehajtsra tadott nyomtatst s egyb krelmeket job-oknak (feladatoknak) nevezik, ezeket a dmon srgssgi s egyb szempontok alapjn sorba rendezi (queue), s egyenknt hajtja vgre ket.

Tartalomjegyzk

http://www.infopen.hu/ufi/2_5.html [1999.08.31. 20:49:16]

A parancsrtelmez (shell)

A parancsrtelmez (shell)A UNIX alatt futtathat programok kztt van egy, ami a rendszer szempontjbl a tbbivel teljesen egyenrang, a felhasznl szmra azonban kitntetett jelentsggel br: ez a program a parancsrtelmez (burok, hj, shell). A parancsrtelmez az a program, ami egy felhasznl belpsekor aktivizldik, s a felhasznl kilpsig veszi magra a felhasznl ltal begpelt parancsokat. A shell feladata ppen ez: a felhasznl ltal begpelt karaktersorozatokat sztbontja, megprblja vgrehajthat parancsknt rtelmezni, feldolgozza s kifejti a parancsnak tadand paramtereket, megkeresi az elindtand programfjlt, s megprblja azt elindtani; a parancs vgrehajtsa utn pedig visszaadja a vezrlst a felhasznlnak, s ksz az jabb begpelt parancsok vgrehajtsra. A fentiekbl is lthat, hogy a shell alapvet fontossg a felhasznl letben, hiszen gyakorlatilag csak azt ltja a UNIX-bl, amit a shell ltni enged.

A shell mint programozsi nyelvA shell azonban, az elbb elmondottakon tl, egy programozsi nyelv is: lehetsg van a shell hasznlatakor vltozkat definilni, komplex vezrlsi szerkezeteket, ciklusokat s elgazsi feltteleket definilni, gyakorlatilag a "komoly" programozsi nyelvekben megszokott sszes mechanizmus rendelkezsre ll. S mivel ezek a nyelvi szolgltatsok minden fordts nlkl, a parancssorba trtn begpelskor rgtn rendelkezsre llnak a felhasznlnak (interpreter elv), villmgyors s knnyen korriglhat lehetsg van komplex feladatok kiprblsra s megvalstsra anlkl, hogy az ember egy sort is lerna brmilyen magasszint programozsi nyelven. A shell parancsok fjlba rsval (shellscript) pedig arra nylik lehetsgnk, hogy brmikor jra futtathassunk egy adott shell parancsszekvencit.

A "szerszmoslda" s a "deszkapad modell"A UNIX shell szmos mechanizmust biztost arra, hogy mr meglv programok egymssal val egyttmkdst koordinlja, lehetsget ad arra, hogy az egyik program kimenett a msik program felhasznlhassa, stb. A shell-nek ppen ez a legnagyobb erssge, hiszen gy mr meglv, adott esetben csak egy-egy apr rszfeladatot ellt programocskkbl olyan sszetett parancsszekvencikat pthetnk fel, amelyek mr nagybonyolultsg, meglepen komplex feladatokat oldanak meg - ismt csak hangslyozva, anlkl, hogy az ember a megszokott mdon, valami magasszint nyelvben "programozna". Ez a mentalits a UNIX-ban oly gyakran emlegetett szerszmoslda-filozfia (toolbox philosophy): meglv apr elemeket ptsnk ssze nagyobbakk, ahelyett, hogy folyton jra fel kellene tallnunk a kereket. E mdszer egyenes alkalmazsa a mostanban oly divatos prototyping elve. Mit jelent ez? Tegyk fel, hogy egy IGEN BONYOLULT, IGEN SOKRT feladatot kell megoldanunk. Az egyik lehetsges megolds az, hogy nekillunk, s egy kivlasztott magasszint nyelven "beprogramozzuk" az egszet, lefordtjuk, futtatjuk, hibt keresnk, s gy tovbb, amg a tkletessg s hatkonysg megkvnt szintjt el nem rtk. Ms megolds? El a szerszmosldval: megprbljuk mr meglv UNIX eszkzeinkkel s programjainkkal megoldani a feladatot, egy shellscript-et rva, ami integrlja mr meglv sajt- vagy rendszerprogramjainkat. gy viszonylag hamar belhet ez a "deszkapados modell" (ltalban nagysgrenddel hamarabb, mint egy konvencionlis programozsi nyelvben), s a mr mkd modellthttp://www.infopen.hu/ufi/2_6.html (1 of 2) [1999.08.31. 20:49:47]

A parancsrtelmez (shell)

ezek utn optimlhatjuk: a leglassabban mkd rszeket trhatjuk valami hatkonyabb programozsi nyelven - a lnyeg az, hogy mindig csak a szksges rszeket s a szksges mrtkben optimalizljuk.

Klnbz shell-ekMivel a parancsrtelmez nem rsze a UNIX magjnak, hanem "csak" egy ugyanolyan program, mint a tbbi sok szz rendszer- s segdprogram, tetszlegesen lecserlhet, s zls szerint msra vlthat. Hrom ltalnosan elterjedt shell ltezik a UNIX alatt (a kevsb elterjedteket mg felsorolni is fraszt lenne), ezek a kvetkezk: a Bourne shell, a C shell s a Korn shell. A felhasznl, illetve a rendszeradminisztrtor dntsn mlik, hogy egy felhasznl milyen shell-lel dolgozik a UNIX alatt, s lehetsg van arra is, hogy a felhasznl menetkzben, ideiglenes jelleggel jabb s jabb parancsrtelmezt indtson el a meglv fl, ha az ppen fut valamilyen okbl nem felel meg neki. Mindez hihetetlen rugalmassgot klcsnz a rendszernek. A Bourne shell, mely nevt szerzjrl kapta, "a" szabvnyos UNIX parancsrtelmez, ez minden UNIX rendszerben kell hogy szerepeljen. Knyvnk tlnyom rszben ezzel foglalkozunk mi is, ppen szabvnyos volta miatt. A C shell, mely szintn rgta rsze a standard UNIX-nak, jval tbbet tud, mint a Bourne shell, pldul lehetsg van az elz parancsok elhvsra s tszerkesztsre, fejlett jobkezelssel s mg szmos ms kellemes vonssal rendelkezik, nevt onnan kapta, hogy a kiadhat parancsok s a vezrlsi szerkezetek a C nyelvre emlkeztetnek (nem vletlenl). A Korn shell, mely szintn szerzjrl lett elnevezve, jabb, mint az elzek, egszen mostanig public domain szoftverknt, illetve ksbb mr kereskedelmi forgalomban is megvehet programknt terjedt, az SVR4-nek viszont mr rszt kpezi, mi tbb, ez lett a szabvnyos parancsrtelmez. Ezt annak ksznheti, hogy rendelkezik a C shell funkciival, ugyanakkor fellrl teljesen kompatibilis a Bourne shell-lel, teht a felhasznlnak nem kell egy teljesen j szintaxist megtanulnia. A knyvnkben szerepl shell programozsi pldk tbbsge Bourne shellscript-et hasznl, de a C shell-rl s a Korn shell-rl szl fejezetek termszetesen a megfelel nyelven rt script-eket is tartalmaznak.

Tartalomjegyzk

http://www.infopen.hu/ufi/2_6.html (2 of 2) [1999.08.31. 20:49:47]

A fjlrendszer: Fjlok s katalgusok,

A fjlrendszer: Fjlok s katalgusok, nvkonvencikA fjlrendszerrl a kvetkez fejezetben rszletesen lesz sz, most csak a legfontosabb dolgokat tekintjk t vele kapcsolatban. A fjlrendszer a UNIX legalapvetbb rsze, megrtse nlklzhetetlen a felhasznl szmra, de megismerse mr csak amiatt is tanulsgos, mert kivlan illusztrlja azt, hogy egyetlen, alkalmasan megvlasztott, a vgletekig leegyszerstett fogalom konzekvens implementlsval milyen robusztus s megbzhat rendszer hozhat ltre. A UNIX-ban minden fjl. Erre az els ltsra igencsak tlznak tekinthet lltsra pl az egsz UNIX rendszer. J, de mi is akkor a fjl? A fjl (llomny, file) az adatok trolsra szolgl alapvet (adat)objektum a UNIX alatt. A fjl teljesen strukturlatlan, nincs sem rgztett, sem vltoz hosszsg mezkre vagy rekordokra bontva, nincs megszabott hosszsga, semmi ilyen korltja nincs a fjl egsz egyszeren bjtok (karakterek) sorozata. Egy UNIX fjl vgt nem jelzik specilis karakterek, mint pldul a DOS-ban a Ctrl-Z a fjlnak akkor van vge, amikor a megfelel olvas rutin semmit nem tud mr olvasni, s az ennek megfelel hibajelzssel tr vissza. Mi lehet egy fjlban? Minden. Egy fjl tartalmazhat adatokat (pldul elektronikus leveleket, tzsdei jelentseket, szmoltbla-tblzatokat); tartalmazhat futtathat programokat (akr gpi kdakat, akr gynevezett shellscript-eket), amelyeket a felhasznl elindthat; tartalmazhat egy fjl a tbbi fjlokra s az egsz fjlrendszerre vonatkoz informcikat (katalgusfjlok); mi tbb, a perifrik (terminlok, diszkek, hlzati egysgek stb) szintn fjlknt szerepelnek a UNIX-ban, s ugyanazokkal a standard parancsokkal lehet hozzjuk frni, mint brmely msik kznsges fjlhoz. A UNIX a fjlokat a knnyebb kezelhetsg rdekben katalgusokba (jegyzk, knyvtr, directory) csoportostja. A katalgusok egy faszerkezetre emlkeztet struktrba vannak szervezve. E megoldsra a kvetkez fejezetben bvebben visszatrnk, most csak egy nagy elnyt emltjk meg: e fjlhierarchia rvn megoldhat az, hogy minden felhasznlnak kln adatterlete legyen, esetenknt ugyanolyan nev fjlokkal, mint msoknak, s az azonos nev fjlok ennek ellenre nem tveszthetek ssze a tbbiekvel. A katalgusok maguk is fjlokban helyezkednek el, ezek a fjlok a UNIX fjlrendszer szmra ppolyan fjlok, mint azok, amelyekrl az informcit troljk; az egyetlen eltrs, hogy a katalgusfjlok manipullsra kln parancsok szolglnak, ezeket a kvetkez fejezetben tekintjk t.

Tartalomjegyzk

http://www.infopen.hu/ufi/2_7.html [1999.08.31. 20:50:06]

Felhasznli- s csoportazonostk

Felhasznli- s csoportazonostkLttuk mr, hogy a UNIX a belp felhasznlkat a bejelentkezsi nv alapjn ismeri fel. Ezen kvl mg kt azonostt is rendel a UNIX az egyes felhasznlkhoz, a felhasznli azonostt (user id, uid) s a csoportazonostt (group id, gid). Mindkt azonost egy egsz szm, a felhasznli azonost egy az egyben megfelel a bejelentkezsi nvnek, s a legtbb programban e kt paramter egymssal felcserlhet. A UNIX a csoportazonost alapjn csoportokba sorolja a felhasznlkat - ennek akkor van jelentsge, ha a felhasznl hozz akar frni egy fjlhoz, mert a rendszer a hozzfrsi krelmeket aszerint brlja el, hogy a felhasznl tulajdonosa-e az adott fjlnak, vagy a tulajdonossal azonos csoportban van-e. A csoportazonost hasznlata rvn gy lehetsg van a felhasznlk anyagainak differencilt vdelmre, s egyttal a kzs munka megknnytsre. (Egy felhasznl tbb csoportba is tartozhat.) Az azonostk hasznlatra a kvetkez fejezetben ltunk majd pldkat.

Hozzfrsi jogok s vgrehajthat fjlokA UNIX minden fjlhoz hozzfrsi jogokat rendel: ennek alapjn dnti el, hogy egy adott fjlt egy adott felhasznl rhat, olvashat, vagy vgrehajthat-e.

Vgrehajthat fjlok, binris programok s shellscript-ekA fjlok nagy tbbsge ltalban valamilyen adatfjl, amiket az arra hivatott programok rvn rnak-olvasnak a felhasznlk. A fjlok msik csoportja viszont gynevezett vgrehajthat fjl, ami egy vgrehajthat kdsorozatot tartalmaz. E tnyrl a UNIX gy rtesl, hogy e fjlok vgrehajtsi engedllyel rendelkeznek. Ha egy ilyen fjl nevt adjuk meg vgrehajtand parancsknt, az opercis rendszer megprblja elindtani ket. Egy vgrehajthat fjl tartalmazhat gpi kd utastsokat, olyat, amit vgrehajtskor rgtn megrt az opercis rendszer (az gynevezett rendszerprogramok tlnyom tbbsge ilyen), ezek a binris vgrehajthat programok (binary executable). A vgrehajthat fjlok msik csoportja olyan parancsokat tartalmaz, amelyeket nem az opercis rendszer, hanem a parancsrtelmez, a shell rtelmez s hajt vgre. Ezeket a fjlokat hvjk shellscript-eknek, s a DOS-bl ismert batch fjlokhoz llnak legkzelebb.

Tartalomjegyzk

http://www.infopen.hu/ufi/2_8.html [1999.08.31. 20:50:20]

Bejelentkezs

BejelentkezsAz albbiakban felttelezzk, hogy az olvas mr egy UNIX opercis rendszert futtat szmtgp terminlja eltt l. E terminl lehet egy nagygpes rendszer valamelyik terminlja a sok kzl, lehet egy munkalloms, vagy ppen egy PC, ami helyi hlzaton keresztl csatlakozik a UNIX gazdagphez (host-hoz), egy UNIX terminlt emullva. Ennek megfelelen a bekapcsolsi eljrsok is gykeresen eltrhetnek egymstl, az els esetben valsznleg csak a terminlt kellett bekapcsolni, a munkallomsnl a bekapcsols utn az opercis rendszer betltdst kell megvrni, mg PC-s terminl esetben DOS vagy Windows all kellett kiadni a megfelel parancsot a kommunikcis- s terminlemultor program betltshez. Brmelyik mdon is indultunk, a kpernyn elbb-utbb az albbihoz hasonl szvegnek kell megjelennie (az albbi konkrt plda egy loklis hlzaton keresztli, a telnet paranccsal vgrehajtott belpst mutat, az els hrom kirt sor ezzel kapcsolatos):# telnet hp Trying 197.99.99.99 ... Connected to hp. Escape character is '^]'.

HP-UX hp A.08.02 B 9000/817 (ttys1)

login:

A login: szveg utn kell megadnunk a bejelentkezsi nevnket (login name), ezt elzleg a rendszergazda ltre kellett hogy hozza. A bejelentkezsi nv megadsa utn ltalban jelszt is kr a rendszer (amennyiben nem, az slyos biztonsgi hiba!):login: demoRETURN password:

A fenti pldnl a RETURN megadsval jelltk, hogy a UNIX-ban (is) a parancsbevitel vgt a kocsivissza (RETURN, CR, Enter stb jelzs) billenty lenyomsa jelenti a tovbbiakban ezt sehol nem jelljk, kivve ha a szvegsszefggs kimondottan megkveteli. A jelsz begpelsekor a rendszer nem adja vissza a kpernyn a begpelt karaktereket. Ha rossz jelszt adtunk meg, az albbi szveg jelenik meg:login incorrect login:

Nhny prblkozs (rendszerint hrom vagy t) utn az adott terminlvonalat blokkolja egy idre a rendszer, felttelezvn, hogy rosszindulat behatolsi ksrlet trtnt. Ilyenkor msik terminlrl prblkozhatunk, vagy kivrjuk az idt, amikor jra aktivldik a vonal. (Munkallomsok, s PC-kenhttp://www.infopen.hu/ufi/3_1.html (1 of 2) [1999.08.31. 20:50:37]

Bejelentkezs

fut UNIX esetben, ahol rendszerint egy helyrl van hozzfrs a rendszerhez, a konzolrl, a fenti mdszer nem jrhat, ilyenkor nem clszer az egyetlen belpsi lehetsget korltozni. Sikeres jelszmegads utn nhny rendszerzenet jelenhet meg a kpernynkn, rendszerint kirja a gp, ha j levelnk rkezett, szintn bejelentkezskor szoktak megjelenni a mindenkit rint fontosabb kzlemnyek, s legvgl az utols sorban megjelenik a prompt, ami jelzi, hogy a bejelentkezs sikeresen lezajlott, a rendszer (pontosabban a szmunkra kijellt parancsrtelmez program) kszen ll a parancsok fogadsra s vgrehajtsra.login: demo password: You have mail. Mindenkinek! Szerdn ngytl hatig rendszerkarbantarts miatt a szerver nem mkdik. $

Esetnkben a promptjel a $ karakter, de brmi egyb is lehet, s a ksbbiekben bemutatott mdon magunk is tllthatjuk. Ha parancsrtelmeznk a Bourne vagy a Korn shell, akkor rendszerint a $ karakter a prompt, C shell hasznlata esetn pedig a % karakter hsznlata az ltalnos. (C s Korn shell esetn lehetsg van arra, hogy a prompt a DOS alatt megszokott mdon mutassa az aktulis munkakatalgust is, ezrt gyakran szoks ezt s/vagy a gpnevet kiratni.) Szintn ltalnos rvny konvenci, hogy ha privilgizlt felhasznlknt jelentkeznk be, a prompt a # karakterre vlt, ezzel is emlkeztetve a felhasznlt arra, hogy most az tlagosnl felelssgteljesebb tevkenysget folytat.

Tartalomjegyzk

http://www.infopen.hu/ufi/3_1.html (2 of 2) [1999.08.31. 20:50:37]

A fjlrendszert kezel parancsok

A fjlrendszert kezel parancsokAz 5.bra illusztrlja a UNIX fjlrendszernek felptst. Ltszik, hogy az egsz struktra leginkbb egy fejjel lefele fordtott fra emlkeztet. A fa gykernek szerept betlt katalgust root directory-nak, azaz gykrkatalgusnak nevezik, s ebbl gaznak el a tovbbi katalgusok, azokon bell tovbbi alkatalgusok s gy tovbb. A fa leveleinek pedig a katalgusokban tallhat fjlok felelnek meg, ezekbl nem gaznak tovbb katalgusok. Minden UNIX fjlrendszer a fentieknek megfelelen pl fel, eltrsek csak a katalgusnevekben s a katalgusok tartalmban jelentkeznek.

A fjlrendszer kitntetett pontjaiA UNIX fjlrendszerben hrom kitntetett pont ltezik az egyes felhasznlk szmra: a fjlrendszer kezdpontja, ahonnan az egsz llomnyrendszer felpl (gykrkatalgus, root directory); az egyes felhasznlkhoz tartoz kiindulsi pont, ahonnan kezdve helyezheti el sajt llomnyait (kiindulsi katalgus, vagy alapkatalgus, home directory); vgl az a pont, ahol a felhasznl ppen tartzkodik az llomnyrendszerben (aktulis katalgus vagy msnven munkakatalgus, current directory).

Hol vagyunk? A pwd parancsA fjlrendszerrel val ismerkedst a pwd (print working directory) nev paranccsal kezdjk. E parancsot meghvva az aktulis katalgus neve rdik ki a kpernyre.

$ pwd /users/demo $

A fenti kirsban a UNIX llomnyrendszernek hierarchikus felptse tkrzdik, s a kvetkezkppen kell rtelmezni: a gykrkatalgus alatt elhelyezked users katalgus demo nev alkatalgusban tartzkodunk. A pwd eredmnyben lthat / jel ketts szerepet tlt be: egyfell jelli az llomnyrendszer kezdpontjt, azaz a gykrkatalgust, msfell az egyes katalgusszintek elvlasztjeleknt is funkcionl. (A DOS-hoz szokott olvast figyelmeztetjk, hogy noha az llomnyrendszer koncepcija s a jellsmd ers hasonlsgot mutat, itt nem a DOS alatt megszokott \ (backslash) karaktert kell hasznlni a katalgusszintek elvlasztsra.)

Mit lthatunk? Az ls parancsHa mr tudjuk, hogy hol tartzkodunk az llomnyrendszerben, valsznleg azt is szeretnnk megtudni, milyen fjlok tallhatak az egyes katalgusokban. A katalgusok tartalmt az ls (list) paranccsal listzhatjuk ki. Ha semmi mst nem mondunk, az aktulis katalgusban lv fjlok nevt listzza ki, bcsorrendben:$ ls FULL-INDEX text

http://www.infopen.hu/ufi/3_2.html (1 of 6) [1999.08.31. 20:51:01]

A fjlrendszert kezel parancsok

$

Ha az ls parancsnak argumentumai is vannak, akkor kt eset lehetsges: ha az argumentum egy kznsges fjl neve volt, akkor az adott fjlra vonatkoz informcikat rja ki az ls parancs, ha viszont az argumentum egy katalgusfjl neve volt, akkor az ebben a katalgusban szerepl sszes fjl adatait. Mivel az ls parancsnak is megadhatunk tbb parancs argumentumot, ezek lehetnek vegyesen fjl s katalgusnevek, az ls mindegyiket a neki megfelel mdon fogja kezelni. Ha a -l opcit is kiadjuk, rszletesebb informcit is kapunk a fjlokrl:$ ls -l total 354 -rw-rw-rw- 1 demo guest 166262 Aug 23 20:29 FULL-INDEX -rw-rw-rw- 1 demo guest 19 Aug 23 20:23 text $

Nemsokra rszletesebben is visszatrnk a fentebb lthat kirs rtelmezsre, most csak dihjban: a legels sor (total ...) azt adja meg, hogy a kilistzott katalgusban lv fjlok sszesen hny blokknyi helyet foglalnak el a lemezen (egy blokk ltalban 512 karakter, azaz fl kilobjt). A tbbi sorban az els oszlop a hozzfrsi jogokat mutatja, azaz azt, hogy kinek milyen joga van az adott fjllal kapcsolatban (rhatja, olvashatja, vgrehajthatja-e); a kvetkez oszlopban ll szm az gynevezett lncszm (link count): ez mutatja meg, hogy egy adott fjlra hny klnbz nven (link) lehet hivatkozni; aztn az llomny tulajdonosnak s csoportjnak neve kvetkezik, majd a fjl mrete bjtokban, aztn az utols mdosts ideje, s legvgl a fjl neve. Az ls szmos opcija kzl most csak a leggyakrabban hasznltakat emeljk ki. Ha a fjlokat nem bcsorrendben, hanem idrendben (a legutols mdosts ideje szerint) szeretnnk kilistzni, akkor a -t opcit kell megadni; ha fordtott sorrend rendezst kvnunk, akkor a -r opcit. A -R opci hatsra az ls parancs rekurzv mdon a megadott katalgusnv alatti teljes fjlstruktrt kilistzza, nem csak a megnevezett katalgusban szerepl fjlokat. Az opcik persze kombinlhatak is, gy pldul ls -lrt fordtott idsorrendben hossz listzst ad, a legrgebbi fjlokat sorolva fel elsknt, a legfrissebbeket utoljra.

Hov jutunk? A cd parancsAz llomnyrendszerben val mozgsra a cd (change directory) parancs szolgl. Paramterknt a megclzott katalgus nevt kell megadni, ami trtnhet mind abszolt (teljes) elrsi t (absolute pathname), mind relatv elrsi t (relative pathname) megadsval. Abszolt megads esetn a keresett katalgus teljes elrsi tvonalt meg kell adnunk, a gykrkatalgustl kezdve, s minden alkatalgust fel kell sorolni, amelyeken keresztl a clhoz jutunk. Ebben az esetben a cd parancs paramtere a / karakterrel kell hogy kezddjn, a cd parancs errl ismeri fel, hogy abszolt elrsi trl van sz. Relatv cmzs esetn azt mondjuk csak meg, hogy pillanatnyi tartzkodsi helynkhz, teht az aktulis katalgushoz kpest hol helyezkedik el a megclzott katalgus, ilyenkor a cd parancs paramtere nemhttp://www.infopen.hu/ufi/3_2.html (2 of 6) [1999.08.31. 20:51:01]

A fjlrendszert kezel parancsok

kezddhet a / karakterrel. Nzznk egy pldt mindezekre! Tegyk fel, hogy /usr/users/janos katalgusban vagyunk, amely alatt tallhat egy src nev alkatalgus. Hogy ide eljussunk, kiadhatjuk a cd /usr/users/janos/src parancsot, de ezzel egyenrtk lenne a cd src parancs is. Minden olyan esetben, amikor egy katalgust vagy fjlt meg kell nevezni, e ktfajta kijellsi md egyformn hasznlhat. Ha a cd parancsot argumentum nlkl hvjuk meg, akkor a kiindulsi katalgusunkba helyez el minket. Ez igen hasznos lehet akkor, ha az llomnyrendszer egy tvoli, sok szinttel odbb lv pontjrl szeretnnk "hazajutni". A fjlrendszeren belli mozgshoz mg kt tovbbi jells is hasznlhat: a . (pont) karakterrel az aktulis katalgusra hivatkozhatunk, mg a .. karakterekkel a szl katalgusra. Ezek a jellsek tetszlegesen kombinlhatak is. A fentiekre nzznk egy pldt:$ pwd /users/demo $ cd .. $ pwd /users $ cd .. $ pwd / $ cd .. $ pwd / $ cd users $ cd demo $ pwd /users/demo $ cd / $ cd /users/demo $ pwd /users/demo $ cd /etc $ pwd /etchttp://www.infopen.hu/ufi/3_2.html (3 of 6) [1999.08.31. 20:51:01]

A fjlrendszert kezel parancsok

$ cd $ pwd /users/demo $

Minek nevezzelek? NvkonvencikA UNIX llomnyok s katalgusok nevre vonatkozlag viszonylag laza s ktetlen szablyok vonatkoznak, legalbbis ha a DOS alatt megszokott szigor 8+3 karakteres nvadsi megktsre gondolunk. A UNIX-ban a legfontosabb megkts az, hogy a fjlnv hossza maximum 14 karakter lehet, de a legtbb korszer UNIX fjlrendszernl ez az rtk opcionlisan 255 karakterre is llthat. E hosszon bell a fjlnv tetszleges tagols lehet; akrcsak a DOS alatt, itt is a . (pont) karakter szolgl szepartorkarakterknt, de ellenttben a DOS-sal, egy fjlnv tetszleges szm, ponttal levlasztott uttagot tartalmazhat, s leglis fjlnv az is, ami egyltaln nem tartalmaz eltagot, teht rgtn a pont karakterrel kezddik. Az albbiak teht mind rvnyes UNIX llomnynevek:

alma, alma.korte, alma.korte.gyumolcs, .alma, .alma.23

A fjlnevekben elvileg az ASCII kdkszlet als 128 karakterkszlete szabadon hasznlhat, mindazonltal clszer kerlni azokat a karaktereket, amelyek a shell szmra specilis jelentst hordoznak, mert ezek bersa sok gondot okozhat. Tipikusan ezek kz a karakterek kz tartozik: *?@#$!& s a nv elejn ll '-' jel.. Clszer teht az angol bc alfanumerikus karaktereire, valamint az alhzs s mnusz karakterre korltozni vlasztsunkat. Nem szabad azonban megfeledkeznnk arrl, hogy a UNIX parancsrtelmezk esetrzkenyek (case sensitive), azaz klnbsget tesznek a nagy- s kisbetk kztt. UNIX alatt teht igenis nem azonos a valami, Valami s a VALAMI fjl!

Rejtett fjlokAzokat a fjlokat, amelyeknek a neve a pont karakterrel kezddik, a UNIX kicsit mskppen kezeli, mint a tbbit. E fjlok az gynevezett rejtett fjlok (hidden file), s a katalgusok listzsnl ezek neve nem jelenik meg, csak explicit krsre. Ennek az az oka, hogy a rejtett fjlok ltalban adminisztrcis s konfigurcis informcikat tartalmaznak, melyek egy-egy felhasznl kiindulsi katalgusban kell hogy elhelyezkedjenek, ugyanakkor nem clszer, ha ezek a felhasznl sajt anyagaival keverednek. (Ilyen fjlok pldul a .login, .cshrc, .profile, .logout, amelyek a felhasznl bejelentkezsi krnyezett lltjk be, vagy a .mailrc, .exrc, stb, amelyek egy-egy program indulsi konfigurlst vgzik.) Az ls parancs pldul alaprtelmezs szerint nem jelenti meg a pont karakterrel kezdd nev rejtett fjlokat. Ha ezekre is kvncsiak vagyunk, az erre vonatkoz informcit a -a opcival "csalhatjuk el":$ ls -al total 370http://www.infopen.hu/ufi/3_2.html (4 of 6) [1999.08.31. 20:51:01]

A fjlrendszert kezel parancsok

drwxr-xr-x 2 demo users 1024 Aug 23 20:29 . drwxr-xr-x 43 root sys 1024 Aug 17 09:40 .. -rw-r--r-- 1 demo users 818 Aug 13 1992 .cshrc -rw-r--r-- 1 demo users 347 Aug 13 1992 .exrc -rw-r--r-- 1 demo users 377 Aug 13 1992 .login -rw-r--r-- 1 demo users 382 Aug 13 1992 .profile -rw------- 1 demo guest 1370 Aug 23 20:29 .sh_history -rw-rw-rw- 1 demo guest 166262 Aug 23 20:29 FULL-INDEX -rw-rw-rw- 1 demo guest 19 Aug 23 20:23 text $

Katalgusok ltrehozsa: a mkdir parancsj katalgusokat a mkdir (make directory) paranccsal hozhatunk ltre. Egyszerre tbb katalgusnevet is megadhatunk, a rendszer mindegyiket ltrehozza. Ha a ltrehozand katalgus egy olyan katalgus alatt helyezkedne el, amely maga sem ltezik, akkor a katalgus ltrehozsa sikertelen lesz. Ebben az esetben a -p opcival rdemes kiadni a mkdir parancsot; ennek hatsra a az sszes szksges szl katalgust ltrehozza a rendszer.$ mkdir newdir/new1dir mkdir: cannot access newdir: No such file or directory $ mkdir -p newdir/new1dir $ ls -laR newdir total 6 drwxrwxrwx 3 demo guest 1024 Aug 23 20:41 . drwxr-xr-x 3 demo users 1024 Aug 23 20:41 .. drwxrwxrwx 2 demo guest 24 Aug 23 20:41 new1dir newdir/new1dir: total 4 drwxrwxrwx 2 demo guest 24 Aug 23 20:41 . drwxrwxrwx 3 demo guest 1024 Aug 23 20:41 .. $

Katalgusok trlse: az rmdir parancsMr ltez katalgust az rmdir (remove directory) paranccsal trlhetnk. (Most is megadhatunk tbb

http://www.infopen.hu/ufi/3_2.html (5 of 6) [1999.08.31. 20:51:01]

A fjlrendszert kezel parancsok

paramtert.) Fontos megjegyezni, hogy e paranccsal csak res katalgust trlhetnk, ha a katalgusban fjlok vannak, a UNIX nem hagyja a katalgus trlst, elbb trlni kell a fjlokat. (Msik megolds az rm -r parancs hasznlata, lsd ksbb.)

Tartalomjegyzk

http://www.infopen.hu/ufi/3_2.html (6 of 6) [1999.08.31. 20:51:01]

http://www.infopen.hu/ufi/Image7.gif

http://www.infopen.hu/ufi/Image7.gif [1999.08.31. 20:51:08]

Alapvet fjlkezel parancsok

Alapvet fjlkezel parancsokEbben a pontban azokat az alapvet parancsokat tekintjk t, amelyekkel llomnyokat tudunk ltrehozni, megtekinteni, msolni, s egyb mveleteket vgrehajtani rajtuk.

Fjlok ltrehozsaEgy llomny ltrehozsra sok - kezdk szmra taln tlsgosan is sok - megolds ltezik. Ltrehozhatjuk egy szvegszerkeszvel (pldul ed, vi), ktsgkvl ez a leggyakoribb s legkzenfekvbb megolds. Most viszont nhny "trkksebb" megoldssal kezdnk, melyek egyben segtenek nhny alapvet Unix jellemvons megismertetsben is. Mindegyik pldnkban a "Szp idnk van ma" szveget prbljuk meg egy llomnyba berni. Els megoldsunk az echo parancsra pl. Az echo a DOS alatt megszokott mdon mkdik (az eltrsekrl majd lesz sz): a parancssorban argumentumknt megadott karaktereket tkrzi vissza, alaprtelmezs szerint a kpernyre. A fjlba rand szveget gy az echo paranccsal a kpernyre mr kilistzhatjuk. Flsiker... A teljes sikerhez az tirnyts mechanizmusa segthet minket. Lehetsg van ugyanis arra, hogy tetszleges Unix parancs bemenett vagy kimenett tirnytsuk mshova, pldul egy fjlba. Esetnkben a >newfile1 megadssal a kimenetet, a kperny helyett a newfile1 nev fjlba. s me, kszen is vagyunk:

$ echo Szep idonk van ma >newfile1RETURN $

(Ne feledkezznk meg az egyes sorok vgn a kocsi-vissza karakter (RETURN vagy ENTER) letsrl; a tovbbiakban ezt nem jelljk.) Kvetkez prblkozsunk a hamarosan rszletesebben is ismertetend cat parancsot hasznlja fel. A cat parancs egy vagy tbb, argumentumknt megnevezett fjl tartalmt listzza ki a kpernyre (pldul cat prog1.c prog2.c). Els rnzsre ez nem sokat segt rajtunk, hiszen mi nem egy meglv fjlt akarunk listzni, hanem pp ellenkezleg, egy mg nem ltez fjlt akarunk rni - pestiesen szlva "a tbbi stimmel...". Minden "jl nevelt" Unix programra igaz azonban, hogy ha nem neveznk meg llomnyt, amit be kell olvasnia s fel kell dolgoznia, akkor alaprtelmezs szerint (szmtstechnikai zsargonnal lve, default rtelmezs szerint) a billentyzetrl (standard input) vrja a feldolgozand adatokat. Hasonlkppen, explicit kimeneti llomnynv hinyban a programok a kpernyre (standard output) rnak. Az e konvenci szerint viselked programokat szemlletesen szrknek (filter) nevezik, a ksbbiekben mg sok sz esik rluk. Ha teht a cat parancsot bemeneti fjlnv nlkl hvjuk meg, akkor az ltalunk kvnt mdon, a billentyzetrl bevitt szveget listzza ki, a kimenetet pedig a mr ltott mdon irnythatjuk t a kvnt fjlba:

$ cat > newfile2RETURN

http://www.infopen.hu/ufi/3_3.html (1 of 10) [1999.08.31. 20:51:43]

Alapvet fjlkezel parancsok

Szep idonk van maRETURN CTRL-D $

(A RETURN karakter hasznlatn kvl most vigyzzunk arra is, hogy a kvnt szveg begpelse utn a CTRL-D karaktert is lessk, hiszen ez jelzi a parancsrtelmeznek, hogy nincs tbb bemeneti adat.) A fenti kt trkk, a szrsi konvencik ltezse s az tirnyts hihetetlenl rugalmass teszi a Unixot. Vgl utoljra egy szvegszerkesztvel is ltrehozunk egy fjlt:

$ ed newfile3 ?newfile3 a szep idonk van ma . w 18 q $

Az ed editorrl kln fejezet szl a knyvben, mostani pldnk tnyleg csak egy rvid szemlltet volt. Az ed-nek megadjuk a ltrehozand fjl nevt, a parancs begpelse (s az itt mr kln nem jellt RETURN letse utn) elindul az editor, s gynevezett parancsmdban vrja a parancsokat. (A krdjeles fjlnv azt jelzi, hogy ilyen nev llomny eddig nem ltezett - mr ltez fjl esetn a fjl mrett rja ki, karakterekben szmolva.) Az ltalunk kiadott parancs az a (append), ennek hatsra az ed az gynevezett beviteli mdba kerl, s az ebbl val kilpsig mindent, amit gpelnk, vltozatlan formban az llomnyba rja. A beviteli mdbl gy lehet kilpni, hogy egy sor elejn egy nmagban ll . (pont) karaktert runk be (ez utn is kocsi-visszt kell tni!). Ennek hatsra visszakerlnk parancsmdba; ekkor kiadtuk a w (write) parancsot, ez lemezre rja, teht elmenti a fjl eddig ideiglenes tartalmt (a kpernyre kirja az elmentett fjl aktulis hosszt), vgl a q (quit) paranccsal kilpnk az editorbl.

Fjlok megtekintse: a cat parancsA fjlok megtekintsre, pontosabban a kpernyn trtn megjelentsre a cat parancs szolgl. (A nv onnan szrmazik, hogy ha tbb fjlnevet adunk meg, akkor ezeket a fjlokat egymsutn folyamatosan (concatenated) jelenti meg... - ennyit a parancsnevek memorizlhat jelentsrl...) A cat parancs a paramterknt megnevezett fjlokat, ennek hinyban pedig a standard inputot, azaz a billentyzetrl, pipe-bl (csbl) rkez adatokat listzza ki, folyamatosan, trdels nlkl. Ez azt jelenti, hogy ha a megjelentend llomny nagyobb, mint egy kpernyoldal, akkor a szveg kiszalad ahttp://www.infopen.hu/ufi/3_3.html (2 of 10) [1999.08.31. 20:51:43]

Alapvet fjlkezel parancsok

kpernyrl, s csak a listzs-felfggeszt, illetve jraindt gombbal lehet szablyozni a megjelentst. (E kt funkcinak rendszerint a CTRL-S, illetve a CTRL-Q billenty felel meg.) A cat parancs ezen hinyossgainak kikszblsre szolgl a pg s a more, rluk rszletesebben a minimanulban esik sz. Szmunkra jelenleg legfontosabb parancsuk pg esetben a RETURN, more esetben a szkz billenty; ezek hatsra egy kpernyoldalnyit lehet elrelapozni.

Fjlok tnevezse: a mv parancsGyakran szksges egy fjlt mshova helyezni az llomnyrendszerben, erre a UNIX alatt a mv (move) parancsot hasznlhatjuk. A legegyszerbb esetben egyetlen fjlt helyeznk t, pldul a mr ltez newfile1 llomnyunkat file1 nven akarjuk a tovbbiakban elrni:

$ mv newfile1 file1 $ ls -l newfile file1 newfile not found -rw-rw-rw- 1 demo guest 18 Aug 23 20:42 file1 $

A fenti pldban a mv parancs kt paramtert fogad, s az elsnek megadott fjlt a msodikknt megadott nvre nevezi t. Ha a "cltrgy" is kznsges fjl, akkor egyszer tnevezs trtnik, az eddig newfile nvre hallgat llomnyt ezentl file1 nven rhetjk el. (Ha file1 elzleg nem ltezett, akkor a mv parancs automatikusan ltrehozza, ha mr ltezett, fellrja.) Ha a cltrgy katalgus, akkor a mv parancs mskppen mkdik: az els paramterben megnevezett fjlt a rgi nven, a cltrgyknt megadott katalgus al helyezi. Ez esetben lehetsg van arra is, hogy kettnl tbb paramtert adjunk meg a mv parancsnak: ilyenkor az utols argumentumot tekinti a rendszer az tnevezs clkatalgusnak, s a tbbi argumentumban megnevezett fjlokat oda helyezi t. Ha pldul kiadjuk a mv newfile2 newfile3 newdir parancsot (ne felejtsk el, hogy a newdir katalgust elzleg mr ltrehoztuk), akkor newfile2 s newfile3 egyarnt bekerl a newdir katalgusba, vltozatlan nven:

$ mv newfile2 newfile3 newdir $ ls -lR total 362 -rw-rw-rw- 1 demo guest 166262 Aug 23 20:29 FULL-INDEX -rw-rw-rw- 1 demo guest 18 Aug 23 20:42 file1 drwxrwxrwx 3 demo guest 1024 Aug 23 20:44 newdir -rw-rw-rw- 1 demo guest 18 Aug 23 20:42 newfile -rw-rw-rw- 1 demo guest 18 Aug 23 20:43 newfilee2

http://www.infopen.hu/ufi/3_3.html (3 of 10) [1999.08.31. 20:51:43]

Alapvet fjlkezel parancsok

-rw-rw-rw- 1 demo guest 19 Aug 23 20:23 text

./newdir: total 6 drwxrwxrwx 2 demo guest 24 Aug 23 20:41 new1dir -rw-rw-rw- 1 demo guest 18 Aug 23 20:43 newfile2 -rw-rw-rw- 1 demo guest 18 Aug 23 20:44 newfile3 ./newdir/new1dir: total 0 $

Fjlok msolsa: a cp parancsA fjlok msolsra a cp (copy) parancs szolgl. Fontos klnbsg a DOS-hoz szokott felhasznl szmra, hogy itt mindenkpp legalbb kt argumentumot meg kell adni, azaz a DOS alatt szoksos copy fjl megadsmd nem megy, a clfjlt vagy katalgust is meg kell adni: az elz DOS plda ekvivalense gy a cp fjl . parancs, ahol expliciten megneveztk az aktulis katalgust, mint clkatalgust. A cp parancs mkdse hasonl a mv parancshoz, azaz itt is fjlt fjlba msol, ha a cltrgy fjl, illetve katalgusba helyez, ha a cltrgy katalgus.

Fjlok trlse: az rm parancsFjlokat az rm (remove) paranccsal trlhetnk, termszetesen most is megadhatunk tbb fjlnevet a paramterlistn. Az rm parancs opcii kzl gyakran fontos lehet a -f: ennek hatsra az egybknt rsvdett fjlokat is trli az rm. A -i (interactive) opci hatsra a rendszer egyenknt visszaigazolst kr a fjlok trlse eltt. (Szmos rendszerben ugyanez az opci mkdik a mv s a cp parancsnl is.) Vgl egy igen hatsos, de egyben igen veszlyes opcirl: a -r hatsra rekurzv mdon trldik mind a megnevezett katalgus a benne lv fjlokkal, mind a fjlhierarchiban bellk szrmaz sszes katalgus s llomny. Ellenttben a DOS-sal, a UNIX-ban a fjlok trlse visszafordthatatlan folyamat - KITRLT FJLT SEMMILYEN MDON NEM LEHET HELYRELLTANI!!! ppen emiatt is, egyes parancsrtelmezkben lehetsg van olyan konfigurlsra, hogy trlst, fellrst, s ms visszafordthatatlan mveleteket ne hajtson vgre a rendszer, hanem minden esetben krjen visszaigazolst a "gyans" mveletekrl. E clt szolglja a fentiekben emltett -i opci is.

Lncok ltrehozsa: az ln parancsA UNIX fjlrendszernek egyik jellemz sajtossga a lncols (linkels) fogalma, ami a DOS s ms egyfelhasznls opercis rendszerek alatt nem tallhat meg. E mechanizmus arra szolgl, hogy egy adott llomnyt tbb nven is el lehessen rni az llomnyrendszerben. Ha pldul van egy llomnyunkhttp://www.infopen.hu/ufi/3_3.html (4 of 10) [1999.08.31. 20:51:43]

Alapvet fjlkezel parancsok

text nven, akkor az ln parancs segtsgvel elrhetjk, hogy mondjuk szoveg nven is hivatkozhassunk r.

$ ln text szoveg $ ls -l total 364 -rw-rw-rw- 1 demo guest 166262 Aug 23 20:29 FULL-INDEX -rw-rw-rw- 1 demo guest 18 Aug 23 20:42 file1 drwxrwxrwx 3 demo guest 1024 Aug 23 20:44 newdir -rw-rw-rw- 1 demo guest 18 Aug 23 20:42 newfile -rw-rw-rw- 1 demo guest 18 Aug 23 20:43 newfilee2 -rw-rw-rw- 2 demo guest 18 Aug 23 20:59 szoveg -rw-rw-rw- 2 demo guest 18 Aug 23 20:59 text $

A lncols tnyrl az ls -l parancs kimenett vizsglva gyzdhetnk meg: a valamilyen ms nven is lncolt llomnyok lncszma (link count) egynl nagyobb rtk. Lthat, hogy text s szoveg minden paramtere azonos, ugyanakkor lncszmuk egynl nagyobb, s ahogy egyre tbb lncolst hajtunk rajtuk vgre, egyre jobban n. A lncols mibenltnek megrtshez rdemes egy kicsit rszletesebben megismerkedni a UNIX fjlrendszernek bels szerkezetvel. A 6. bra mutatja a UNIX fjlrendszer bels felptst. Minden UNIX fjlrendszer elejn megtallhat az gynevezett szuperblokk, amelyik a fjlrendszer legfontosabb adatait, a bels tblk s azonostk mrett, stb. tartalmazza. Ezt kveti az gynevezett inode tbla, vgl a tnylegesen felhasznlhat lemezterlet, ahol az llomnyok ltal lefoglalt s a mg szabad lemezblokkok vegyesen helyezkednek el. Az inode nv az index-node bevett rvidtse, s a fjlrendszer kialaktsnak fontos tnyre utal, nevezetesen arra, hogy az llomnyok jellemzit tartalmaz inode-okat indexknt hasznljk a rendszerprogramok. Az inode tbla egy fix mret tbla, fix hosszsg rekordokkal, s minden egyes fjlhoz, lett lgyen az kznsges adatllomny, vagy katalgus, egy s csakis egy inode bejegyzs tartozik. Az inode tartalmazza az adott fjlra vonatkoz sszes lnyeges informcit, az llomny mrett, tpust, tulajdonost s csoportjt, a hozzfrsi jogokat, s az llomnyt alkot lemezblokkok fizikai elhelyezkedst a lemezen. Egy informci hinyzik csak az inodebl, mgpedig a szbanforg llomny neve: ezt az informcit a katalgus(fjl) tartalmazza. A katalgusfjlban minden egyes fjlhoz, ami az adott katalgusban szerepel, egy bejegyzs tartozik. E rekord nem tartalmaz mst, mint az llomny inode szmt, s az llomny nevt. Nzzk meg ezek utn, mi trtnik akkor, amikor mondjuk a /users/demo/text fjlt szeretnnk kilistzni? (Segtsgkppen olyan formban (a -i [inode] opcival) listztuk ki a szban forg fjlokat, hogy az inode rtke is

http://www.infopen.hu/ufi/3_3.html (5 of 10) [1999.08.31. 20:51:43]

Alapvet fjlkezel parancsok

szerepeljen az els oszlopban.)

$ ls -ial / total 4926 2 drwxr-xr-x 19 root root 3072 Aug 23 13:40 . 2 drwxr-xr-x 19 root root 3072 Aug 23 13:40 .. 14336 drwxrwxrwx 4 root sys 2048 May 14 21:23 bin 16384 drwxrwxrwx 13 root sys 4096 Aug 10 20:24 dev 10240 drwxr-xr-x 14 root other 5120 Aug 23 19:36 etc 17 -rwxr-xr-x 1 root sys 2351104 Sep 7 1992 hp-ux 12499 drwxrwxrwx 2 root other 24 Apr 22 1992 lost+found 2 drwxrwxrwx 3 root root 2048 Aug 23 22:17 tmp 8194 drwxr-xr-x 43 root sys 1024 Aug 17 09:40 users 2 drwxr-xr-x 31 root sys 1024 Aug 10 16:59 usr $ ls -ial /users total 94 8194 drwxr-xr-x 43 root sys 1024 Aug 17 09:40 . 2 drwxr-xr-x 19 root root 3072 Aug 23 13:40 .. 6517 drwxr-xr-x 3 agi users 1024 Jun 29 09:56 agi 20699 drwxr-xr-x 3 demo users 1024 Aug 23 21:00 demo 20719 drwxr-xr-x 4 guest users 1024 Aug 10 19:17 guest .. $ ls -ial /users/demo total 378 20699 drwxr-xr-x 3 demo users 1024 Aug 23 21:00 . 8194 drwxr-xr-x 43 root sys 1024 Aug 17 09:40 .. .. 20818 -rw-rw-rw- 1 demo guest 18 Aug 23 20:42 file1 .. 20816 -rw-rw-rw- 2 demo guest 18 Aug 23 20:59 text

http://www.infopen.hu/ufi/3_3.html (6 of 10) [1999.08.31. 20:51:43]

Alapvet fjlkezel parancsok

$

A rendszer elszr megkeresi a gykr katalgus inode-jt, ez a msodik inode (#2). Az inode rekordbl kikeresi, hogy a lemezen fizikailag hol helyezkedik el maga a / katalgusfjl, ami a gykrkatalgusban lv fjlok nevt adja meg. Megnyitja e katalgust, megkeresi benne a users bejegyzst, megnzi az ahhoz tartoz inode szmot (#8194), ezt indexknt hasznlva az inode tblban megkeresi a /users katalgusra vonatkoz bejegyzst is. Az ebben az inode-ban trolt adatok alapjn megkeresi a lemezen a /users katalgusfjlt, megnyitja, s megkeresi benne a demo bejegyzst, az ahhoz tartoz inode szm (#20699) alapjn az inode tblban megkeresi a megfelel bejegyzst, kiolvassa belle a /users/demo katalgusfjl helyt, megnyitja a katalgust, megkeresi benne a text fjlra vonatkoz bejegyzst, a hozztartoz inode szm (#20816) alapjn megkeresi az inode-ot, s annak alapjn megnyitja a tnyleges fjlt. Az egsz mdszernek az a lnyege, hogy hrom szint az llomny nyilvntarts, az inode-ok, a katalgusfjlok s a tnyleges fizikai llomnyok kztt oszlik meg az informci, s a katalgusfjlok csak nv s inode informcit tartalmazzk, az inode-ok pedig minden egyebet. Ennek alapjn rthet meg igazn a lncols mechanizmusa: amikor egy fjlt linkelnk, nem trtnik ms, mint hogy valamelyik katalgusban egy olyan bejegyzst hozunk ltre, ami egy mr ltez, s ms nven is hivatkozott inode-ra mutat. Maga a fjl vltozatlan marad, a lncols tnyt kizrlag az j katalgus bejegyzs, s az inode-ban megnvelt lncszm jelzi. Felmerlhet a krds, mi van akkor, ha egy lncolt fjlt trlnk? A fentiek ismeretben knny a vlasz: trlskor a rendszer mindig a lncszm vizsglatval kezd, ha annak rtke egynl nagyobb, akkor csak a fjlnv bejegyzst trli az adott katalgusbl, s eggyel cskkenti a lncszmot. Ha a lncszm egy, akkor tnylegesen is trli az llomnyt, azaz nemcsak az (utols) katalgus bejegyzst sznteti meg, hanem az inode tblbl is trli a fjlra vonatkoz bejegyzst. Nem beszltnk mg arrl, hogy mire is j tulajdonkppen a lncols? Kt nagy elnye van, az egyik a nvtkzsek feloldsa, a msik a helytakarkossg. A nvtkzsek problmja onnan ered, hogy a UNIX verzik eltr fejldse miatt ugyanolyan nven kezdtek nevezni ms-ms parancsokat. Legismertebb plda erre az rsh parancs, ami a System V alap rendszerekben a restricted shell-t jelenti (ez a szokvnyos Bourne shell egy korltozott szolgltatsokkal br vltozata), a BSD alap UNIX rendszerekben viszont a remote shell rvidtse, ami a tvoli gpeken trtn parancsvgrehajtsra szolgl. Mivel a mai rendszerekben mind a kt parancs szerepel, ltalban csak a katalgusokban definilt keressi sorrend dnti el, hogy az rsh parancs kiadsakor melyik indul el a kett kzl (mindig a msik, mint amelyiket akartuk, errl sajt tapasztalatunk alapjn biztostjuk a Nyjas Olvast...). Ha viszont valamelyiket egy eltr nvvel lncoljuk, akkor a nvtkzs problmjt feloldottuk. A restricted shell rendszerint a /usr/bin knyvtrban tallhat, mg a remote shell a /usr/ucb alatt. Adjuk ki az albbi parancsot (Ehhez superuser jogok kellenek!):

$ ln /usr/ucb/rsh /usr/bin/remsh $

E parancs hatsra a tovbbiakban remsh nven hvhatjuk a remote shell-t, rsh nven a msikat, s a mdszer a katalgusok keressi sorrendjtl fggetlenl mkdni fog.

http://www.infopen.hu/ufi/3_3.html (7 of 10) [1999.08.31. 20:51:43]

Alapvet fjlkezel parancsok

A linkek mellett szl msik rv a helytakarkossg. Tegyk fel, hogy van kt C nyelv programunk, amelyek igen hasonl funkcikat ltnak el, lnyegtelen eltrsekkel. Megtehetjk azt, hogy mindkettt kln-kln lefordtjuk, keletkezik kt ktelen nagy binris programunk, klnbz nven. Ennl sokkal jobb megolds, ha egy kzs, nmileg ugyan nagyobb forrskdot fordtunk le egy pldnyban, a keletkezett binris vgrehajthat program nevt pedig a msik programnvhez lncoljuk. (A program futs kzben el tudja dnteni, hogy milyen nven hvtk, s az annek megfelel vgrehajtsi gakra futhat.) Ltszik, hogy ez esetben csak egy darab nagymret program foglal helyet a lemezen, a linkels helyignye elhanyagolhat (gyakorlatilag a msodik nv katalgus-bejegyzse, ami tipikusan 16 bjt.) A legszebb plda minderre ppen a mv, cp s ln parancs esete. E hrom program, mint mr lttuk, ersen hasonl funkcikat lt el, a paramterek kirtkelse, szmos opci, az inode-okon s a katalgusokon vgrehajtand mveletek nagy rsze kzs, teht a hrom program viszonylag jl integrlhat. A legtbb rendszerben ezrt egy kzs binris vgrehajthat program vgzi mindhrom tevkenysget.

$ cd /bin $ ls -il mv cp ln 12312 -r-xr-xr-x 3 bin bin 13880 Mar 27 15:07 cp 12312 -r-xr-xr-x 3 bin bin 13880 Mar 27 15:07 ln 12312 -r-xr-xr-x 3 bin bin 13880 Mar 27 15:07 mv $

Mint a fenti pldn is lthat, krlbell 26 kbjt helyet nyertnk, hiszen csak egy pldnyban ltezik a 13 kbjt mret binris fjl, s ezen kvl csak a kt link 32 bjtja foglal helyet. Ez az eljrs egybknt nemcsak binris vgrehajthat fjloknl, de shellscript-eknl is alkalmazhat.

A szimbolikus lncMg egy dologrl emltst kell itt tennnk, s ez a szimbolikus lnc (symbolic link) fogalma. A UNIX rendszer ktfle lncolsi eljrst ismer, a merev s a lgy lncolst (hard and soft link). Az elbbiekben a merev lncolssal foglalkoztunk, ennek legfbb jellemzje az, hogy a lncolt fjl teljesen egyenrtk az eredetivel, hiszen egyazon inode-ra mutat kt egyenrtk katalgus bejegyzs, amelyek kztt nem lehet klnbsget tenni. A "lgy lncols", vagyis a szimbolikus link viszonylag ksi jts a UNIX-ban, a SunOS opercis rendszerbl terjedt el az elmlt vekben, de mra mr szabvnyos eleme a UNIX-nak. Lnyege, hogy a szimbolikus link katalgus bejegyzse nem a fjl inode-jra mutat, hanem egy olyan klnleges fjlra, ami a lncolt fjl nevt tartalmazza. Szimbolikus linket szintn az ln paranccsal hozunk ltre, de a -s opcit is meg kell adni:

$ ln -s /usr/lib/sendmail.cf sendmail.cf $ ls -l

http://www.infopen.hu/ufi/3_3.html (8 of 10) [1999.08.31. 20:51:43]

Alapvet fjlkezel parancsok

total 364 -rw-rw-rw- 1 demo guest 166262 Aug 23 20:29 FULL-INDEX -rw-rw-rw- 1 demo guest 18 Aug 23 20:42 file1 drwxrwxrwx 3 demo guest 1024 Aug 23 20:59 newdir -rw-rw-rw- 1 demo guest 18 Aug 23 20:42 newfile -rw-rw-rw- 1 demo guest 18 Aug 23 20:43 newfilee2 lrwxrwxrwx 1 demo guest 20 Aug 23 23:14 sendmail.cf -> /usr/lib/sendmail.cf -rw-rw-rw- 2 demo guest 18 Aug 23 20:59 text $

Lthat, hogy a lncszm ebben az esetben nem vltozott (az csak a hard link esetn n), a fjltpusnl egy 'l' bet szerepel, jelezvn, hogy szimbolikus linkrl van sz, s a fjlnvnl a '->' karakterek jelzik, hogy melyik fjlhoz van lncolva az llomny. Ha a pldnkban szerepl sendmail.cf fjlt meg akarja nyitni egy program, akkor a kvetkez trtnik: az elzekben vzolt mdon eljut a /users/demo/sendmail.cf fjl inode-jig; szreveszi, hogy szimbolikus link a fjl tpusa; megnyitja a fjlt; kiolvassa a tartalmt, ami jelen esetben /usr/lib/sendmail.cf; a tovbbiakban ezt a fjlt keresi s nyitja meg, a mr ismert mdon. Mire j a szimbolikus link? Legfontosabb elnye az, hogy lehetv teszi klnbz fjlrendszerek kzti lncolst. Ennek megrtshez nhny szval meg kell emlteni a UNIX fjlrendszer egy rdekes tulajdonsgt, mgpedig a mountolhatsg fogalmt. A UNIX fjlrendszere, ahogy azt a felhasznl szerves egsznek ltja, nem felttlenl egysges fizikai szinten is. Ha pldul tbb merevlemez van a gpben, ezeken kln-kln UNIX fjlrendszerek vannak installlva, hasonlkppen, egy CD-n, vagy egy floppy diszken is. Mountolsnak hvjk azt a tevkenysget, amikor egy ilyen klnll fjlrendszert becsatolunk egy mr meglvhz. A 7.brn egy olyan pldt mutatunk be, ahol egy floppyn lv UNIX-os fjlrendszert csatolunk be a gazdagp UNIX fjlrendszerbe, a /mnt katalgus al. A tovbbiakban a floppyn lv fjlrendszer gykrkatalgusa a /mnt hivatkozssal rhet el, a floppyn lv /src katalgus /mnt/src nven s gy tovbb. Magrl a mountolsrl tbb szt nem ejtnk, mert a krds leginkbb a rendszeradminisztrtorokat rinti, a felhasznl szempontjbl a becsatols szrevehetetlen kell hogy legyen. A fentiek annyiban rdekesek a szmunkra, hogy merev lncolst nem lehet kt klnbz mountolt fjlrendszer kztt ltrehozni. A linkels mechanizmusa ugyanis arra pl, hogy az inode-ok egy llomnyrendszeren bell egyrtelmen azonostjk a fjlokat, azaz ugyanazon inode-ra trtn hivatkozs ugyanazt a fjlt jelenti. Mivel azonban minden egyes nllan becsatolhat fjlrendszerben fggetlen a szmozs (mindegyikben 2 a root inode stb), az inode rtk nmagban nem nyjt elgsges informcit arra nzve, hogy a keresett fjl a teljes llomnyrendszerben hol tallhat. Ezrt ha fjlrendszerek kzti lncolst prbltunk meg, az albbi, vagy hasonl rtelm hibazenetet kapunk:

$ ln /usr/users/janos/proba proba

http://www.infopen.hu/ufi/3_3.html (9 of 10) [1999.08.31. 20:51:43]

Alapvet fjlkezel parancsok

ln: different file system $

A fenti problmt kikerlhetjk a szimbolikus lncolssal, mert a szimbolikus linkben szerepl nv akrhova, ms llomnyrendszerbe, nemltez, vagy pillanatnyilag el nem rhet helyre is mutathat.

A merev lncols msik htrnya, hogy csak egyedi fjlok linkelst teszi lehetv, katalgusokt nem. Szimbolikus link alkalmazsval egsz katalgusokat lncolhatunk t egy paranccsal egy msik fjlrendszerbe, ami gyakran hasznosnak bizonyulhat, ha pldul a jobb terhelssztoszts miatt jra kell strukturlni a fjlrendszert, s egsz alkalmazscsomagokat helyeznk t ms fjlrendszerbe, ugyanakkor mindezt a felhasznl szmra szrevtlenl akarjuk vgrehajtani.

Tartalomjegyzk

http://www.infopen.hu/ufi/3_3.html (10 of 10) [1999.08.31. 20:51:43]

http://www.infopen.hu/ufi/Image8.gif

http://www.infopen.hu/ufi/Image8.gif [199