Informatika | Operációs rendszerek » A DOS, a UNIX és a Linux jellemzői

Alapadatok

Év, oldalszám:1997, 111 oldal

Nyelv:magyar

Letöltések száma:508

Feltöltve:2007. december 19.

Méret:345 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

TARTALOMJEGYZÉK Elôszó .9 Bevezetés . 11 1. Az MS DOS alapvetô jellemzôi 14 1.1 Az MS DOS felépítése 14 1.2 Az MS DOS betöltôdése 15 1.3 Az MS DOS konstrukciói 15 1.31 File specifikáció 15 1.32 Könyvtárstruktúra 16 1.33 Ki és bemenet átirányítás 16 1.34 Szûrôk 16 1.35 Parancs csatolás - pipeline 16 1.36 Joker karakterek 16 1.4 Az MS DOS memóriakezelése 17 1.5 A fôkönyvtár és a FAT tábla 17 1.51 A fôkönyvtár 17 1.52 A FAT tábla 18 1.6 Állománykeresés MS DOS alatt 19 Ellenôrzô kérdések és feladatok az 1. fejezethez 20 2. Az MS DOS gyakrabban használt parancsai 21 2.1 Általános parancsok 21 2.11 MS DOS Help-hez való hozzáférés : HELP 21 2.12 Képernyôtörlés : CLS 21 2.13 MS DOS verziószám megjelenítése : VER 21 2.14 Dátum megjelenítése, módosítása : DATE 21 2.15 Idô megjelenítése, módosítása : TIME 21 2.2 Lemezkezeléssel kapcsolatos parancsok 21 2.21 Lemezformázás : FORMAT 21 2.22 Lemezcímke lekérdezése

: VOL 22 2.23 Lemezcímke létrehozása, törlése : LABEL 23 2.24 Rendszer telepítés floppyra : SYS 23 2.25 Formázás visszaállítása : UNFORMAT 23 2.26 Lemezek tükörmásolása : DISKCOPY 23 2.27 Másolt lemezek összehasonlítása : DISKCOMP 23 2.28 Lemezellenôrzés : CHKDSK 24 2.29 Lemezkonfigurálás : FDISK 24 2.210 Lemezmûveletek ellenôrzése : VERIFY 24 2.211 Rendrakás a lemezen : DEFRAG 24 2.3 Állománykezeléssel kapcsolatos parancsok 25 2.31 Állományok attribútumainak lekérdezése : ATTRIB 25 2.32 Tartalomjegyzék : DIR 25 3 2.33 Másolás : COPY 26 2.34 Mozgatás : MOVE 26 2.35 Átnevezés : REN 26 2.36 Törlés : DEL 26 2.37 Szöveges állományok megjelenítése : TYPE 26 2.38 Szöveges áll - ok megjelenítése lapokra bontva :MORE 27 2.39 Törlés visszaállítása : UNDEL 27 2.310 Állományok összehasonlítása : FC 28 2.311 Szövegminta keresése állományokban : FIND 29 2.312 Állományok nyomtatása : PRINT 29 2.313 Állományok rendezése :

SORT 30 2.314 Alkönyvtárak másolása : XCOPY 30 2.315 Állományok archiválása : ARJ segédprogram 31 2.316 Rendszer diagnosztika 31 2.317 Lemezkarbantartás : SCANDISK 31 2.4 Egyéb parancsok 32 2.41 Memória térkép : MEM 32 2.42 Országfüggô billentyûzetkiosztás : KEYB 32 2.43 DOS programok betöltése az UMB-be : LOADHIGH 32 2.44 I/O eszközök konfigurálása : MODE 33 2.45 Keresési útvonalak meghatározása : PATH 34 2.46 A készenléti jel formájának meghatározása : PROMPT 34 2.47 Értékadás környezeti változónak : SET 34 2.48 Írás az MS DOS verziótáblájába : SETVER 35 2.49 Meghajtó hozzárendelése alkönyvtárhoz : SUBST 35 2.410 Ciklikus utasításvégrehajtás : FOR 35 2.5 A Norton Commander rövid ismertetése 36 Ellenôrzô kérdések és feladatok a 2. fejezethez 38 3. Parancsállományok, eszközkezelôk 39 3.1 A DOS parancsfile-ok parancskészlete 39 3.11 CALL 39 3.12 CHOICE 39 3.13 ECHO 41 3.14 FOR 41 3.15 GOTO 41 3.16 IF 41 3.17 PAUSE 43

3.18 REM 43 3.19 SHIFT 43 3.2 A CONFIGSYS file parancskészlete 44 3.21 BREAK 44 3.22 BUFFERS 44 3.23 COUNTRY 44 3.24 DEVICE 44 3.25 DEVICEHIGH 45 3.26 DOS45 4 3.27 FCBS 45 3.28 FILES 46 3.29 INCLUDE 46 3.210 INSTALL 46 3.211 LASTDRIVE 46 3.212 MENUCOLOR 46 3.213 MENUDEFAULT 46 3.214 MENUITEM 46 3.215 NUMLOCK 47 3.216 Megjegyzés : REM 47 3.217 SET 47 3.218 SHELL 47 3.219 STACKS 47 3.220 SUBMENU 47 3.3 Az MS DOS fontosabb eszközvezérlô programjai 48 3.31 ANSISYS 48 3.32 DISPLAYSYS 48 3.33 EGASYS 48 3.34 EMM386EXE 48 3.35 HIMEMSYS49 3.36 RAMDRIVESYS 49 3.37 SETVEREXE 50 3.38 SMARTDRVEXE 50 3.4 A parancsok és eszközvezérlôk összefoglalása 51 Ellenôrzô kérdések és feladatok a 3. fejezethez 52 4. A UNIX általános ismertetése 53 4.1 Történelmi áttekintés 53 4.11 Az AT & T UNIX 53 4.12 A BERKELEY UNIX 53 4.13 A XENIX 53 4.14 Szabványosítási törekvések 53 4.2 A UNIX felépítése 55 4.21 Általános felépítés 55 4.22 A UNIX on-line helpje : a man 55

4.3 UNIX alapfogalmak 56 4.31 Többfelhasználós többfeladatos mûködés 56 4.32 Bejelentkezési nevek és kulcsszavak 56 4.33 Folyamatkezelés 57 4.34 A file rendszer alapfogalmai 57 4.4 A UNIX file rendszere 58 4.41 A file rendszer felépítése 58 4.42 A UNIX file rendszerének belsô szerkezete 59 4.43 Láncok létrehozása ( linkelés ) 61 4.44 File típusok, hozzáférési jogosultságok 61 4.45 Névkonvenciók 61 4.46 A csôvezeték ( pipe ) mechanizmus 63 5 4.47 Szûrôk ( filter ) 63 4.48 Átirányítás 63 Ellenôrzô kérdések és feladatok a 4. fejezethez 64 5. A LINUX parancsai I 65 5.1 Alapvetô általános parancsok 65 5.11 Melyik könyvtárban vagyunk ? A pwd parancs 65 5.12 Mit láthatunk ? Az ls parancs 65 5.13 Hová jutunk ? A cd parancs 66 5.14 Katalógusok létrehozása : mkdir 66 5.15 Katalógusok törlése : rmdir 66 5.16 Bejelentkezések kilistázása 67 5.17 Lemezkihasználtság kilistázása 67 Példák az 5.1 alfejezethez 68 5.2 Alapvetô file

kezelô parancsok 69 5.21 File-ok létrehozása 69 5.22 File-ok megtekintése : cat 69 5.23 Szöveg kiiratása : echo 69 5.24 File-ok átnevezése : mv 70 5.25 File-ok másolása : cp 70 5.26 File-ok törlése : rm 71 5.27 Láncok létrehozása ( linkelés ) : ln 71 5.28 File megtekintése másképpen : more, pg 71 5.29 File sor-, szó ill karakterszáma : wc 72 5.210 File elejének ill végének megtekintése : tail 72 5.211 File tartalma típusának mreghatározása : file 72 5.212 File-ok rendezése : sort 72 5.213 Megegyezô sorok szûrése : uniq 73 5.214 Megegyezô sorok szûrése : grep 74 5.215 Állományok mezôinek kivágása : cut 75 5.216 Két file összehasonlítása : cmp 75 5.217 Két ASCII file összehasonlítása : comm 76 5.218 Két ASCII file különbsége : diff 77 5.219 Karakterkonverzió : tr 77 5.220 File keresése : find 78 5.221 Csövek ( pipe-ok ) elágaztatása : tee 78 5.222 Parancs végrehajtás késleltetése : sleep 78 Ellenôrzô kérdések és

feladatok az 5. fejezethez 79 6. A LINUX parancsai II 80 6.1 Hozzáférési jogokkal kapcsolatos parancsok 80 6.11 Módosítás : chmod 80 6.12 Tulajdonosváltás : chown 81 6.13 Csoportváltás : chgrp 82 6.14 Másodlagos csoportok : newgrp 82 6.2 Folyamatkezelés 83 6.21 Háttérfolyamatok 83 6 6.22 Folyamatok listázása : ps 83 6.23 Folyamatok leállítása : kill 83 6.24 Folyamat elô- ill háttérbe helyezése : fg, bg 84 6.25 Folyamat futtatása kijelentkezés után : nohup 84 6.26 Idôzített folyamatindítás : at 84 6.3 Hasznos UNIX konstrukciók 86 6.31 Parancs csoportosítás zárójelezéssel 86 6.32 Parancs behelyettesítés ( command substitution ) 86 6.33 Feltételes parancsvégrehajtás 86 6.4 A VI editor 87 6.41 Általában 87 6.42 Kurzormozgató parancsok 88 6.43 Pozicionáló parancsok 88 6.44 Mintakeresés 88 6.45 Törlés 89 6.46 Szövegmozgatás, szövegmásolás 89 6.47 UNIX parancsok hívása 89 6.48 Kilépés a VI editorból 89 Ellenôrzô kérdések

és feladatok a 6. fejezethez 90 7. Bevezetés a shell programozásba, a bash 91 7.1 Alapvetô tudnivalók 91 7.11 Speciális karakterek ( metakarakterek ) 91 7.12 Egy shell program elindításának lehetôségei 91 7.13 A shell program pozicionális változói 92 7.14 A shell program vezérlési szerkezetei 92 7.15 Az expr parancs használata 93 7.16 A test parancs használata 94 7.2 Egyszerű shell példaprogramok 95 Ellenôrzô kérdések és feladatok a 7. fejezethez 100 7 PÉLDÁK JEGYZÉKE 01. Példa a CHOICE utasítás alkalmazására 38 02. Szövegfile-ok mentése floppyra MS DOS parancsállománnyal 40 03. Példa a SHIFT utasításra 41 04. Shell program I 92 05. Shell program II 92 06. Shell program III 93 07. Shell program IV 93 08. Shell program V 93 09. Shell program VI 94 10. Shell program VII 94 11. Shell program VIII 95 12. Shell program IX 96 8 Elôszó Talán nem szükséges bizonyítani, hogy mennyire alapvetô fontosságú az operációs

rendszerek megfelelô ismerete, biztonságos használata. Jelen jegyzet a “Számítástechnika alapjai” c. tárgy oktatásának támogatására készült, így inkább felhasználói, kezelôi szintű ismereteket közöl az operációs rendszere-ket illetôen, semmint túlzottan mély ismereteket. A jegyzet konkrétan az MS DOS illetve a LINUX operációs rendszerekkel foglalkozik, a WINDOWS operációs rendszer tárgyalása kimaradt. Ennek az a magyarázata, hogy a WINDOWS operációs rendszerrôl rengeteg - talán túl sok - irodalom jelent meg, és ma is hozzáférhetô. A jegyzet fô célja az MS DOS illetve a LINUX operációs rendszerek használatába való bevezetés. Ennélfogva a tárgyalt DOS illetve LINUX parancskészlet csak a leggyakrabban használt parancsokat öleli fel A parancsok kapcsolói közül szintén csak a gyakran használtakat tárgyalom A többi kapcsoló leírása az illetô operációs rendszer helpjében megtalálható ! Ahol csak lehetett megfelelô

példaanyaggal segítem az anyag megfelelô elsajátítását. Az egyes fejezetek a következôképpen tagozódnak : Minden fejezet elején egy rövid összefoglaló található, amely tömören közli, hogy mit fog tartalmazni a fejezet. Ezt az összefoglaló részt a bekeretezett ∑ jelzi. Ezután következik a fejezet anyaga A LINUX shellprogramok ezzel a betűtípussal készültek, és keret veszi körül ôket. Több fejezetet ellenôrzô kérdések és feladatok zárnak, melyeket érdemes megoldani már csak az alkotómunka kedvéért is ! A jegyzetben a következô témákat érintem : Jelen elôszót egy bevezetés követi, amely definiálja a rendszer, operációs rendszer fogalmakat, ill. elhelyezi az operációs rendszert a számítógépes szoftverek között. Az 1. fejezet az MS DOS felépítésével, betöltôdésével valamint további általános jellemzôivel foglalkozik. 2 fejezet az MS DOS gyakrabban használt parancsait tárgyalja.A 3 fejezet az AUTOEXECBAT

illetve a CONFIGSYS állományok parancskészletét, valamint a fontosabb eszközvezérlôket ismerteti. A 4. fejezetben kezdôdik a LINUX általános jellemzôinek tárgyalása,míg az 5. fejezetben a Linux parancsok I részét ismertetem Ez az alap parancsok, valamint az alapvetô filekezelô parancsok köre. A 6 fejezet tartalmazza a Elôszó LINUX parancsok II. részét, úgymint a jogokat illetve a folyamatokat kezelô parancsokat, valamint hasznos UNIX konstrukciókat. A 7 fejezet egy bevezetô a shell programozásba A jegyzetben használt magyarázó ábrák, és jelentésük : ∑ ! ?  : Fejezet elei összefoglaló : Fontos megállapítás : Kérdés vagy probléma jelzése : Egy téma részletes vizsgálata : Egy problémára megoldása Az ábrákat keret veszi körül. Felhasznált irodalom : Dallos Endre - Fábián Zsolt - Zombor Attila : MS-DOS kézikönyv (LSI 1993) Bartók Nagy János - Laufer Judit : Pécs, 1999. december 10 10 UNIX felhasználói ismeretek

(OPENINFO) A Szerzô Bevezetés Mielôtt definiálnánk az operációs rendszert, nézzük meg mit értünk rendszer alatt ! Az általános definíció szerint a rendszer olyan elemek együttese, amelyek egymással kapcsolatban, kölcsönhatásban állnak. Rendszer például az emberi szervezet, stb. A fenti rendszerdefiníció azért túl általános, mert nem veszi figyelembe az elemek elrendezôdését, struktúráját. A rendszer konkrétabb definíciója szerint, a rendszer meghatározott struktúra szerint egymással összefüggô és kölcsönhatásban lévô, egymással és a struktúrával összhangban lévô elemek együttese. A struktúra tehát jellemzô a rendszerre, ezen keresztül befolyásolhatjuk a rendszer viselkedését. A struktúrán kívül a rendszerre jellemzô még a célja, működési szabályainak összesége, valamint elemeinek tulajdonsága. A rendszer valamely objektuma lehet rendszer ( alrendszer ) , és ugyanaz az objektum egyszerre több

rendszernek is lehet az eleme. A rendszerek tehát alrendszerekbôl, ezek pedig elemekbôl állnak.Például az ember mint rendszer tartalmazza a keringési rendszert mint alrendszert, és az ember egyszerre több rendszernek a tagja ( oktatás, bank, biztosítás, eü ellátás, oktatás stb ). A rendszer működési módját az a transzformáció határozza meg, amely a rendszerben végbemegy. A transzformáció az a szabály, amely szerint a rendszerben a bemeneti érték kimeneti értékké alakul át. A szabállyal kapcsolatban három eset fordulhat elô : a.) Ha ezt a szabályt mi alakítjuk ki, akkor algoritmusnak nevezzük. Az algoritmus olyan egyértelmű eljárás ( szabályrendszer ), amellyel egy feladat automatikusan megoldható. b.) Ha a transzformáció egésze - jelenlegi tudásunk alapján - nem ismert, de ismerünk közelítô eljárásokat, akkor a rendszer működési módját heurisztikusan programozottnak tekintjük, és az alkalmazott megoldási eljárást

sztochasztikus közelítésnek hívjuk. c.) Ha a rendszer transzformációját egyáltalán nem ismerjük, akkor a rendszert “fekete doboz”-nak nevezzük. Ilyenkor tehát a transzformációs szabály ismeretlen elôttünk. Bevezetés A rendszer definiálása után és az operációs rendszer definiálása elôtt nézzük meg, hogy általában milyen rétegekbôl épül fel egy számítógép : 1. 2. 3. 4. 5. 6. 7. 8. Hardware Kernel Memória és eszközkezelés Fizikai be- és kiviteli egység Logikai be- és kiviteli egység Állomány rendszer, állománykezelés Ember - gép kapcsolat Felhasználói szoftver Mindegyik réteg az alatta lévôre épül és használja annak funkcióit. Igy egy egyre intelligensebb virtuális gép jön létre. A 2 - 8 rétegeket szoftver valósítja meg, ezen belül a 2. - 7 rétegeket az operációs rendszer valósítja meg. A szoftver mint erôforrás - többek között - a hardver eszközök hatékony kihasználását szolgálja. A

szoftver erôforrások legfontosabb feladatai : - a meglévô hw. eszözökkel való gazdálkodás a számítógép mûködésének felügyelete programfuttatás ütemezése felügyelete a háttértárolók és azok adatainak kezelése, karbantartása a programozói munka megkönnyítése ismétlôdô feladatok megoldásaihoz programkészlet rendelkezésre bocsájtása A szoftver felosztása elvégzendô feladatok szerint : SZOFTVER ⌐─────────┴──────────────¬ Rendszer Felhasználói, alkalmazói ⌐──────┴─────────────¬ Vezérlô programok Feldolgozó prg.-ok (Operációs rendszer) ⌐──────┴────¬ Monitor Op. rendsz programok programok ⌐─────┬┴───┬──────¬ Szöveg For- Szer- Szervíz szerk. dító kesztô Ezekután nézzük az operációs rendszer definícióját : 12 Az operációs rendszer legfontosabb funkciói : Az

operációs rendszer az a szoftver, amely “elrejti” a felhasználó elôl a számítógéphardvert, megkiméli a felhasználót annak programozásától és egy könnyen kezelhetô felületet - virtuális számítógépet - bocsájt a felhasználó rendelkezésére. Ez a definíció egy felhasználó oldali definíció, természetesen más szempontból is megközelíthetjük az operációs rendszer fogalmát, mint ahogy a különbözô szakirodalmak meg is teszik. Az operációs rendszer legfontosabb funkciói : - felhasználói programok idôbeli ütemezése, futtatásuk felügyelete feldolgozó programok mûködtetése a be-, kiviteli kapcsolatok támogatása, az adatkezelés egyszerûsítése a hw. erôforrások felosztása a felhasználói programok között (memória felosztás, CPU idôbeosztás) az esetlegesen fellépô hibák lekezelése ( észlelés, módot ad a hibák kijavítására ) védelmi mechanizmusok biztosítása ( felhasználótól való védelem ) ember -

gép kapcsolat biztosítása parancsértelmezés A monitor program a kernel mûködését felügyeli. A kernel az operációs rendszer magja, közvetlen kapcsolatot tart fenn a hardverrel, illetve az operációs rendszer többi részével. Az operációs rendszer programok a következôk : - hibakezelô program perifériakezelô programok ( fizikai, logikai ) megszakításkezelô programok állománykezelô programok segédprogramok ( utility ) parancsértelmezô A fordítók (compiler-ek) az adott programozási nyelven megírt forrás programból készítenek tárgykódot. A szerkesztôk a tárgykódból készítenek végrehajtható kódot Az operációs rendszerek alapvetô csoportosítása : 1. Egyfelhasználós, egyfeladatos (kötegelt feldolgozás)->DOS 13 Bevezetés 2. 3. 4. Egyfelhasználós, többfeladatos -> Elôtér - háttér -> Többfelhasználós, többfeladatos a./ b./ Real-time Nem real-time -> -> WINDOWS 95 ) WINDOWS 3.1 OS-9 UNIX ( A

real-time lehet elôtér-háttér vagy valódi real time ). 14 1. Az MS DOS alapvetô jellemzôi Σ Ebben a fejezetben az MS DOS alapvetô jellemzôirôl lesz szó, amelyek elengedhetetlenek a késôbbi tárgyaláshoz. Elôször az MS DOS rendeltetésérôl, felépítésérôl és betöltôdésérôl lesz szó Ezután az MS DOS konstrukciói következnek, úgymint : file specifikáció, könyvtárstruktúra, be- és kimenet átirányítás, szűrôk, parancs csatolás, jóker karakterek. Ezt a részt az MS DOS memóriakezelése, majd a fôkönyvtár és a FAT tábla ismertetése követi. A fejezetet ellenôrzô kérdések zárják Az MS DOS rendeltetése : Megegyezik az operációs rendszerek általános rendeltetésével : - erôforrás gazdálkodás - parancsértelmezés - programfuttatás - file kezelés - periféria kezelés - rendszerdiagnosztika - segédprogramok A Basic Input Output System működése, szolgáltatásai : A BIOS az MS DOS kernelje, úgynevezett szoftver

interrupt-tal érhetô el, ami annyit jelent, hogy az éppen futó program tartalmazza a megszakításkérést, vagyis önmagát szakítja meg. A BIOS szolgáltatáscsoportjai a következôk : - video szolgáltatások - lemezszintű szolgáltatások - soros/párhuzamos kommunikációs szolgáltatások - billentyűzet kezelés - hardver óra kezelés - képernyôtartalom nyomtatás 1.1 Az MS DOS felépítése 1. BIOS + Eszközvezérlôk 2. BOOTRECORD 1.2 Az MS DOS betöltôdése amely : 3. IO.SYS amely : az IO.SYS-t betöltô programot tartalmazza speciális igényeket elégít ki, BIOS hibák javítását tartalmazza, újabb perifériák kezelését teszi lehetôvé. 4. MSDOS.SYS amely : a hardverfüggetlen magasszintű szolgáltatásokat tartalmazza. Ezek DOS megszakításokon keresztül érhetôk el. 5. COMMAND.COM rezidens rész 6. COMMAND.COM tranziens rész A COMMAND.COM rezidens rész mindig a memóriában foglal helyet, a COMMAND.COM tranziens rész csak

akkor ha van szabad hely a memóriában Amennyiben egy programnak helyre van szüksége, akkor felülírja a COMMAND.COM tranziens részét Ha a program lefutott és már nincs szüksége helyre, akkor a COMMAND.COM tranziens része visszatöltôdik 1.2 Az MS DOS betöltôdése 1. Power On Self Test : memória, klaviatúra stb teszt. 2. A BIOS beolvassa a BOOTRECORD tartalmát : a BOOTSTRAP LOADER-t. 3. Ez betölti az IO.SYS-t, ami megvizsgálja a CONFIGSYS-t 4. Betöltôdik az MSDOS.SYS 5. Betöltôdik a COMMAND.COM, ami végrehajtja az AUTOEXEC.BAT -ot - ha talál 1.3 Az MS DOS konstrukciói 1.31 File specifikáció A filespecifikáció a következôképpen néz ki DOS alatt : 15 1. Az MS DOS alapvetô jellemzôi [ <meghajtónév:> ] [ <elérési út> ] filenév.kiterjesztés A meghajtónév az angol ABC valamelyik betûje. Az A és B általában a floppy-t, a C és D általában winchester-t jelöl. A fennmaradó betûk a CD meghatjtót, memória lemezt,

illetve a hálózatos meghajtókat jelölik. Az elérési út alkönytárak sorozata ‘’ -sel elválasztva. ( Ld: 132 ) A file-név max. 8, a kiterjesztés max 3 karakter lehet ! Amennyiben a kiterjesztés .EXE, COM ill BAT, úgy az állomány futtatható EXE esetében relokálható bináris, .COM esetében nem relokálható bináris míg .BAT esetében szöveges állományról van szó Ezenkívül minden programnyelvnek saját kiterjesztése van. A síma szöveges állományoknak TXT a kiterjesztése van Minden program rendszer saját kiterjesztést ad az állományainak : DOC, XLS stb 1.32 Könyvtárstruktúra A könyvtárstruktúra hierarchikus, legfelül a fôkönyvtár ( root ) helyezkedik el. Jele a ‘’ (backslash) Ebbôl nyílnak a további könyvtárak, ezek az alkönyvtárak. Az alkönyvtárak sorozata a ‘’-sel elválasztva az elérési út. 1.33 Be és kimenet átirányítás Mód van arra, hogy a szabványos bemenetet (klaviatúra) átirányítsuk más bemenetre

(pld.: file) a ‘<‘ jel segítségével Ugyanígy mód van arra is, hogy a szabványos kimenetet (display) átirányítsuk a ‘>‘ jel segítségével. Ha az átirányítás már létezik és hozzá akarunk fûzni, akkor a ‘>>‘ jeleket kell használni ! Példa : sort <szoveg.txt >rszovegtxt 1.34 Szűrôk A szűrôk módosítják valamely DOS parancs működését. Példa : dir *.c | more 1.35 Parancs csatolás - pipeline Az egyik parancs kimenetét egy másik parancs bemenetére irányítjuk. Ez a mûvelet akár többször is ismételhetô ! 16 1.4 Az MS DOS memóriakezelése Példa : dir | sort /+10 | more 1.36 Joker karakterek Több parancsban alkalmazható a ‘*’ karakter, amely egy tetszôleges karakter sorozatot helyettesít a file névben. Ugyanígy alkalmazható a ‘?’ karakter, amely egy tetszôleges karaktert helyettesít az adott pozíción. Példa : dir *.c ; Kilistázza az összes C kiterjesztésű állományt dir proba*.c ;

Kilistázza a proba kezdetű C állományokat dir proba?.c Kilistázza a proba1c, proba2c stb fileokat 1.4 Az MS DOS memóriakezelése Az MS DOS - habár többnyire olyan processzoron fut amely akár 4 Gbyte memóriát is képes címezni - valós üzemmódban működteti a processzort. Ennek az a következménye, hogy a processzor továbra is 20 biten címzi a memóriát úgy, mintha 8086-os lenne. Ez 1 Mbyte memória elérését teszi lehetôvé. A kérdés az, hogyan használhatunk MS DOS alatt 1 Mbyte-nál több memóriát ? A probléma megoldására az MS DOS elvben a következô memóriaterületeket különbözteti meg : XMS HMA UMB Hagyományos EMS Az 1 Mbyte-ig terjedô terület két részre oszlik, úgymint a hagyományos memóriaterületre illetve az UMB ( Upper Memory Block ) területre. A hagyományos memória 0 - 640 Kbyte-ig tart, efölött helyezkedik el az UMB. 1 Mbyte felett kezdôdik az XMS ( Extended Memory System ), melynek elsô 64 kbyte-ját HMA ( High Memory

Area ) névre keresztelték. Régebben létezett még - külön kártyán - az EMS ( Expanded Memory System ), de ennek használata elavult. 17 ? 1. Az MS DOS alapvetô jellemzôi Nézzzük meg, hogy a eszközkezelôk kezelik ! különbözô memóriaterületeket milyen  Az UMB-t az EMM386.EXE program kezeli, és ha szülséges akkor az EMS emulációt is ez a program végzi - egy XMS területen elhelyezkedô memóriaablak segítségével. Az XMS területet - benne a HMA -val - a HIMEMSYS nevű eszközkezelô teszi elérhetôvé számunkra. Betöltésüket és az opcióikat a késôbbiekben tárgyalom. 1.5 A fôkönyvtár és a FAT tábla felépítése 1.51 A fôkönyvtár A fôkönyvtár file keresésre szolgál, mérete korlátozott. A FORMAT parancs hozza létre, csakúgy mint a FAT táblát. Ide kerülnek bejegyzésre a fôkönyvtárban lévô állományok és az innen nyíló alkönyvtárak is. Maguk az alkönyvtárak a lemez adatterületén helyezkednek el,

felépítésük és alkalmazásuk megegyezik a fôkönyvtáréval Az alkönyvtárak méretét csak a lemezterület mérete korlátozza A katalógusbejegyzések a következôk : Mezô Cím (Hex/Dec) Méret Funkció 1 2 3 4 5 6 7 8 00h/ 0 08h/ 8 0Bh/11 0Ch/12 16h/22 18h/24 1Ah/26 1Ch/28 8 3 1 10 2 2 2 4 File név Kiterjesztés Attribútum byte Fenntartott ( csupa 0 ) Idô Dátum Elsô cluster sorszáma File hossza A Filenév mezô elsô byte-jának jelentése : Az Idô mezô felosztása : 15 -11 bit 10 - 5bit 4 - 0 bit 18 00h = még nem használt E5h = törölt 2Eh = alkönyvtár = óra = perc = másodperc 1.6 Állománykeresés MS DOS alatt Az idôszámítás módja : idô = óra*2048 + perc32 + mp%2 ( A % a maradékképzést jelenti ) A Dátum mezô felosztása :15 - 9 bit = év 8 - 5 bit = hónap 4 - 0 bit = nap A dátumszámítás módja : dátum = (év-1980)*512 + hónap32 + nap 1.52 A FAT tábla A File Allocation Table egy olyan tábla, amley megmutatja, hogy egy

adott állomány hol folytatódik a kezdô cluster után ( láncolás ). A FAT tábla 0. bejegyzése a lemezazonosító ( floppy típus, winchester ), az 1 bejegyzés általában FFFFh értékû. A FAT tábla egy sorának a száma megegyezik az illetô cluster számával. ( A cluster egy vagy több szektor együttese, az MS DOS cluster szinten kezeli a lemezt ) A FAT tábla egy sora egy bejegyzést tartalmaz amely több értéket vehet fel : 0000h FFFFh FFF0h FFF7h nnnnh - Nem használt cluster File vége Foglalt terület Hibás cluster File folytatása az nnnn. clusteren 1.6 Állománykeresés MS DOS alatt Ezekután egy - a fôkönyvtárban lévô - állomány keresése a következôképpen zajlik : A filenév alapján a fôkönyvtárból kikeresi a DOS a kezdô cluster sorszámát, majd beolvassa ezt a clustert. Ezután a FAT tábla annyiadik sorához fordul, amennyi a kezdô cluster értéke volt Itt megtalálja az elsô folytató cluster sorszámát Ezt a clustert beolvassa,

majd a FAT tábla annyiadik sorához fordul, amennyi a folytató cluster értéke volt. Ezt egész addig folytatja, ameddig FFFFh- t nem olvas folytató cluster gyanánt. Ha az állomány alkönyvtárban van, akkor elôször az alkönyvtárat keresi ki a fôkönyvtárból, majd utána - az elôbbihez hasonló módszerrel - az alkönyvtárból keresi ki az állományt. Amennyiben több alkönyvtárból áll az elérési út, 19  Ellenôrzô kérdések és feladatok az I. fejezethez úgy a fôkönyvtárból nyíló alkönyvtárral kezdi a keresést és a fennt leírt módon folytatjuk tovább. Ellenôrzô kérdések és feladatok az I. fejezethez 01. Mi az MS DOS rendeltetése ? 02. Mia BIOS feladata, mik a szolgáltatásai ? 03. Hogyan épül fel az MS DOS ? 04. Hogyan töltôdik be az MS DOS ? 05. Mit értünk file specifikáción MS DOS alatt ? 06. Mit értünk elérési út alatt ? 07. Mit értünk be- illetve kimenetátirányítás alatt ? 08. Hogyan

mûködnek a szûrôk ? 09. Mit értünk parancs csatolás alatt ? 20 1.6 Állománykeresés MS DOS alatt 10. Milyen joker karakterek léteznek MS DOS alatt és hogyan funkcionálnak? 11. Mit kell tudni az MS DOS memóriakezelésérôl ? 12. Hogyan épül fel a fôkönyvtár és a FAT tábla ? 13. Hogyan keres meg egy állományt az MS DOS ? 21 2. Az MS DOS gyakrabban használt parancsai Ebben a fejezetben azokat az MS DOS parancsokat ismertetem amelyek használatára viszonylag gyakran lehet szükség. Csak a leggyakrabban használt opciókkal illetve kapcsolókkal foglalkozom, a többi az illetô parancs helpjében megtalálható. 2.1 Általános parancsok 2.11 MS DOS Help-hez való hozzáférés : HELP A HELP parancs hatására teljes képernyôs MS DOS help jelenik meg. A címszavak között a kurzormozgató ill a TAB billentyûkkel tudunk választani <ENTER> hatására a választott címszó teljes képernyôs helpje jelenik meg. Másik alakja : HELP

<téma> 2.12 Képernyôtörlés : CLS 2.13 MS DOS verziószám megjelenítése : VER 2.14 Dátum megjelenítése, módosítása : DATE Hatására megjelenik az aktuális dátum az angolszász szokás szerint : hh-nn-éé. Ezt kívánság szerint módosíthatjuk 2.15 Idô megjelenítése, módosítása : TIME Hatására az aktuális idô jelenik meg óó:pp:mm.tm alakban Itt is fennáll a módosítás lehetôsége. 2.2 Lemezkezeléssel kapcsolatos parancsok 2.21 Lemezformázás : FORMAT. Ahhoz hogy a lemezt használni tudjuk, elô kell készíteni a DOS számára. (Szektorok, sávok elhelyezése, saját adminisztrációs területek ∑ 2. Az MS DOS gyakrabban használt parancsai kialakitása - FAT, gyökér könyvtár) => A formázás / formattálás során ez történik. FORMAT meghajtó: [/v [:cimke] ] [/q] [/u] [/f:méret] [/b|/s] Ezenkívül van még három alakja, ezeket e HELP-ben lehet megtekinteni. meghajtó: A formázandó lemez meghajtója. Winchester

formázásakor figyelmeztetô üzenet: "WARNING, ALL DATA ON NON-REMOVABLE DISK DRIVE x: WILL BE LOST! Proceed with Format (Y/N)? /v[:cimke] Ha nem adjuk meg, vagy nem specifikáljuk a cimkét, a DOS megkérdezi. Több lemez formázása esetén a cimke azonos lesz. /q Törli a gyökérkönyvtárat és a FAT táblát, nem vizsgálja a lemez hibákat. (Gyors) Csak már korábban formázott lemezre használható. /u Feltétel nélküli formázás. Nem ellenôriz, hanem lerombolja a lemezen lévô esetleges adatokat, késôbb azok nem nyerhetôk vissza! /b Helyet tart fenn a rendszer állományoknak (IO.SYS, MSDOS.SYS) A késôbbiekben rendszerlemez készithetô belôle (sys parancs). Csak a korábbi DOS-verziókkal való kompatibilitás miatt kell! /s A formázott lemezre másolja az IO.SYS és az MSDOS.SYS rendszerállományokat és a COMMAND.COM állományt Ha formázás közben nem talál rendszert, akkor kér. /f:méret Byte-okban megadható, hogy milyenre akarjuk

formázni a floppyt. méret: 1200, 1.2 1140, 1.44 2880, 2.88 1.2M 525" DS HD 1.44M 35" DS HD 2.88M 35" nagykapacitású Formázás végén kiirja a lemez kapacitását, a hibás területek nagyságát. Megkérdezi, hogy van-e még formázandó lemez. 2.22 Lemezcímke lekérdezése : 22 VOL 2.2 Lemezkezeléssel kapcsolatos parancsok VOL [meghajtó :] A lemez cimkéjét és sorozatszámát jeleniti meg. 2.23 Lemezcímke létrehozása, törlése : LABEL LABEL [meghajtó:][cimke] A lemezek cimkéjét írja vagy törli. Ha nem adjuk meg a cimket, akkor a régi után rákérdez, és felülirhatjuk. Ha üres cimkét adunk meg, akkor a régi törlôdik A cimke hossza max 11 karakter. Nem szerepelhet benne: * ? / | . , ; : + = - [ ] ( ) & ^ < > " ( célszerû azt mondani, hogy betû, szám, aláhúzás lehet benne ). 2.24 Rendszer telepítés floppyra : SYS A parancs egy formázott lemezen elhelyezi a DOS rendszer állományait : IO.SYS, MSDOSSYS,

COMMANDCOM SYS [meghajtó1:] [elérési út] meghajtó2: Ha nincs meghajtó1, akkor az aktuális lemezen keres a DOS. Ha az elérési út elmarad akkor a fôkönyvtárban keres a DOS. 2.25 Formázás visszaállítása : UNFORMAT UNFORMAT meghajtó: /l /test /p [/l] [/test] [/p] Listázza az összes fellelhetô állományt és alkönyvtárat Csak tesztet végez, a visszaállítás nem történik meg. A parancs az információit a nyomtatóra küldi. Csak lokális meghajtón használható, hálózatin nem. 2.26 Lemezek tükörmásolása : DISKCOPY 23 2. Az MS DOS gyakrabban használt parancsai DISKCOPY [meghajto1: [meghajto2:] ] [/1] [/v] Ha a meghajtót nem adjuk meg, akkor az aktuális lesz a másolandó meghajtó. Csak floppy-ra használható a parancs A lemezeket általában egyszer kell cserélni. 2.27 Másolt lemezek összehasonlítása : DISKCOMP DISKCOMP [meghajto1: [meghajto2:] ] 2.28 Lemezellenôrzés : CHKDSK CHKDSK [meghajto1:] [ [elérési út] file név

] [/f] [/v] Ha nem adunk meg elérési utat és file nevet, akkor az egész lemezt ellenôrzi a parancs. /f /v A megtalált elveszett rekordokat és file-okat a gyökérkönyvtárba helyezi, és a FILEnnnn.CHK nevet adja nekik Az éppen ellenôrzött állomány könyvtárát és nevét kiírja a képernyôre. 2.29 Lemezkonfigurálás : FDISK FDISK [/status] A mi gyakorlatunkban csak a /status kapcsolóval használható ! Nem szabad vele kisérletezni. Csak winchesteren használható ! 2.210 Lemezmûveletek ellenôrzése : VERIFY A paranccsal azt állíthatjuk be, hogy a lemezmûveletek során mûködjön az ellenôrzés, vagy sem. VERIFY [on | off ] Ha kapcsolók nélkül használjuk akkor az aktuális állapotot jelzi ki. 2.211 Rendrakás a lemezen : 24 DEFRAG 2.3 Állománykezeléssel kapcsolatos parancsok Folytonossá teszi az állományokat, a köztük lévô hézagot megszünteti. DEFRAG /f [megh:] [/f ] [/s[:] sorrend] [/b] [/skiphigh] [/lcd|bw|g0] [/h] A

szétszórtságot megszünteti /s /skiphigh /g0 /h Sorrendet lehet meghatározni ( N=név, E=kiterj., D=dátum, S=méret ) A DEFRAG a konvencionális memóriába töltôdik Nem használja a grafikus karaktereket Rejtett fileokat is figyelembe veszi (?) 2.3 Állománykezeléssel kapcsolatos parancsok 2.31 Állományok attribútumainak lekérdezése : ATTRIB ATTRIB /s [+r|-r] [+a|-a] [+s|-s] [+h|-h] [[megh:][path] file név] [/s] Az alkönyvtárakban lévô file-ok attributumait is kiírja. Paraméterek nélkül az aktuális alkönyvtár összes állományának attribútumait jeleníti meg. 2.32 Tartalomjegyzék : DIR DIR [megh:] [path] [fn] [/p] [/w] [ /a [ : ] attribútumok ] [ /o [ : ] rendezôkód ] [ /s ] [ /b ] [ /l ] /p /w /a Lapozás Egy sorba öt file nevet ír ki. Attribútum szerint lista - h ; -h s ; -s a ; -a r ; -r d ; -d Hidden vagy hidden-t kivéve System vagy system-et kivéve Archív vagy archív-ot kivéve Read-only vagy read only-t kivéve Directory vagy

directory-t kivéve 25 2. Az MS DOS gyakrabban használt parancsai Attribútum kód megadása nélkül s-en és h-n kívül mindent kilistáz. /o Rendezett lista - n ; -n e ; -e Filenév szerint növekvô vagy csökkenô Kiterjesztés szerint növekvô vagy csökkenô - d ; -d s ; -s g ; -g Dátum szerint növekvô vagy csökkenô Méret szint növekvô vagy csökkenô Directory+file szerint növekvô vagy csökkenô Rendezôkód nélkül az alkönyvtárokat, majd a fileokat írja ki ABC sorrendben. /s /b /l Rekurzív lista Fejléc és összegzô rész nélküli lista Nem tesz különbséget kis és nagybetû között. 2.33 Másolás : COPY COPY [/a|/b] forrás [/a|/b] [+forrás [/a|/b] [+ .] [cél] [/a|/b] [/v] A forrás és a cél hagyományos DOS specifikációk. Ha a cél hiányzik, akkor az aktuális alkönyvtár lesz a cél. Például : copy x.dat c:yyy esetén, ha a yyy nem létezik, akkor az x.dat-ot yyy néven a C: fôkönyvtárába másolja /a ASCII

állományként kezeli /b Bináris állományként kezeli + Összefûzés; ha nincs célállomány, akkor az elsô állományba fûzi a többit. /v Ellenôrzött másolás 2.34 Mozgatás : MOVE MOVE [mgh:] [path] fn [ , [ mgh:] [path] fn [.] új path A forrásállományt bemásolja a célállományba, majd törli az eredeti helyérôl. Ha több forrásállományt adunk meg és a cél egy alkönyvtár, akkor a forrásállományokat ezen alkönyvtárba mozgatja a parancs. 26 2.3 Állománykezeléssel kapcsolatos parancsok 2.35 Átnevezés : REN REN[AME] [mgh:] [path] fn1 fn2 A parancs fn1-et nevezi át fn2-vé. 2.36 Törlés : DEL DEL [megh:] [path] fn [/p] /p Jóváhagyás kérés 2.37 Szöveges állományok megjelenítése : TYPE TYPE [mgh:] [path] fn 2.38 Szöveges állományok megjelenítése lapokra bontva : MORE MORE < [mgh:] [path] fn vagy DOS PARANCS | MORE 2.39 Törlés visszaállítása : UNDEL A visszaállításnak öt szintje lehetséges, melyek

függnek az - elôzôleg beállított védelmi módszertôl. Háromféle védelmi módszer létezik : 1. Megôrzô (SENTRY) --------------------> Tökéletes visszaállítás (PERFECT) A módszer hálózaton is használható. Létrehoz egy SENTRY nevû, rejtett alkönyvtárat és ebbe másolja a törölt fileokat. Az UNDELETE elôzôleg a memóriában kell, hogy legyen ! 2. Nyomozó (TRACKER) --------------------> Kiváló isszaállítás (EXCELLENT) 27 2. Az MS DOS gyakrabban használt parancsai Az UNDELETE - t ugyanúgy be kell tölteni, de nem ôrzi meg a fileokat, hanem csak a PCTRACKR.DEL állományban rögzíti a törölt fileok lemezen való elhelyezkedését. 3. Alapmódszer (STANDARD) -------------------> Jó visszaállítás (GOOD) Az MS DOS - a mûködésébôl adódóan nem törli ténylegesen a fileokat, hanem csak megjelöli ôket a directory-ban. Ezért, ha a törölt file nem íródott még felül akkor visszaállítható. 4. Rossz visszaállítás

(POOR) Ha a WINDOWS UNDELETE parancsa nem tud már visszaállítani, akkor a DOS-nak még van egy kevés esélye a visszaállításra. 5. Nem visszaállítható (DESTROYED) Ezekután az UNDELETE parancsot használhatjuk a védelmi rendszer konfigurálására is valamint a tényleges visszaállításra is. a./ Konfigurálás UNDELETE [ /load | /unload | /s[megh] | /t[megh][-szám] ] 28 /load Az UNDELETE.INI állományban beállítottaknak megfelelôen töltôdik be. Ha ez nem létezik, akkor a SENTRY módszer lesz érvényben. /unload Kitörli az UNDELETE-t a memóriából. /s[megh] Betölti az UNDELETE-t és a meghajtóra a SENTRY módszert aktivizálja. /t[megh][-szám] Ugyanaz mint /s csak itt a TRECKER módszer lesz installálva. A -szám -mal lehet megadni, hogy 2.3 Állománykezeléssel kapcsolatos parancsok hány fájlt figyeljünk. A -szám értéke 1 - 999 között lehet. b./ Visszaállítás UNDELETE [ [megh:] [path] fn ] [ /dt /ds /dos ] vagy UNDELETE [

/list | /all | /purge[megh] | /status ] /dt /ds /dos TRACKER módszer szerinti visszaállítás SENTRY módszer szerinti visszaállítás STANDARD módszer szerinti visszaállítás /list /all Csak lista, visszaállítás nincs Kérdezés nélkül visszaállít minden állományt amit csak tud /purge[megh]A [megh] SENTRY alkönyvtára törlôdik /status Kijelzi, hogy melyik meghajtóra melyik védelmi módszert állítottuk be. Törölt könyvtárat nem lehet ilymódon visszaállítani ! 2.310 Állományok összehasonlítása : FC FC [ /a ] [ /c ] [ /l ] [ /lbn ] [ /n ] [ /t ] [ /w ] [ /nnnn ] [ megh1: ] [ path1 ] file név1 [ megh2: ] [ path2 ] file név2 vagy FC /b [ megh1: ] [ path1 ] file név1 [megh2: ] [ path2 ] file név2 /a /c /l /lbn /n /b /nnnn /t /w Rövidített információ az összehasonlítás eredményérôl Nem tesz különbséget kis és nagybetû között Sorról sorra történô - ASCII - összehasonlítás ( ez a default ) Belsô sor buffer méretének

beállítása ASCII összehasonlításnál a sorok számát írja ki Bináris összehasonlítás Újraszinkronizálás elôtti megegyezô sorok száma ( default = 2 ) A TAB-ot nem helyettesíti 8 szóközzel Egyetlen karakterként kezeli a szóközöket, TAB-okat stb. 29 2. Az MS DOS gyakrabban használt parancsai 2.311 Szövegminta keresése állományokban : FIND FIND [ /v ] [ /c ] [ /n ] [ /i ] ”string” [ [ megh : ] [ path ] fn [ . ] ] Ha a file név elmarad, akkor a klaviatúráról vagy a | illetve a < jel után megadott objektumból lehet bevinni azt a szöveget, amelyben keressük a string-et. /v /c /n /i Azokat a sorokat írja ki , amelyek nem tartalmazzák a string-et A string elôfordulási számát adja meg A sor számát is kiírja, ahol a string elôfordult Karakterkészlettôl független keresés /c esetén /v és /n hatástalan ! 2.312 Állományok nyomtatása : PRINT PRINT [ /d megh: ] [ /b: méret ] [ /q sorméret ] [ /t ] [ [ megh: ] [ path ] file

név [ . ] ] [ /c ] [ /p ] /d megh: Nyomtató neve /b: méret Puffer méret ( 512 - 16384 ) /q: sorméret A nyomtatási sorba küldhetô állományok max. száma (432) A default : 10 /t A sor törlése /c Állomány törlése a nyomtatási sorból /p Állományok hozzáfûzése a nyomtatási sorhoz 2.313 Állományok rendezése : SORT SORT [ /r ] [ /+szám ] [ < ] [ [ megh1: ] [ path1 ] fn1 ] [ > [megh2:] [path2] fn2 ] vagy [ DOS PARANCS | ] SORT [ /r ] [ /+szám ] /r 30 Rendezés csökkenô sorrendben 2.3 Állománykezeléssel kapcsolatos parancsok /+szám A sor annyiadik pozíciójától kezdi a rendezést, amennyi a szám értéke A SORT az országkód és a kódlap beállítást figyelembe veszi a rendezésnél ! Ha a karakter ASCII kódja nagyobb mint 127, akkor a rendezés a CONFIG.SYS - ben lévô információ szerint történik 2.314 Alkönyvtárak másolása : XCOPY XCOPY forrás [ cél ] [ /a | /m ] [ /d: dátum ] [ /p ] [ /s [ /e ] ] [ /v ] [ /w ] Ha a

cél-t nem adjuk meg, akor az állomány(ok) az aktuális könyvtárba kerülnek. Ha a cél nem létezô könyvtárat tartalmaz, vagy hiányzik a ‘’, akkor rákérdez, hogy file-ba vagy directory-ba másoljon ( F | D ). /a /m /d: dátum /p /s /e /v /w Csak az archív állományokat másolja Ugyanaz mint /a, de másolás után törli az archiv attribútumot A megadott dátummal, vagy ezután módosított állományokat másolja Állományonkénti jóváhagyást kér A nem üres forrásállományokat másolja Az üres alkönyvtárakat is átmásolja. A /s kapcsolóval kell használni Ellenôrzés Figyelmeztetés a másolás megkezdése elôtt Az XCOPY az átmásolt állományban mindenképpen beállítja az archiv attribútumot. 2.315 Állományok archíválása : ARJ segédprogram ARJ kapcsoló [ . ] archiv név /a /e [ file spec] Archiv állomány készítés ”Kicsomagolás” 31 2. Az MS DOS gyakrabban használt parancsai /u /d /l Frissítés Törlés az archiv

állományból Lista az archiv állományról .EXE állomány készítése létezô archiv állományból: ARJ y -je1 archívnév 2.316 Rendszer diagnosztika : MSD Menüvezérelt. 2.317 Lemezkarbantartás : Menüvezérelt. 2.4 Egyéb parancsok 32 SCANDISK 2.4 Egyéb parancsok 2.41 Memória térkép : MEM MEM [ /c | /d | /f | /m modulnév ] [ /p ] /c Statisztika az egyes memóriaterületekrôl, lista a hagyományos és a felsô memóriában elhelyezkedô programokról /d Programok + belsô vezérlôk listája. Modulméret + szegmenscím + típus. /f A hagyományos és a felsô memória szabad területeinek listája /m modulnév Egy adott modul listája. A modulneveket a /f listából lehet megtudni /p Lapozás Kapcsolók nélkül csak összegzô információkat kapunk. 2.42 Országfüggô billentyûzetkiosztás : KEYB KEYB [ kód ] [, [ kódlap ] [, [ megh: ] [path ] fn ] ] ] [/id: szám] kód kódlap megh: path fn /id: szám Billentyûzetkód ( hu )

Billentyûzettípus kódlapja Ha mást nem adunk meg akkor a KEYBOARD.SYS Ahol több billentyûzet terjedt el ( pld. : Kanada ), ott ezzel tudunk választani. 2.43 DOS programok betöltése az UMB-be : LOADHIGH vagy LH LOADHIGH vagy LH [ megh: ] [ path ] file név [ paraméterek ] vagy LH [ /l:regió1 [, min méret1] [regió2] [, min méret2 ] . ] [ /s ] [ megh : ] [ path ] file név [ paraméterek ] [megh:] [path] file név paraméter A betöltendô program specifikációja A program saját paraméterei /l: régió1, min méret1, régió2, min méret2 33 2. Az MS DOS gyakrabban használt parancsai Egy vagy több memóriaterület jelölhetô ki az UMB-ben. Az elsô alaknál a DOS oda tölti a programot ahol helyet talál, a második alaknál mi mondjuk meg, hogy hova töltse. A min méret akkor kell, ha a program nagyobb memóriát igényel a saját méreténél. /s Minimálisra zsugorítja az UMB méretét. Csak l: min méret. - tel együtt használható Amennyiben az

UMB-ben nincs hely, úgy a programot a konvencionális memóriába tölti a DOS. A parancs használatáta következô utasítások kell, hogy megelôzzék a CONFIG.SYS - ben : device = c:doshimem.sys device = c:dosemm386.exe noems dos = high, umb 2.44 I/O eszközök konfigurálása : MODE A parancs alakja eszközönként más és más. A beállítható eszközök a következôk : - nyomtató soros port állapot megjelenítés kódlapok kezelése képernyô vezérlô billentyûzet kezelés Állapot megjelenítés mode [ eszköz ] [ /status ] Kódlapok beállítása mode eszköz c[ode]p[age] prep[are] = ( ( yyy [.]) [file spec] ) és mode eszköz c[ode]p[age] sel[ect] = yyy továbbá mode eszköz cp ref[resh] mode eszköz cp /status 34 2.4 Egyéb parancsok eszköz cp prep CON, LPT1 . 3 Kódlap(ok) elôkészítése cp sel Az elôkészitett kódlapok közül az egyik kiválasztása Kódlap adatok felfrissítése Kódlap értékek : 437 US, 850 LATIN1, 852 LATIN2, 860 PORTUGAL,

863 KANADAI FRAN CIA, 865 GER. A .CPI (EGACPI) file specifikációja cp refresh yyy file spec. 2.45 Keresési útvonalak meghatározása : PATH PATH [ [ megh: ] elérési út [ ; . ] ] vagy PATH ; A sima PATH listázza a keresési útvonalakat, a PATH ; alak törli azokat. A keresési út megadásához max 127 karakter adható meg 2.46 A készenléti jel formájának meghatározása : PROMPT PROMPT [ szöveg ] A szöveg helyén bármilyen string lehet, valamint az alábbi vezérlôkaraktereket is tartalmazhatja : $q $$ $t $d $v $n $l $b $ $e $h $p $g ‘=‘ jel ‘$’ jel Idô kijelzés Dátum kijelzés Verzió szám kijelzés Aktuális meghajtó kijelzés ‘<‘ jel kijelzés ‘|’ kijelzés Kocsi vissza soremelés Az ESC karakter kijelzése Backspace Aktuális meghajtó+könyvtár kijelzése ‘>‘ jel 35 2. Az MS DOS gyakrabban használt parancsai Az alapértelmezés a $p$g ! 2.47 Értékadás környezeti változóknak : SET SET [ változó = [

szöveg ] ] változó A környezeti változó neve szöveg A hozzárendelt szöveg Például : SET TEMP = C:TEMP A környezeti változóra a % . % konstrukcióval tudunk hivatkozni a .BAT állományokban Például %PATH% 2.48 Írás az MS DOS verziótáblájába : SETVER SETVER [ megh: ] [ path ] [ file név n.nn ] vagy SETVER [ megh: ] [ path ] [ file név [ /d ] ] Különbözô programokat olyan DOS verziószámmal írhatunk a táblába, amely alatt készültek. Mielôtt használnánk a parancsot, a verziótábla a memóriában kell, hogy legyen ! ( A CONFIG.SYS-bôl be kell tölteni) Verziótábla módosítás után a rendszert újra kell indítani. 2.49 Meghajtó hozzárendelése alkönyvtárhoz : SUBST SUBST [ megh1: [ megh2: ] path ] vagy SUBST megh1: /d megh1: megh2: path /d A hozzárendelendô meghajtó neve Az alkönyvtár, amihez a meghajtót hozzárendeljük. Hozzárendelés megszüntetése Nem használható a diskcopy, fdisk, chkdsk, fomat, diskcomp, label

,sys parancsokkal. 36 2.5 A Norton Commander rövid ismertetése 2.410 Ciklikus utasításvégrehajtás : FOR FOR %x IN ( HALMAZ ) DO parancs [ paraméterek ] Bizonyos parancsok ( FIND ) nem mûködnek a *.* alakkal. Ilyenkor a FOR ciklus jelent segítséget : FIND %c IN ( *.c ) DO find ”main” %c 2.5 A Norton Commander rövid ismertetése A Norton Commander ( NC) egy karakteres üzemmódú vizuális parancsértelmezô. Indítása az NCEXE programmal történik A képernyôt egy bal - és egy jobboldali modulra osztja, amelyekben az illletô aktuális alkönyvtárak tartalomjegyzéke látható, az általunk megszabott formában. Az NC amellett, hogy a DOS parancsokat menüpontokhoz és/vagy billentyükombinációkhoz rendeli hozzá, más funkciókkal is kényelmessé teszi számunkra a gép használatát. A kettéosztott képernyô legfelsô sorában egy pull-down menü számára van hely, míg a legalsó sor a forró billentyüket mutatja. Ezt a sort a Ctrl-B-vel lehet ki-be

kapcsolni A Ctrl ill az Alt billentyük hosszantartó lenyomásával elérhetô a velük kombinált funkcióbillentyük listája a legalsó sorban. Az NC menüpontjai : Az F9 billentyü lenyomására a következô pull-down menü jelenik meg a képernyô legfelsô sorában : LEFT FILES DISK COMMANDS RIGHT Az egyes menüpontokhoz tartozó almenüpontok a következôk : LEFT Brief Full Info Tree Quick View Compressed File Find File Panel FILES Help User menü View Edit Copy Rename/Move Make directory F1 F2 F3 F4 F5 F6 F7 COMMANDS NCD tree Alt-F10 Find file Alt-F7 History Alt-F8 EGA lines Alt-F9 System information ---------------------------------Swap panels Ctrl-U 37 2. Az MS DOS gyakrabban használt parancsai Directory Info Delete F8 Panels on/off Ctrl-O Link Split/Merge Ctrl-F10 Compare directories On/Off Ctrl-F1 ---------------------------Synchronise dir.s Ctlr-F8 ----------------------- File attributes ---------------------------------Name Ctrl-F3

---------------------------Terminal emulation Extension Ctrl-F4 Select group Gray + ---------------------------------Time Ctrl-F5 Deselect group Gray Menu file edit Size Ctrl-F6 Invert selection Gray * Extension file edit Unsorted Ctrl-F7 Restore selection Editors ----------------------- ----------------------------- ---------------------------------Re-Read Quit F10 Configuration Filter Drive Alt-F1 ------------------------------------------------------------------------------------------- A DISK menüpont rendre a következô almenüket tartalmazza : Copy, Format, Label, Network Shift-F2, Disk cleanup Shift F1. A RIGHT menü minden pontja megegyezik a LEFT menüvel, kivéve az On/off -ot ( Ctrl F2 ) illetve a Drive-ot ( Alt F2 ). Az NC forró billentyûi : Ctrl B Shift F9 Ctrl Z Ctrl L Ctrl O : : : : : Státuszsor ki/be Setup mentése Nem aktív ablakban Dirinfo ki/be Nem aktív ablakban Info ki/be Ablakok ki/be kapcsolása F1 : Help F2 : Menü F3 : View F4 : Edit F5 : Copy F6 :

Rename/Move F7 : MkDir F8 : Delete F9 : Pull down menü F10 : Kilépés ----------------------------------------------------------------------------------------------Alt F1 Alt F2 Alt F3 Alt F4 Alt F5 38 : : : : : Baloldali drive-ok megjelenítése Jobboldali -”-”View Edit Compress (NC compressor, PKZIP, ARJ, ARC, PAK,ZOO, LHA) 2.5 A Norton Commander rövid ismertetése Alt F6 : Decompress Alt F7 : Find Alt F8 : History Alt F9 : EGA lines on/off Alt F10 : NCD tree ----------------------------------------------------------------------------------------------Ctrl F1 Ctrl F2 Ctrl F3 Ctrl F4 Ctrl F5 Ctrl F6 Ctrl F7 Ctrl F8 : : : : : : : : Ctrl F9 Ctrl F10 : : Baloldali ablak ki/be Jobboldali -”Név szerinti rendezettség Kiterjesztés -”Idô -”Méret -”Rendezetlen tartalomjegyzék Két alkönyvtár szinkronizációja (fôleg desktop-laptop kapcsolatnál !) Nyomtatás Split/Merge files ( Egy állomány több részre vágása és fordítva ) Ellenôrzô kérdések és

feladatok a 2. fejezethez 01. Alakítsuk ki a következô könyvtár struktúrát a C: meghajtón : C: ─────┬────────DOS ├────────EXCEL ───┬─── STARTUP │ ├─── TEMP │ └─── USER │ ├──────── UTILS ──────── NC │ ├──────── ENYEM ───┬─── OSZTONDJ │ └─── SZAMLA │ └──────── BC ───────┬─── BIN ├─── LIB ├─── INCLUDE └─── USER Ezekután megtörténik a DOS, EXCEL, UTILS, BC, OSZTONDJ, SZAMLA rendszerek installálása. A feladataink a következôek : a.) Tudjuk azt, hogy az EXCEL programot a exc.bat, az BC programot a bcbat indítja el Ez a két batch file az UTILS -ban van Tegyük lehetôvé, hogy ezt a két batch file-t, valamint bármely 39 Ellenôrzô kérdések és feladatok a 2. fejezethez DOS parancsot illetve az NC-ben elhelyezkedô Norton Commandert is

bárhonnan el tudjuk indítani ! b.) Jelenleg a EXCELUSER -ben tartózkodunk. Másoljuk át a table.c programot az BCUSER alkönytárba c.) A BCUSER alkönytárból lépjünk át a EXCELUSER alkönyvtárba, elôször relatív, majd abszolút módon ! d.) Másoljuk ki a teljes BC könyvtárstrukúrát az A: meghajtóra, BC3 0 néven, ellenôrzéssel, állományonkénti rákérdezéssel. 02. Feltétlenül szükséges-e megadni a célállomány nevét, ha több szöveges állományt akarunk összefüzni DOS alatt egy néven ? 03. Rendezzük le az aktuális alkönyvtár listáját kiterjesztés szerint, kétféle módon ! 04. Az aktuális alkönyvtártól kiindulva minden alkönyvtárban, minden .C állományunknak adjunk READ ONLY attribútumot. 40 3. Parancsállományok, eszközkezelôk Ebben a fejezetben a parancsállományok ( például : AUTOEXEC.BAT ) valamint a CONFIG.SYS állomány utasításkészletét, valamint a fontosabb eszközkezelôket ismertetem. 3.1 A DOS

parancsfile-ok parancskészlete 3.11 CALL Adott parancsfile meghívása egy másik parancsfile-ból. Nem célszerű be- ill. kimenet átirányítást alkalmazni ! call [megh:] [path] fn [paraméterek] Példa : TOMOR.BAT : Másik batch file hívása a call használatával call tarja.bat %1 %2 ---------------------------------------------------------------------------TARJA.BAT : A tömörítést végzô batch file paraméterezéssel arj a %1 %2 3.12 CHOICE Választás menübôl. choice [/c[:] billentyűk] [/n] [/s] [/t[:] ,c,nn] [szöveg] ahol : szöveg : Ez a szöveg jelenik meg a menü végén. /c[:] billentyűk : Itt adhatjuk meg, hogy milyen billentyűket fogadjon el a choice parancs. Ha nem ∑ 3. Parancsállományok, eszközkezelôk használjuk, akkor csak a YN billentyűk érvényesek. /n : Csak a szöveg jelenik meg a képernyôn, a billentyűk pedig nem ! /s : A válaszban a rendszer megkülönbözteti a kis és nagybetűket. /t[:] c, nn : A /t

kapcsolóval megadhatjuk, hogy a c paraméterben definiált karaktert dolgozza fel a parancs nn másodperc múlva. 01. sz példaprogram : Menükezelés parancsállományból. @echo off :menu cls echo 1. Borland C echo 2. MSC echo 3. QUICK C echo 4. JAVA echo 5. Kilépés echo; echo Az alapértelmezés a BORLAND C ! echo; choice /c12345 /t1,5 Válasszon ! if if if if if errorlevel errorlevel errorlevel errorlevel errorlevel :b echo Hívom pause goto menu :m echo Hívom pause goto menu :q echo Hívom pause goto menu :j echo Hívom pause goto menu 40 5 4 3 2 1 goto goto goto goto goto vege j q m b a Borland C - t ! az MSC - t ! a QUICK C - t ! a JAVA - t ! 3.1 A DOS parancsfile-ok parancskészlete :vege 3.13 ECHO Szöveg - vagy új sor - kiiratása képernyôre. echo [on | off ] vagy : echo [üzenet] A @echo off még ennek a kiirását is letiltja. Üres sor az echo utasítással érhetô el. ( Vagy echo; ) 3.14 FOR Parancsvégrehajtás ciklusban. Batch file-ból :

for %%x in (halmaz) do parancs [paraméterek] Parancssorból : for %x in (halmaz) do parancs [paraméterek] Példa : Adott szövegminta keresése *.txt állományokban ( A FIND “111” *.TXT ugyanis nem működik ! ) @echo off for %%x in (*.txt) do find "111" %%x vagy : @echo off for %%x in (*.txt) do find %1 %%x 3.15 GOTO Feltételnélküli vezérlésátadás. goto [:] cimke Vezérlésátadás. A cimke a ‘:’ karakterrel kell, hogy kezdôdjön 3.16 IF 41 3. Parancsállományok, eszközkezelôk Feltételes vezérlésátadás. Három alakja létezik : if [not] errorlevel <szám> <utasítás> ahol : <szám> <utasítás> egy elôzô utasítás kilépési kódja érvényes DOS parancs if [not] str1 == str2 <utasítás> ahol : <str1> és <str2> két karakter sorozat, vagy karakteres változó. if [not] exist <file név> <utasítás> Egy állomány létezését vizsgálja. 02. sz példaprogram : Szövegfile-ok

mentése floppyra paraméter ill. file létezés vizsgálattal @echo off cls rem File specifikáció vizsgálat rem if "%1" == "" goto par error if not exist %1 goto hiba rem rem mentés rem echo Kérek egy lemezt az A: meghajtóba pause copy %1 a:szovegek rem rem összehasonlítás rem echo n|comp %1 a:szovegek\%1 goto vege :par error echo Hiányzó paraméter ! echo. echo Használat : MENTALT1 file specifikáció echo. pause goto vege : hiba echo Nincs ilyen file ! 42 3.1 A DOS parancsfile-ok parancskészlete : vege Az A:SZOVEGEK alkönyvtárnak léteznie kell a .BAT file-ok elindítása elôtt! 3.17 PAUSE Várakozás. Ha CTRL-C vagy CTRL BREAK-kal szakítjuk meg, akkor kívánság szerint befejezhetjük a batch file futtatását. pause 3.18 REM Megjegyzés a batch file-ban, vagy a CONFIG.SYS állományban rem [megjegyzés] 3.19 SHIFT A parancsfile paramétereit eggyel balra lépteti. Igy 9-nél több paraméter is feldolgozható shift 03. sz

példaprogram : A SHIFT utasítás működésének szemléltetése @echo off rem SHIFT.BAT : Példa a SHIFT utasítás müködésére :kovetkezo if "%1"=="" goto vege echo %1 shift goto kovetkezo :vege echo; echo Készen vagyunk ! 43 3. Parancsállományok, eszközkezelôk echo; 3.2 A CONFIGSYS file parancskészlete 3.21 BREAK A CTRL + C kibôvített figyelésének vezérlése. break = on | off Alapértelmezés az off. 3.22 BUFFERS Az állomány és lemezkezeléshez szükséges pufferek számának meghatározása. buffers = n Az ajánlott pufferszám 20 és 30 között van. Miden puffer kb 532 byteot foglal 3.23 COUNTRY Országfüggô információk használatának engedélyezése. country = xxx [, [yyy] [, [megh:] file név] ] Ahol : 44 3.2 A CONFIGSYS file parancskészlete xxx yyy megh:file név = = = Országkód Az országkódhoz tartozó kódlap Az országfüggô információkat tartalmazó file neve. Ha nincs megadva, akkor a COUNTRY.SYS-t

használja a DOS Példa a magyar beállításra : country = 036, 852, c:doscountry.sys 3.24 DEVICE Eszközvezérlô betöltése a hagyományos memóriaterületre. device = [megh:] [path] file név [paraméterek] Az MS DOS 6.2 a következô szabványos eszközvezérlôket tartalmazza: ANSISYS, DISPLAYSYS, DBLSPACESYS, DRIVERSYS, EGA.SYS, HIMEMSYS, RAMDRIVESYS, EMM386EXE, INTERLNK.EXE, POWEREXE, SETVEREXE, SMARTDRVEXE A COUNTRY.SYS és a KEYBOARDSYS nem eszközvezérlôk, ezeket a DOS automatikusan betölti, ha szükséges. Példa : device = c:dosansi.sys 3.25 DEVICEHIGH Eszközvezérlô betöltése az UMB-be. Két alakja van : devicehigh = [megh:] [path] file név [paraméterek] devicehigh [ /l: r1[,mm1] [;r2] [,mm2]]=[megh:][path]file név[par.] Ahol : r1, r2 : mm1, mm2 : Régióterületek ( A MEM /f paranccsal lehet megnézni ! ) Az eszközvezérlô számára szükséges minimális memória. A devicehigh utasítás használatához a következô utasítások szükségesek a

CONFIG.SYS-ben : device = c:doshimem.sys device = c:dosemm386.exe 45 3. Parancsállományok, eszközkezelôk dos = high,umb Most már használható a devicehigh : devicehigh = c:dosansi.sys devicehigh /l:2,12048 = c:dossetver.exe 3.26 DOS Az MS-DOS betöltése HMA-ba ill. UMB engedélyezés dos = high | low [ , umb | , noumb ] 3.27 FCBS Az egyidejüleg megnyitható FCB-k számát adhatjuk meg. Elavult ! fcbs = x 3.28 FILES Az egyidejüleg megnyitható file-ok számát adhatjuk meg. files = x A legtöbb alkalmazásnál x = min. 20 3.29 INCLUDE Egy szövegblokk ( menü ) utasításainak egy másik helyen történô végre hajtatása. include = blokknév 3.210 INSTALL Bizonyos eszközvezérlôk - például SHARE.EXE - betöltésére szolgál install = [megh:] [path] file név [paraméterek] 3.211 LASTDRIVE 46 3.2 A CONFIGSYS file parancskészlete Az elérhetô logikai drive-ok maximális száma. lastdrive = x Ahol : x az angol abc valamelyik betűje. 3.212 MENUCOLOR Menü

képernyô háttér és karakterszíne adható meg. menucolor = betűszín [, háttérszín ] 3.213 MENUDEFAULT Alapértelmezés szerinti menüpont megadása. menudefault = blokknév [, várakozási idô ] 3.214 MENUITEM Menüblokkhoz tartozó menüpont megadása. menuitem = blokknév [, menüszöveg] 3.215 NUMLOCK A NUMLOCK billentyű vezérlése numlock = [on | off ] 3.216 Megjegyzés : REM rem [szöveg] 3.217 SET DOS változóknak tudunk értéket adni a CONFIG.SYS-bôl set DOS változó = szöveg Példa : CONIG.SYS-ben : set program = c 47 3. Parancsállományok, eszközkezelôk AUTOEXEC.BAT-ban : goto %program% . :c . 3.218 SHELL Az MS DOS parancsértelmezô file specifikációjának megadása. shell = [megh:] [path] file név [paraméterek] Példa : shell = c:doscommand.com /e:768 /p 3.219 STACKS Stack foglalás az interrupt kezelô rutinok számára. stacks = n,s Ahol : n : s : A stackekk száma ( 8- 64 ) Egy stack mérete ( 0 vagy 32 - 512 ) 3.220 SUBMENU

Menüblokkhoz tartozó almenü megadása. submenu = menüblokk név [, almenüszöveg ] 3.3 Az MS DOS fontosabb eszközvezérlô programjai 3.31 ANSISYS Kibôvített képernyô és klaviatúra kezelés, ESC szekvenciák használatának biztosítása. device | devicehigh = [ megh: ] [ path ] ansi.sys [ /x ] [ /r ] Ahol : 48 /x : Megkülönbözteti az azonos jelzésű, de különbözô elhelyezkedésű billentyűket. /r : Szöveg olvashatóság növelése, görgetés szabályozása. 3.3 Az MS DOS fontosabb eszközvezérlô programjai 3.32 DISPLAYSYS A nemzetközi karakterkészletek használatának engedélyezése. device|devicehigh=[megh:][path]display.syscon[:]= (típus[,[hwcp][,n]]) Ahol : típus : hwcp : n : EGA vagy LCD. A hardver által támogatott kódlap száma. Lehetséges értékek : 437, 850, 852, 860, 863, 865. Kiegészítô kódlapok száma 0 - 6. Max: EGA=6 , LCD=1 3.33 EGASYS Az EGA képernyô információinak mentése és visszatöltése. device |

devicehigh = [ megh: ] [ path ] ega.sys 3.34 EMM386EXE Az UMB használatát biztosító EMS emulátor. A LIM EMS 40-t támogatja. device =[megh:] [ path ] emm386.exe [ mx | frame = fmem cim | /pmmmm ] [x=mmmm-nnnn] [i=mmmm-nnnn] [noems] [win=mmmm-nnnn] [nohi] Ahol : mx : x értékével jelölhetjük ki a fizikai ablak kezdôcímét, ha az alapértelmezés nem megfelelô. frame : Ugyanaz mint mx csak utána konkrét címet adunk meg. /p : Az ablakcím ebben a formában is megadható. x= : Ezen a területen kizárjuk az EMS lapok kialakítását. i= : Ezen a területen kérjük az EMS lapok kialakítását 49 3. Parancsállományok, eszközkezelôk noems : Csak UMB használat. win Fentartott terület a WINDOWS számára. : nohi : Letiltja az EMM386 egy részének UMB-be való betöltôdését. Ahhoz, hogy az EMM386-ot használhassuk, elôször installálni kell a HIMEM.SYS-t UMB használathoz a dos=umb parancsot is meg kell adnunk. 3.35 HIMEMSYS

Eszközvezérlô az XMS kezelésére. device = [ megh: ] [ path ] himem.sys Az XMS 3.0 szabványt valósítja meg Az esetek többségében kapcsolók nélkül használjuk, hiszen úgy tervezték, hogy alapértelmezésszerűen a legtöbb számítógépen működjön. 3.36 RAMDRIVESYS Lemezegység emulációja a memóriában. device | devicehigh = [ megh: ] [ path ] ramdrive.sys [ lemezméret szektorméret [bejegyzések] ] [ /e /a ] Ahol : 50 lemezméret : A memórialemez mérete Kbyte-ban. Alapértelmezés = 64. Min. : 4 Max: 32767 szektorméret : A szektorok mérete byte-ban. Alapértelmezés = 512. Lehetséges értékei : 128, 256, 512 Ha használjuk, akkor a lemezméret-et is használnunk kell ! bejegyzések : A - ben tárolandó bejegyzések max. száma Alapértelmezés : 64. Lehetséges értékek : 2 - 1024 Ha használjuk, akkor az elôzô kettôt is használnunk kell ! 3.3 Az MS DOS fontosabb eszközvezérlô programjai /e : A lemezt az XMS-ben kérjük

kialakítani. /a : A lemezt az EMS-ben kérjük kialakítani. Példa : device = c:dos amdrive.sys 2048 512 1024 /e 3.37 SETVEREXE MS DOS verziótábla betöltése a memóriába. device | devicehigh = [ megh: ] [ path ] setver.exe 3.38 SMARTDRVEXE Lemezegységgyorsító ( CACHE ) program. Bizonyos esetekben az AUTOEXEC.BAT-ból is indítható Ha a felsô memória elérhetô, akkor automatikusan oda töltôdik be. device = [ megh: ] [ path ] smartdrv.exe [ /double puffer ] Ha a gépünkben SCSI, ESDI, vagy MCA merevlemez található, akkor a CONFIG.SYS-ben kell installálni, és szükség lehet a kettôs pufferezési lehetôségre. Ha /double puffer kapcsolóval installáljuk, majd a smartdrv paracsot használjuk, akkor a „Disk Caching Status” táblázat „Buffering” sorában megtaláljuk a választ : y = szükséges, n = nem szükséges, - = nem megállapítható. 51 3.4 A parancsok és eszközvezérlôk összefoglalása A DOS parancsfile-ok parancskészlete 01. 02.

03. 04. 05. 06. 07. 08. 09. CALL CHOICE ECHO FOR GOTO IF PAUSE REM SHIFT : Adott parancsfile meghívása egy másik parancsfile-ból. : Választás menübôl. : Szöveg - vagy új sor - kiiratása képernyôre. : Parancsvégrehajtás ciklusban. : Feltételnélküli vezérlésátadás. : Feltételes vezérlésátadás. : Várakozás billentyűnyomásra. : Megjegyzés. : A parancsfile paramétereit eggyel balra lépteti. A CONFIG.SYS parancskészlete 01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. BREAK : A CTRL + C kibôvített figyelésének vezérlése. BUFFERS : A szükséges pufferek számának meghatározása. COUNTRY : Országfüggô információk használatának engedélyezése. DEVICE : Eszközvezérlô betöltése. DEVICEHIGH : Eszközvezérlô betöltése az UMB-be. DOS : Az MS-DOS betöltése HMA-ba ill. UMB engedélyezés FCBS : Az egyidejüleg megnyitható FCB-k számát adja meg. FILES : Az egyidejüleg megnyitható file-ok számát adja

meg. INCLUDE : Egy szövegblokk másik helyen történô végrehajtatása. INSTALL : Speciális eszközvezérlô betöltés LASTDRIVE: Az elérhetô logikai drive-ok maximális száma. MENUCOLOR : Menü képernyô háttér és karakterszíne adható meg. MENUDEFAULT : Menü alapértelmezés MENUITEM: Menüblokkhoz tartozó menüpont megadása. NUMLOCK : A NUMLOCK billentyű vezérlése REM : Megjegyzés. SET : DOS változóknak adhatunk értéket a CONFIG.SYS-bôl SHELL : Az MS DOS parancsértelmezô file specifikációjna. STACKS : Stack foglalás az interrupt kezelô rutinok számára. SUBMENU : Menüblokkhoz tartozó almenü megadása. Az MS DOS 6.2 eszközvezérlô programjai 01. 02. 03. 04. 05. 06. 52 ANSI.SYS : Kibôvített képernyô és kalviatúra kezelés DISPLAY.SYS : Nemzetközi karakterkészlet használat engedélyezése EGA.SYS : Az EGA képernyô információk mentése és visszatöltése EMM386.EXE : Az UMB használatát biztosító EMS emulátor HIMEM.SYS: XMS

memóriakezelô RAMDRIVE.SYS : Memórialemez emuláció 3.4 A parancsok és eszközvezérlôk összefoglalása 07. 08. SETVER.EXE : MS DOS verziótábla betöltése a memóriába SMARTDRV.EXE: Lemezegységgyorsító ( CACHE ) program 53 Ellenôrzô kérdések és feladatok a 3. fejezethez Ellenôrzô kérdések és feladatok a 3. fejezethez 01. Hogyan lehet menüt készíteni egy batch állományban ? 02. Hogyan hívhatunk meg egy batch állományt egy másik batch állományból ? 03. Hogyan tudunk egy batch állományban a *.C file specifikációnak megfelelôen keresni a FIND parancssal ? 04. Hogyan tudjuk levizsgálni egy MS DOS parancs kilépési értékét ? 05. Hogyan tudjuk megvizsgálni, hogy létezik-e egy file vagy filecsoport ? 06. Hogyan tudunk két karaktersorozatot összehasonlítani ? 07. Hogyan tudunk kilencnél több paramétert használni egy batch állományban ? 08. Melyik CONIG.SYS paranccsal tudjuk a dátumot és az idôt a magyar

szokásoknak megfeleleôen kiiratni ? 09. Melyik paranccsal tudjuk az UMB kezelést engedélyezni ? 10. Milyen utasítások kell, hogy megelôzzék a devicehigh utasítás használatát a CONFIG.SYS állományban ? 11. Mire szolgál az INSTALL parancs ? 12. Melyek a CONFIG.SYS menükezelô parancsai ? 13. Melyik eszközvezérlô engedélyezi a nemzetközi karakterkészletek használatát ? 14. Mire való a HIMEM.SYS illetve az EMM386EXE ? Hogyan kell betölteni ôket a rendszerbe ? 15. Hogy tudunk memórialemezt emulálni ? Milyen eszközvezérlô kell hozzá, hogy töltjük a rendszerbe és mik a paraméterei ? 16. Mire való a SETVER.EXE és hogyan töltjük be a rendszerbe ? 54 3.4 A parancsok és eszközvezérlôk összefoglalása 55 4. A UNIX általános ismertetése Ez a fejezet a UNIX történetével, általános felépítésével foglalkozik. Tárgyalja a UNIX alapfogalmait úgymint, többfelhasználós-többfeladatos operációs rendszer,

folyamatkezelés, file rendszer, file kezelés, katalógusrendszer, linkek, hozzáférési jogok, szûrôk, pipe - ok, átirányítás. 4.1 Történelmi áttekintés 4.11 Az AT & T UNIX 1969-ben Ken Thompson és Dennis Ritchie egy PDP-7 gépen kifejlesztette a UNIX prototípusát, az AT & T Bell Laboratories - nál. 1971-ben Dennis Ritchie létrehozta a C nyelvet. 1973-ban a UNIX kerneljének ( magjának ) nagy részét átírták C nyelvre. A C nyelvû kernel hordozhatósága következtében 25 különféle verzió mûködött az AT & T különbözô részlegeiben. 1974-ben megjelent az elsô nyilvános publikáció ( forráskód ) a UNIXról, és innen kezdve rohamosan terjedt, különösen az egyetemeken, ahol az AT & T eleinte ingyenesen terjesztette. 1979-re kb. 500 különféle UNIX verzió létezett az USA-ban, és ebben az évben kezdik meg a kereskedelmi forgalmazást 1977-1982 között az AT & T megpróbálja összefogni a különbözô UNIX verziókat,

és elôbb a VERSION 7, majd a SYSTEM III-mal jelenik meg a piacon. 1983-ban megjelenik a SYSTEM V. 4.12 A BERKELEY UNIX A Kaliforniai Berkeley Egyetemen 1977 óta használnak UNIX-ot, amely több ponton eltér az AT & T UNIX-tól. Ezt a családot a BSD ( Berkeley Software Distribution ) jelzéssel látták el. 4.13 A XENIX Σ 4. A UNIX általános ismertetése Az elsô kimondottan PC-re írt UNIX, amely elsôsorban az MS-DOSsal kapcsolatos szolgáltatásaiban tér el a többi UNIX-tól. 4.14 Szabványosítási törekvések A rendkívül sokféle UNIX verzió, valamint a UNIX rohamos terjedése miatt ( 1991-ben 22%-os piaci részesedés ) , az AT & T létrehozta a SYSTEM V Interface Division-t ( SVID ), amely a SYSTEM V rendszerhívásainak és szubrutinjainak egységes felhasználói felületét és definíciót határozta meg. Ellenreakcióként létrejött az IEEE égisze alatt a Portable Operating System Interface (x) ( POSIX ), amelyet jelenleg az ANSI és az ISO

is támogat. A POSIX a SVID rendszerhívásainak mintegy 70 %-át használja, de új vonásai is vannak. ( ADA nyelvvel való kapcsolat ) Tovább bonyolítja a helyzetet, hogy a világ nagy gyártóit és felhasználóit egyaránt képviselô X/OPEN mind a POSIX-ot mind a SVID-et támogatja, de vannak saját ajánlásai is a bôvítéseket ill. szûkítéseket illetôen. Mindezek következtében 1987-ben megkezdôdött a szakmában "The UNIX War" néven emlegetett háború. Ekkor jelentette be az AT & T a SUN támogatásával az SVR4-et. Ez a rendszer hivatott az AT & T és a BSD UNIX-ok szolgáltatásait integrálni. Ezen cél megvalósítása érdekében jött létre a UNIX International ( UI ). Ezt a szervezetet támogatja az NCR, UNISYS és a DATA GENERAL. Az SVR4 kifejlesztésében még az INTEL, a MICROSOFT és az INTERACTIVE SYSTEMS is közremûködött. Az SVR4 egyesíti magában a SYSTEM V, a BSD 4.3 és a XENIX szolgáltatásait, ill a POSIX ajánlásainak

is megfelel. Egy-egy processzortípusra nézve binárisan kompatibilis változatai lesznek. ( i, Motorola, NS ) Az SVR4 fô vetélytársa az OPEN SYSTEM FOUNDATION ( OSF ) által kifejlesztett OSF/1 nevû UNIX verzió, amely szintén egyesítené magában a fenti változatok szolgáltatásait, de nem a hagyományos UNIX kernelre támaszkodva, hanem a CarnegieMellon egyetemen kifejlesztett MACH operációs rendszerre, amely rendszerhívási szinten teljesen UNIX kompatibilis, de eleve többfonalas (multithread ) kernelre épül, ami helybôl támogatja a UNIX többprocesszoros gépeken való futását, s a feladatok több processzor közti szétosztását is. Ezt a rendszert támogatja az IBM, a DEC, a BULL és a SIEMENS NIXDORF is 54 4.2 A UNIX felépítése Remélhetôleg a két nagy tábor közti egyre fokozódó "átjárásnak" köszönhetôen ki fog alakulni az egységes UNIX. 1993 októberében a UNIX védjegyhez fûzôdô jogok a semleges X/OPEN kezébe kerültek,

ezzel valószínüleg megszûnik a "UNIX WAR". 4.2 A UNIX felépítése 4.21 Általános felépítés alkalmazások Lotus 1-2-3 Wordperfect Office Mail - It Corel Draw . segédprogramok shellek ls | cat | mv | cc | . | lex | yacc BOURNE KORN | C | kernel hardware A kernel az operációs rendszer magja, a rendszer erôforrásainak szétosztását és a futó folyamatok ütemezését végzi.A kernel köré épülnek az operációs rendszer segédprogramjai, a utility-k. Ezek a felhasználó parancsainak az értelmezésétôl kezdve, a szövegfeldolgozáson át a kommunikációig, valamint a rendszer adminisztráión át a játékokig mindent lefednek. Ezek közül a felhasználó számára a legfontosabb a shell ( parancs értelmezô ). A shell egyben igen hatékony programozási eszköz is ( ! ). 55 4. A UNIX általános ismertetése 4.22 A UNIX on-line helpje : a man A man beírására a UNIX a teljes helpjét lapozza a képernyôn. Ha csak egy konkrét

témára vagyunk kiváncsiak, akkor a man -k téma szintaxissal nyerhetünk információt. Az is egy módszer, ha tévesen írjuk be a parancs szintaxisát, ekkor a UNIX automatikusan helpet ad. Más szintaktikák : cp --help cp -h cp -? # cp a másolás UNIX alatt 4.3 UNIX alapfogalmak 4.31 Többfelhasználós-többfeladatos mûködés A többfelhasználós-többfeladatos mûködés alatt azt kell érteni, hogy a rendszert többen használhatják egyidôben, és egy felhasználó több progamot tud futtani. (Multi user - multi tasking ) Ez utóbbi egyprocesszoros gépeken természetesen csak virtuálisan valósul meg, azonban több processzoros gépeken ténylegesen is megvalósulhat. A felhasználó kilépése tehát nem azonos a gép lekapcsolásának idôpontjával, ezt csak a rendszergazda teheti meg. userek belépés kilépés 1 2 2 2 2 2 shell bekapcsolás 4.32 Bejelentkezési nevek és kulcsszavak 56 kikapcsolás 4.3 UNIX alapfogalmak A bejelentkezési név (

login name ) egy karaktersorozat, amit a rendszergazda oszt ki a felhasználónak. A bejelentkezési név begépelése után egy jelszót (password) kér tôlünk a rendszer, amit szintén a rendszergazda szokott beállítani, de a felhasználó is megváltoztathatja a passwd paranccsal. A UNIX-ban léteznek privilegizált és nem privilegizált userek. A privilegizált userek között is kiemelkedô szerepe van a rendszergazdának, ô a superuser. A rendszergazda login neve hagyományosan a root. A UNIX alatt futó gépre több terminál csatlakoztatható soros vonalon. Ezek közül egynek kitüntetett a jelentôsége, ez a konzol - a rendszergazda munkahelye. Természetesen LAN-on ill WAN-on is csatlakozhatunk UNIX szerverhez. 4.33 Folyamatkezelés A multitasking üzemmódból adódóan két fontos fogalom merül fel : a program , és a folyamat ( process). A program vagy egy futtatható bináris állomány, vagy egy shell által értelmezhetô parancs file (script), a folyamat pedig

egy program egy futó példánya. Egy programból tehát annyi folyamat keletkezik, ahány user a programot futtatja. Egy elindított folyamat több másik folyamatot is elindíthat ( child process ). ! Amikor egy parancs elindít egy process-t, akkor a user addig nem kapja vissza a promptot, amíg a process be nem fejezôdik. Ez egy hosszabb program esetén igen kínos lenne, ezért mód van arra, hogy háttérfolyamatot ( background process ) indíthassunk el. Igy azonnal visszakapjuk a promptot. A háttérfolyamat indítása a sorvégi & jellel történik. A háttérfolyamat egy speciális esete a démon ( daemon ). Ezt rendszerint automatikusan indítja el a rendszer, és valamilyen felügyeleti szerepet ellátva állandóan fut a hátérben. Ilyen például az új bejelentkezô figyelése, vagy a nyomtatási sor felügyelete A démonoknak végrehajtásra átadott nyomtatást vagy egyéb kérelmeket job-nak nevezik, ezeket a démon sürgôsségi és egyéb szempontok szerint

sorba (queue ) rendezi, és egyenként végrehajtja ôket. 4.34 A file rendszer alapfogalmai A UNIX-ban minden file, azaz a UNIX a lehetôségek szerint minden adat objektumot azonos módon azonos parancsokkal próbál meg kezelni. A file a UNIX alatt az adatok tárolására szolgáló alapvetô 57 ! 4. A UNIX általános ismertetése adatobjektum. Teljesen struktúrálatlan, nincs mezôkre vagy rekordokra bontva, nincs megszabott hosszúsága - a file egyszerüen egy byte sorozat. Egy UNIX file végét nem jelzi semmi. A file-nak akkor van vége, amikor az olvasó rutin már nem tud semmit sem olvasni, s az ennek megfelelô hibajelzéssel tér vissza. Egy file tartalmazhat adatokat, futtatható állományokat, egyéb fileokra vonatkozó információkat ( katalógus file-ok ), sôt : a perifériák is fileként szerepelnek a UNIX-ban., s ugyanazokkal a standard parancsokkal lehet hozájuk férni, mint bármely más közönsége file-hoz Az elôbb említett katalógus file-ok egy

fastruktúrába vannak szervezve, ennek következtében minden felhasználó számára külön adatterület jelölhetô ki, esetenként azonos nevû fileok-kal. A katalógus file-ok ugyanolyan file-ok mint azok amelyekrôl az információt tárolják, az egyetlen különbség az, hogy a katalógus file-ok manipulálására külön parancsok szolgálnak. A UNIX megkülönböztet felhasználói és csoport azonosítókat. Mindkettô egy -egy egész szám, és a felhasználói azonosító megfelel a bejelentkezési névnek. A UNIX a file hozzáférési kérelmeket aszerint bírálja el, hogy a user tulajdonosa-e a file-nak, vagy a tulajdonossal azonos csoportban van-e. A csoport azonosító használata megkönnyíti a file-ok differenciált védelmét és a közös munkát. A UNIX minden file-hoz hozzáférési jogokat rendel, ennek alapján lehet eldönteni, hogy a file olvasható (r), írható (w) vagy végrehajtható (x). A végrehajtható file-ok vagy binárisak és az operációs

rendszer hajtja ôket végre, vagy ún. shellscript-ek Utóbbiakat az illetô shell értelmezi és hajtja végre. 4.4 A UNIX file rendszere 4.41 A file rendszer felépítése A UNIX file rendszere egy fastruktúrában helyezkedik el. A gyökér van felül és a / karakter a jelzése. Gyökérkatalógusnak hívják Ebbôl ágaznak el a további katalógusok , azokon belül pedig a file-ok. A UNIX file rendszerének három kitüntetett pontja van a felhasználó szempontjából : 58 4.4 A UNIX file rendszere 1. A file rendszer kezdôpontja, a root directory. 2. A felhasználóhoz tartozó kiindulási pont, ahonnan a felhasználó elhelyezheti a saját állományait. Ez a home directory 3. Az a pont, ahol a felhasználó éppen tartózkodik az állományrendszerben. Ez a current directory A UNIX file rendszerét a következô ábra illusztrálja : 59 4. A UNIX általános ismertetése usr mnt / tmp dev dsk bin fd etc home kissp cat nagyz group c0t2d3s0 fd0

udir 01 ls, mv passwd cat home : file : katalógus Az mnt könyvtárban lehetnek a mountolt ( becsatolt ) eszközök. A becsatolást a rendszergazda végzi el. A home könyvtárból nyílnak a user alkönyvtárak. Az etc könyvtár tartalmazza a rendszer konfigurációs állományait A bin tartalmazza a shelleket és az operációs rendszer parancsait. A dev a perifériák szimbolikus neveit tartalmazza, a tmp pedig az átmeneti állományokat Az usr könyvtárban nem szervesen a rendszerhez tartozó, hanem ún. kiegészítô állományok kerülnek. 4.42 A UNIX file rendszerének belsô szerkezete Minden UNIX file rendszer elején az ún. szuperblokk található meg, amelyik a file rendszer legfontosabb adatait, például a belsô táblák és azonosítók méreteit stb. tartalmazza Ezt követi az inode ( index node ) tábla, majd a ténylegesen felhasználható lemezterület, amely már lefoglalt blokkokból ill. szabad területekbôl áll Az inode tábla egy fix méretû

tábla, fix hosszúságú bejegyzésekkel, melyet a rendszer programok indextáblaként használnak. 60 4.4 A UNIX file rendszere Az inode táblában minden egyes filehoz - legyen az katalógusfile vagy közönséges adatállomány - egy és csakis egy inode bejegyzés tartozik. Ez a bejegyzés tartalmazza az illetô file méretét, típusát, tulajdonosát, csoportját, a hozzáférési jogokat és a fizikai elhelyezkedésére mutató pointert. Az inode bejegyzés egy inode számmal kezdôdik Az inode tábla csak egy lényeges attribútumot nem tartalmaz : a file nevét. A file nevét ugyanis a katalógus file tartalmazza. Egy katalógusfile bejegyzés a file inode számát és a nevét tartalmazza. Nézzük meg ezekután, hogyan keresi meg a UNIX a /home/user1/szoveg nevû file-t : SUPERBLOCK 1 2 8195 20690 20892 | | | | | • • • • • • 14336 • 8195 • 10240 • 16384 bin home etc dev • 20815 • 20892 proba szoveg • 20690 • 6789 • 6788 user1 user2

user3 szoveg nevû file Ezekután a keresés a következôképpen zajlik : A rendszer elôször a gyökér katalógus inode-ját keresi meg (#2). Az inode bejegyzés végén található pointer a / katalógus file fizikai helyére mutat. Ezen az alapon a rendszer megnyitja a katalógusfile-t és kikeresi belôle home bejegyzést. Az ehhez tartozó inode szám : #8195 Ez alapján az inode táblában megint egy pointerhez jutunk, ami most már a /home katalógus 61 4. A UNIX általános ismertetése file-ra mutat. Ezt megnyitva, a rendszer megkeresi benne a user1 bejegyzést. Ennek az inode száma : #20690 Ennek alapján a /home/user1 katalógus file-t nyitja meg és megkeresi benne a szoveg bejegyzést. Az ehhez tartozó inode szám : #20892 Ez alapján találja meg az inode táblában a szoveg nevû filera mutató pointert, és így megtalálta a szoveg nevû file-t a rendszer. Az állomány nyilvántartás tehát háromszintû a UNIX-ban : inode tábla, katalógus file-ok,

tényleges fizikai állományok. 4.43 Láncok létrehozása ( linkelés ) Ez a mechanizmus arra szolgál, hogy egy állományt több néven is el lehessen érni a UNIX-ban. Nagy elônye, hogy elkerülhetô a névütközés illetve, hogy hasonló funkciókra ( például : cp, ln , mv ) elég legyen egy programot írni, és arra különbözô nevekkel hivatkozni. Az argv[0] paraméter majd megmutatja, hogy melyik névvel hívtuk meg a programot, és az ennek megfelelô funkcióhoz tartozó függvények aktivizálódnak majd ! A külön névvel való hivatkozás másolással is megoldható, de ekkor ugyanaz a program kétszer foglal helyet a winchesteren ! A UNIX kétféle láncolás ismer : hard link és soft ( szimbolikus ) link. Hard link ( ln ) esetében, a linkelt file fizikailag csak egyszer szerepel, de két helyen látható. Ilyenkor tulajdonképpen két katalógusbejegyzés készül : egy az eredeti file-ról, a másik a linkjérôl. Mindkét bejegyzéshez tartozó inode szám

ugyanaz ! Ez azt jelenti, hogy hard link esetén csak egy inode tábla bejegyzés tartozik a linkelt fileok-hoz, és a bejegyzésben található láncszám mutatja meg azt, hogy hányszoros a linkelés. Hard link csak fizikailag azonos partíción belül hajtható végre ! Soft link ( ln -s ) esetén a link katalógus bejegyzése nem a file inodejára mutat, hanem egy olyan különleges file-ra, ami a láncolt file nevét tartalmazza. Igy nemlétezô file-ok is linkelhetôk Ilyenkor a láncszám nem növekszik, viszont a file attribútum l lesz. A directory listában (ls -l) szereplô -> mutatja meg, hogy melyik az eredeti file. A soft link elônyei a hard linkkel szemben : 62 4.4 A UNIX file rendszere 1.) A soft link fizikailag különálló file rendszerek esetén ( különbözô partíciók ) is megvalósítható. A különálló file rendszereket egyébként a mountolás-nak nevezett müvelettel csatolhatjuk be a gazdagép UNIX file rendszerébe. A hard linkelés azért

nem valósítható meg, mert nincs garancia arra, hogy a becsatolt file rendszert nem csatolják-e le várat lanul a géprôl. A soft link-ben szereplô név viszont nem létezô, vagy pillanatnyilag el nem érhetô helyre is mutathat, csak a létrehozáskor kell, hogy látszódjék . 2.) A soft linkkel katalógusokat is tudunk láncolni, akár egy másik file rendszerbe. A filerendszer újrastruktúrálásánál nagyon hasznos lehet ez az eljárás. 4.44 File típusok, hozzáférési jogosultságok Egy adott fille-lal kapcsolatban a user háromféle kapcsolatban állhat: tulajdonos ( azonos uid ), csoporttag ( azonos gid ), egyéb. A UNIX-ban alapvetôen háromféle tevékenység különböztethetô meg a fileokkal kapcsolatban : olvasás (r), írás (w), végrehajtás (x). A file típust, illetve a hozzáférési jogosultságokat ( permissions ) 10 karakteren jelzi ki a UNIX a directory listában ( ls -l ). Az elsô karakter jelzi a file típusát . Értékei a következôk

lehetnek : d p l c b közönséges file katalógus speciális csô (pipe) soft link karakteres készülékmeghajtó (device driver ) blokkos készülékmeghajtó A file típust követô három karakter a tulajdonosi jogokat ( u ) , az ezt követô három karakter a csoport jogait ( g ), az utolsó három az egyebek jogait ( o ) mutatja meg. A végrehajtás (x) jog helyett adott esetben szerepelhet az s ( set uid vagy set gid ) jog. Futtatható állományok esetén ez azt jelenti, hogy a programot futtató személy a program futása alatt rendelkezik a program eredeti u vagy g jogaival, attól függôen, hogy hol szerepel az s. 63 4. A UNIX általános ismertetése Amennyiben egy d típusú file-ra x jogot engedélyezünk, ez azt jelenti, hogy az adott katalógus kereshetô, azaz a benne lévô x jogú file-ok végrehajthatók. 4.45 Névkonvenciók A filenév hossza max. 14 karakter lehet, de ez az érték opcionálisan 255-re változtatható a legtöbb UNIX-ban. A fileneveket

itt is a karakterrel lehet tagolni, de egy filenévben több . is elôfordulhat A file nevekben az ASCII kódkészlet alsó 128 karaktere használható - elvileg. Célszerû azonban a *?@#$!& és a név elején álló - jel használatát elkerülni, mert ezeknek a shellek számára speciális jelentésük van. A UNIX shellek kivétel nélkül case sensitive - ek, azaz különbséget tesznek kis- és nagybetûk között : FTC != ftc. Ha egy file neve a . (pont) karakterrel kezdôdik, akkor a UNIX-ban ez a file rejtett file. Ilyen file például a login Ezek a rejtett file-ok általában adminisztrációs vagy konfigurációs file-ok, és nem célszerû, ha keverednek a felhasználó saját anyagaival. 4.46 A csôvezeték ( pipe ) mechanizmus A pipe jele a | karakter, ami az egyik parancs outputját, a másik parancs inputjával köti össze. Példa : cat szoveg | more ( lásd késôbb ) 4.47 Szûrôk ( filter ) Azokat a parancsokat, amelyek - ha másképpen nem rendelkezünk - a

klaviatúráról várják az inputot és a képernyô az outputjuk, szûrôknek nevezzük. 4.48 Átirányítás A default inputot (klaviatúra) a < jellel irányíthatjuk át, a default outputot (display) pedig a > jellel. Ilyenkor az input a < jel után megadott file-ból jön, az output pedig a > jel után megadott file-ba irányul. 64 4.4 A UNIX file rendszere Ellenôrzô kérdések és feladatok a 4. fejezethez 01. Hogy alakult a UNIX története ? 02. Hogy néz ki a UNIX általános felépítése ? 03. Mit értünk többfelhasználós többfeladatos működés alatt ? 04. Hogy jelentkezhetünk be egy UNIX rendszerbe ? 05. Mit a különbség a privilegizált és nem privilegizált userek között ? 06. Mi jellemzi a superusert ? 07. Mi a különbség program és folyamat között ? 08. Mi a különbség az elô- illetve a háttérfolyamat között ? 09. Melyek a kitüntetett alkönyvtárak UNIX alatt ? 10. Hogyan néz ki a UNIX file rendszere ?

11. Milyen szintjei vannak a file rendszernek UNIX alatt ? 65 Ellenôrzô kérdések és feladatok a 4. fejezethez 12. Hogyan keres meg egy állományt a UNIX ? 13. Mit értünk linkelés alatt és mik az elônyei ? 14. Mi a különbség a hard- illetve a soft link között ? 15. Milyen file típusok és hozzáférési jogosultságok léteznek UNIX alatt ? 16. Mi a csôvezeték ( pipe ) mechanizmus lényege ? 17. Mi jellemzi a szűrôk működését ? 18. Mit értünk be- illetve kimenetátirányítás alatt ? 66 5. A LINUX parancsai I Ebben a fejezetben alapvetô általános illetve alapvetô file kezelô parancsok kerülnek ismertetésre. 5.1 Alapvetô általános parancsok 5.11 Melyik könyvtárban vagyunk ? A pwd parancs A pwd ( print working directory ) kiírja a képernyôre az éppen aktuális alkönytár nevét, és az útvonalat. 5.12 Mit láthatunk ? Az ls parancs Az ls parancsot önmagában használva csak a file neveket írja ki a képernyôre.

Az argumentuma lehet egy filenév vagy egy katalógusnév, de ezek vegyesen is elôfordulhatnak. Az ls parancsnak több opciója is lehet, ezek közül az -l hatására egy részletesebb lista jelenik meg a képernyôn. Az ls -l által kijelzett attribútumok a következôk : a legelsô sor a helyfoglalást adja meg blokkokban. A blokkhossz változó. Az ezután következô sorokban az elsô oszlop a hozzáférési jogokat mutatja meg, a következô a lánc számot ( link count ), a következô az állomány tulajdonosa, majd csoportja. Ezután jön a file mérete byteokban, az utolsó módosítás ideje és legvégül a file neve. Az idôrendben történô listázás opciója a -t, a fordított sorrendű rendezésé a -r. A -R kapcsoló hatására a UNIX rekurzív listát ad, vagyis a megadott katalógusnév alatti teljes file struktúrát kilistázza, nemcsak a megnevezett katalógusban lévô fileokat. Látható, hogy a kis- és nagybetűknek messzemenôen különbözô a

jelentésük a UNIX alatt ! Az opciók kombinálhatók : ls -lrt, vagy ls -l -r -t. Az összevonást nem minden UNIX engedi meg, van ahol csak a második alak használható ! További ls opciók : -a minden állomány listázása ( rejtettek is ) -b A nem nyomtatható karaktereket az oktális nn jelöléssel írja ki ∑ 5. A LINUX parancsai I -C több hasábban nyomtatja ki a katalógus bejegyzéseket -d ha az argumentum katalógus, akkor csak az ô bejegyzését listázza ki, a benne szereplô állományokét nem -i inode szám listázása -k kötet szám listázása -m egymástól vesszôvel elválasztva írja ki az állományokat -s méret listázása 5.13 Hová jutunk ? A cd parancs A cd használata történhet mind abszolút, mind relatív módszerrel. Abszolút elérési mód esetén a cd-t követô elsô paramétere a / jellel kell kezdôdjön. Relatív módszer esetén a cd paramétere nem kezdôdhet a / jellel. A UNIX-ban használatos jelek és jelentésük : .

elôzô könyvtár ( érdemes megnézni a linkek számát ! ) . ~ aktuális könyvtár home ( az /etc/passwd megfelelô mezôje ) könyvtár Ha a CD parancsot paraméter nélkül hívjuk meg, akkor a kiindulási könyvtárunkba jutunk. 5.14 Katalógusok létrehozása : mkdir Az mkdir után több nevet is megadhatunk, létrehozza az ilyen nevű alkönyvtárakat. Amennyiben egy olyan alkönyvtárat akarunk létrehozni, amelynek a szülôje sem létezik, akkor hibajelzést kapunk Ilyenkor az mkdir -p opciót kell használni. A parancs másik opciója a mmode ahol a katalógus hozzáférési jogának mode értékét lehet beállítani. 5.15 Katalógusok törlése : rmdir 66 5.1 Alapvetô általános parancsok E paranccsal csak üres katalógusok törölhetôk. Mód van a katalógus kiüresítésére, az rm -r opcióval ( lásd késôbb ! ). Az rmdir egyik opciója a -p, amelyik a katalógus file törlése után a szülôkatalógust is törli, amennyiben az üres. Ezután

üzenetet küld a displayra, hogy mi maradt meg a path-ból. A másik opció a -s, ami elnyomja a -p üzenetét. 5.16 Bejelentkezések kilistázása Erre a w, a who, illetve a finger valamint a users parancsok szolgálnak. ( Példák : lásd késôbb ! ) 5.17 Lemezkihasználtság kilistázása Ezt a műveletet a df parancs hajtja végre. 67 5. A LINUX parancsai I Példák az 5.1 alfejezethez 1. példa A /home/zsuzsi alkönyvtárból kiindulva hozzuk létre a következô struktúrát : /home/zsuzsi cprog script szoveg prg doc prog doc kesz proba A script/doc alkönytárból lépjünk át a cprog/doc alkönyvtárba, elôször relatív, majd abszolút módon ! Megoldás : mkdir -p cprog/prg cprog/doc -p script/prog script/doc -p szoveg/kesz szoveg/proba Relatív mód : Abszolút mód : cd .//cprog/doc cd /home/zsuzsi/cprog/doc 2. példa A szoveg nevű alkönyvtárban vagyunk. Töröljük a proba nevű alkönyvtárat ! Feltételeztük, hogy a proba alkönyvtár üres !

Megoldás : rmdir proba 68 5.2 Alapvetô file kezelô parancsok 3. példa Kérjünk teljes listát az aktuális alkönyvtárunkról úgy, hogy a file-ok inode számai is láthatóak legyenek ! Megoldás : ls -i -l vagy : ls -il 5.2 Alapvetô file kezelô parancsok 5.21 File-ok létrehozása Az egyik leggyakoribb módszer a szövegszerkesztô használata, de rövid szöveg file-t más módon is létrehozhatunk. Az egyik módszer a cat parancs átirányítással történô alkalmazása : cat > szoveg1 <ENTER> Hajra Ferencvaros ! <ENTER> Ctrl D Több UNIX parancsnak megvan az a sajátossága, hogyha nem adunk meg input file specifikációt, akkor a billentyűzetrôl várják az inputot, illetve, ha nem adunk meg output file specifikációt, akkor a displayra írják az eredményt. Az így működô programokat szűrôknek (filter) nevezzük. A másik mechanizmus az átirányítás : a bemenetet a < jellel irányíthatjuk át egy file-ba, a kimenetet pedig a >

jellel. A másik módszer az echo parancs használata, szintén átirányítással : echo Hajra Ferencvaros ! > szoveg2 <ENTER> A harmadik lehetôség valamelyik szövegszerkesztô (ed, sed, vi) használata. 5.22 File-ok megtekintése : cat A képernyôn történô megjelenítésre szintén a cat parancs szolgál. A parancs a paraméterként megadott fileneveket, ezek hiányában a 69 5. A LINUX parancsai I billentyűzetrôl, vagy pipeból érkezô adatokat listázza a képernyôre, tördelés nélkül. A lista megállítására a Ctrl S, újra indítására a Ctrl Q billentyű használatos - általában. (A tördelésrôl a pg ill a more használatával lehet gondoskodni; lásd késôbb !) 5.23 Szöveg kiiratása : echo Szintaktikája : echo [-ne] [string] A string tartalmazza a kiíratni kívánt szöveget, az opciók jelentése : opció és string nélkül egy soremelést hajt végre -n Az üzenet kiírása után nem emel sort -e végrehajtja a stringben

elhelyezkedô -sel jelzett karaktereknek megfelelô műveletet. Példa : # Üzenet kiírása új sorral és csengetéssel az üzenet elején # és végén bash$ echo -e " akkkkkkkkkkkkkkkka " kkkkkkkkkkkkkkkk # Ez a parancs nem hajtja végre a ill. a karaktereket, # hanem kiírja ôket. bash$ echo " akkkkkkkkkkkkkkkka " akkkkkkkkkkkkkkkka 5.24 File-ok átnevezése : mv Az mv ( move ) paranccsal valójában nem a file-t mozgatjuk, csak a katalógus bejegyzését cseréljük ki. Alapesetben az mv-nek két paramétere van : az elsônek megadott file-t, a másodiknak megadott nevűre nevezi át. Amennyiben a másodikként megadott paraméter katalógusnév, akkor az elsô paraméterben megnevezett file-t változatlan névvel - ezen katalógus alá helyezi a rendszer. Kettônél több paraméter esetén, az utolsót tekinti cél katalógusnak a UNIX és a többi argumentumban megnevezett fileok-at ezen katalógus alá helyezi át. 70 5.2 Alapvetô file

kezelô parancsok Az mv-nek két opciója van : -i jelenti az interaktív módot (rákérdezés), ill. a -f esetén engedélyezi az írásvédett célparaméter felülírását Példa : mv c prog2.c c prog1c 5.25 File-ok másolása : cp Ha a cél file az aktuális katalógus, akkor a . -tal hivatkozhatunk rá A cp parancs működése annyiban hasonló az mv parancséhoz, hogy file-t itt is fileba másol, ill. ha a céltárgy katalógus, akkor ez alá helyezi a forrás fileok-at. A cp opciói a következôk : az -i itt is interaktív másolást jelent, a -p megôrzi és örökití az eredeti file hozzáférési jogait, és utolsó módosítási idejét, a -r esetén pedig, ha a forrásálomány katalógus, akkor a benne lévô alkatalógusokat is másolja amennyiben a célállomány is katalógus. Példák : A dokument ill. dok 01 file-ok a /home/zsuzsi/szoveg/kesz - ben vannak ! cp dokument .//script/doc cp dok 01 /home/zsuzsi/script/doc # Relatív # Abszolút # Az aktuális

könyvtárba másoljuk a *.c fileokat, már # létezô file esetén felülirásra történô rákérdezéssel : cp -i cprog/prog/*.c . cp proba1.c cprog # Másolás a cprog nevű katalógusba 5.26 File-ok törlése : rm Az rm (remove) parancsnak több paramétert is megadhatunk, ezeket mind törli. A UNIX-ban, ha egy file-t töröltünk, akkor attól örökre el is búcsúzhatunk. A legújabb UNIX rendszerekben már létezik a visszaállítás ( Quick Unerase ). Az rm opciói : -f hatására az írásvédett fileok is törlôdnek, -i az interaktív opció, -r hatására a katalógusból rekurzívan törlôdnek a benne lévô állományok és alkatalógusok. Igy lehet kiüresíteni és törölni egy nem üres katalógust ! Példák : rm nemkell.txt # Egyszerű törlés 71 5. A LINUX parancsai I # A proba alkönyvtár törlése, a tartalmával együtt. A # proba fölött egy szinttel el helyezkedô alkönyvtárban # vagyunk : rm -r proba 5.27 Láncok létrehozása ( linkelés

) : ln A linkelés arra szolgál, hogy egy állományra több néven is lehessen hivatkozni (lásd 4.5 ) Az ln elsô paramétere a forrás file, a második paramétere a lánc név, amellyel késôbb a forrás file-ra hivatkozhatunk. Soft link-et szintén az ln paranccsal hozhatunk létre, de alkalmazni kell a -s opciót ! Az ln további opciója a -f, melynek jelentése megegyezik az elôzôekben leírtakéval : lásd : 5.26 pont A cp, az ln és az mv maguk is hard link-kel készültek, és az argv[0] mutatja meg a UNIXnak, hogy melyiket hívtuk meg a három közül. 5.28 File megtekintése másképpen : more, pg A more képernyôlapokra tördelve jelenít meg egy file-t a képernyôn. Több állománynév is megadható. <ENTER>-re soronként ír, <SPACE>-re oldalanként. B - re visszalapoz egy oldalt Igen sok opciójuk van ! Példa : ls -l | more # Teljes lista, képernyô laponként 5.29 File sor-, szó ill karakterszáma : wc Alapértelmezésben mindhárom jellemzô

értékét kiírja. Opciói : -l esetén csak a sorok, -w esetén csak a szavak ill. -c esetén csak a karakterek számát írja ki. Példák : wc szoveg.txt # Kiírja, hogy hány sorból, szóból # ill. karakterbôl áll a szovegtxt # nevű file. users | wc -c # Kiirja, hogy hányan jelentkeztek # be 5.210 File elejének ill végének megtekintése : tail Szintaktikája : tail [ +- [number] ] [ lbc ] [f] [file] . Az opciók jelentése a következô : 72 5.2 Alapvetô file kezelô parancsok +,- -lbc -f a + az állomány elejétôl számított number sortól kezdi a kiírást, a - (default) a végétôl. Default szerint a kiirandó sorok száma 10. Ezt a number-rel lehet változtatni a sor, blokk ill. karakter szerinti megadásra vonatkozik a kiírás után megnézi, hogy az állomány nem bôvült-e idôközben. Amennyiben igen, akkor az új sorokat is kiírja Példák : tail abc.c tail -3 abc.c tail +3 abc.c # Az abc.c utolsó 10 sorát írja ki # Az abc.c utolsó 3

sorát írja ki # Az abc.c -t írja ki, kivéve az elsô # 3 sorát tail -20c abc.c # Az abc.c utolsó 20 karakterét írja # ki 5.211 File tartalma típusának meghatározása : file A parancs legfontosabb opciói : -f ánév hatására a vizsgálandó file neveket az ánév állományból veszi, -L hatására soft link esetén magát a file-t vizsgálja, -mmáll esetén az /etc/magic állomány helyett a máll állományt használja. Példa : file abc.c # Kiirja, hogy : c program text 5.212 File-ok rendezése : sort A sort egy állomány sorait rendezi. Alapértelmezésben a sorokat a standard inputról várja és az eredményt standard outputra küldi . A sort szintaktikája a következô : sort [-cmu][-ooutput] [-dfiMnr] [-btx] [+-m[.n] [bdfinr ]] [file] A legfontosabb opciók jelentése a következô : -c -m -u -ooutput -d -f ellenôrzi, hogy az állományok már rendezve vannake. a már külön-külön rendezett állományokat összefésüli az egyenlônek talált

sorokból csak egyet ír ki a standard output helyett az output-ba írja ki az eredményt szótári sorrend : csak a nagy- és kisbetűk, ill. az elválasztó karakterek számítanak a kisbetűk nagybetűknek számítanak 73 5. A LINUX parancsai I -i -M -n -r -b +m[.n][bdfinr] tx -m[.n][bdfinr] Példa : az ASCII tartományon kívüli karakterek nem számítanak hónapok szerinti hasonlítás ( három nagybetűs név ) aritmetikai értékek szerinti hasonlítás fordított sorrendű rendezés a rendezési kulcsból elmaradnak az elválasztó karakterek a rendezési kulcs elsô pozícióját adja meg. A +mn az m-edik mezô n-edik karakterét adja meg. Több kulcsot is megadhatunk, ilyenkor a rendezés hierarchikus lesz. Az opciók lehetnek globálisak, de kulcsonként is adhatunk meg opciókat. az x lesz a mezôelválasztó karakter a rendezési kulcs utolsó karakterének pozíciója Hozzunk létre egy ftc2 nevű file-t : lipcsei simon albert Rendezés az rftc2 nevű file-ba :

sort -orftc2 < ftc2 5.213 Megegyezô sorok szűrése : uniq A parancs arra a célra szolgál, hogy az egymásután következô azonos sorokat kiszűrje az inputból és így minden sort csak egyszer jelenítsen meg a kimeneten. Éppen ezért, ha az állományunkban több helyen szétszórva - fordul elô ugyanaz a sor, és nem egymásután, akkor a uniq használata elôtt célszerű sorba rendezni az állományt. Szintaktikája a következô : uniq [ - [udc] ] [-n] [+n] [ infile [outfile] ] Az opciók jelentése a következô : -u -d -c -n +n csak a többszörösen elôforduló sorok egy példányát jeleníti meg minden sor elé kiirja, hogy hányszor szerepel a szövegben az elsô n mezôt figyelmen kívül hagyja az összehasonlításnál az elsô n karaktert figyelmen kívül hagyja az összehasonlításnál Példa : 74 csak az egyedi sorokat jeleníti meg a kimeneten cat uniqtext # ezt az állományt fogjuk szűrni aaa bbb aaa 5.2 Alapvetô file kezelô parancsok aaa

ccc xyy zyy uniq -c uniqtext #egymásutáni azonos sorok számlálása 1 aaa 1 bbb 2 aaa 1 ccc 1 xyy 1 zyy 5.214 Szövegminta keresése file-ban : grep A keresett mintát az ún. reguláris kifejezések felhasználásával lehet megadni. A grep szintaktikája : grep [ -cilnv ] < minta > [file] Az opciók jelentése a következô : -c -i -l -n -v csak a mintát tartalmazó sorok számát írja ki a nagy és kisbetűket azonosként kezeli csak azon állományok nevét írja ki, ahol a minta szerepel a talált sorokat sorszámukkal együtt írja ki azokat a sorokat írja ki, amelyek nem tartalmazzák a mintát A grep parancsot gyakran használjuk pipeok - ban ! Példák : grep lipcsei ftc1 # Kiírja az ftc1 azon sorait, ahol a # lipcsei minta szerepel users | grep zsuzsi # Megnézi, hogy a zsuzsi nevű fel# használó bejelentkezett-e 5.215 Állományok mezôinek kivágása : cut Az elôzôekben ismertetett grep parancs segítségével sorokat tudunk kiválasztani egy

szöveges álományból. A cut parancs arra használható, hogy az állomány soraiból bizonyos mezôket (oszlopokat) tudjunk 75 5. A LINUX parancsai I kiválasztani.Ezt kétféleképpen tehetjük meg : vagy karakter-, vagy mezôpozíció(ka)t adunk meg. A karakterpozíciós megadás szintaktikája a következô : cut -clista [állomány . ] A mezôpozíciós megadás szintaktikája a következô : cut -flista [-dkarakter] [-s] [állomány . ] A fôbb opciók jelentése a következô : -clista -flista -dkarakter -s a lista mondja meg, hogy mely karakterpozíciókat kell kivágni - azaz megjeleníteni - az állományból. a lista mondja meg, hogy mely mezôket kell kivágni a karakter lesz a mezôelválasztó. Az alapértelmezés a szóköz, vagy a tabulátor a mezôelválasztó nélküli sorokat nem engedi outputra A -c ill. a -f közül valamelyiknek szerepelnie kell ! A lista lehet vesszôvel elválasztott felsorolás, kötôjellel elválasztott tartománymegadás, vagy a

kettô kombinációja. Példa : cat szov aaa bbb ccc ddd eee fff xxx yyy zzz # Megtekintjük a szov tartalmát cut -c1,5,9-11 szov # Kivágjuk az 1., az 5 ill a 9-tôl abccc # 11.-ig terjedô karaktereket defff xyzzz 5.216 Két file összehasonlítása : cmp Csak akkor ad outputot, ha különbséget talál. Ebben az esetben az eltérés helyének byte és sorszámát is kijelzi. Szintaktikája : cmp [-s] file1 file2 A visszatérési értékek jelentése : 0 ha a két file azonos 1 ha különböznek 76 5.2 Alapvetô file kezelô parancsok 2 ha a parancsargumentum hibás vagy nem érhetô el. A -s opció hatására csak a visszatérési értéket írja ki. Példa : Hozzuk létre az ftc1 nevű file -t : lipcsei lisztes albert Összehasonlítás : Üzenet : cmp ftc1 ftc2 ftc1 ftc2 differ : char 9, line 2 5.217 Két ASCII file összehasonlítása : comm Kezdôbetűik szerint alfabetikus sorrendbe rendezett ASCII file-ok esetében, külön-külön oszlopokban kiírja, a csak az

elsô , csak a második ill. mindkét fileban szereplô sorokat Szintaktikája : comm [ - [123] ] file1 file2 Mindegyik szám a megfelelô oszlop kiírását tiltja le. Kombinálhatók ! Példa : A 5.212 ( 70 oldal ) - ben leírtak szerint rendezzük az ftc1 nevü file-t az rftc1 nevű file-ba. Ezekután tekintsük meg mindkét rendezett file-t : cat rftc1 albert lipcsei lisztes cat rftc2 albert lipcsei simon Majd végezzük el az összehasonlítást a comm - mal : comm rftc1 rftc2 Az eredmény : albert lipcsei lisztes 77 5. A LINUX parancsai I simon 5.218 Két ASCII file különbsége : diff Szintaktikája : diff [ -bh ] file1 file2 A visszatérési értékek jelentése megegyezik a 5.216-ban leirtakéval A fontosabb opciók jelentése : -b -h a sorkezdô és egyéb blank karaktereket nem veszi figyelembe az összehasonlításnál nagy méretű állományok gyors összehasonlítására szolgál, de csak kis változásokat tud nyomonkövetni. Az -e nem érvényes ilyenkor !

Példa : Hasonlítsuk össze az ftc1 és az ftc2 filok-at : diff ftc1 ftc2 Üzenet : 2c2 < lisztes --> simon Ez az üzenet azt jelenti, hogy az elsônek megadott file második sora ( lisztes ) megváltozik a második file második sorában (simon). 5.219 Karakterkonverzió : tr A parancs szintaktikája : tr [ -cds ] [string1] [string2] Az inputbeli és a string1-ben - adott pozíción - megtalálható karaktert kicseréli a sting2 azonos pozícióján lévô karakterrrel. Ha string2 rövidebb mint string1, akkor az utolsó karakter többszörözôdik. Az opciók jelentése a következô : -c -d -s azok a karakterek vesznek részt a cserében amelyek nem szerepelnek a string1-ben a string1-ben szereplô karaktereket törli az inputból a string2-ben többször szereplô karaktereket egyszer írja ki Példa : 78 tr -s " " " " < szov 5.2 Alapvetô file kezelô parancsok # A szov file-ban a szóközöket tabulátorokra cseréljük, ha # több

tabulátor fordul elô egymásután, akkor csak egyet # iratunk ki az outputra. 5.220 File keresése : find Az elsô arumentumban megadott katalógusból kiindulva rekurzív módon végigjárva a katalógusokat, megkeresi az adott attribútumu file-t. Szintaktikája : find útvonal kifejezés[ek] A find-nak rengeteg opciója van, melyek az adott rendszer man-jában megtalálhatók. A név szerinti keresés opciója : -namefile Akkor igaz, ha a file ráiilik az aktuális állománynévre. A metakarakterek használhatók ! Példák : find * -inum 159695 find * -links 3 find *.c -name proba* find * -perm 664 # Az 159696-ös inode számú # file keresése az aktuális # könyvtárban # Azon file-ok keresése ame# lyek link száma 3 # C kiterjesztésű fileok kere# sése, melyek nevében szere# pel a proba # Az rw-rw-r-- jogokkal ren# delkezô file-ok keresése 5.221 Csövek ( pipe-ok ) elágaztatása : tee Szintaktikája a következô : tee [-a] állománynév A tee a bemenetét a

standard inputról veszi, de kimenetét két helyre küldi : egyrészt a standard outputra, másrészt a paramétereként megnevezett állományba. A -a opció hatására a kimeneti állományt nem írja felül, hanem hozzáfűzi az újabb kimeneti adatokat. Példa : ls -l | tee temp # Az alkönyvtár listája megjelenik a # képernyôn ill. kiíródik a temp nevű # file-ba 5.222 Parancs végrehajtás késleltetése : sleep 79 5. A LINUX parancsai I Szintaktikája : sleep szám[smhd] Alapértelmezés szerint annyi másodpercig szünetelteti a parancs végrehajtást, amennyit a szám-ban megadunk. Az s másodpercben, az m percben, a h órában ill. a d napban jelenti a késleltetést Példa : ls -l ; sleep 30 ; users # Katalóguslista, majd 30 mp # után a bejelentkezett sze# mélyek listája Ellenôrzô kérdések és feladatok az 5. fejezethez 01. Irjunk C programot, amelyet a késôbbiek során xxx, yyy, vagy zzz néven akarunk elindítani. A program "vegye

észre", hogy milyen néven indítottuk el, és az ennek megfelelô üzenettel térjen vissza ! Milyen műveletek szükségesek a feladat megoldásához ? 02. Számoljuk meg, hogy hány file van az aktuális katalógusunkban ! 03. Számoljuk meg, 1 perc múlva hányan lesznek bejelentkezve ! 04 Irassuk ki azon állományaink nevét, melyek ascii típusúak ! 05 Hozzunk létre egy 6x3-as mátrixot , és rendezzük le 2.oszlopa szerint ! 06 Adva vannak az rftc1 ill. rftc2 file-ok, kezdôbetű szerint rendezve Tekintsük meg ôket, majd fésüljük össze a két file-t az rftc1 2 file-ba úgy, hogy megengedjük az azonos nevek többszörös elôfordulását. Ezután végezzük el az összefésülést úgy is, hogy az azonos nevek csak egyszer fordulajnak elô. Ez esetben a file neve : urftc1 2 ! 07. Listázzuk ki az alkönyvtárunkat file név szerint rendezve ! 08. Irassuk ki a képernyôre és ezzel egyidejűleg egy felhasznalo nevű fileba is, hogy kik vannak

bejelentkezve a rendszerbe ! 80 Ellenôrzô kérdések és feladatok az 5. fejezethez 09. Irassuk ki a uniqtext állomány sor elôfordulásainak számát, nagyság szerint rendezve ! 10. Helyezzünk el a szov állomány minden szava után a szóköz helyére egy formfeed karaktert ( /f ) ! 81 6. A LINUX parancsai II Σ Ebben a fejezetben a LINUX hozzáférési jogokkal kapcsolatos parancsait és a folyamatkezelô parancsokat ismertetem, valamint megismerkedünk hasznos UNIX konstrukciókkal, úgymint : parancs csoportosítás, parancsbehelyettesítés, feltételes parancsvégrehajtás. A fejezetet a VI editor rövid leírása és az ellenôrzô kérdések zárják. 6.1 Hozzáférési jogokkal kapcsolatos parancsok 6.11 Módosítás : chmod A parancsnak kétféle használati módja van : oktális ill. szimbolikus beállítás. Az oktális beállítás alapja az, hogy a jogosultságok mind az u, mind a g ill. o esetében három bitpozíción ábrázolhatók Ennek

megfelelôen az r jog értéke 4, a w jog értéke 2 és az x jog értéke 1. Mivel három jogcsoportunk van ,ezért három oktális számmal tudjuk leírni az ugo jogokat. Ebben az esetben a parancs szintaktikája a következô : chmod [-R] perm-mode file. A három oktális számot a perm-mode helyére kell írni. A -R a rekurzív jog módosítást jelenti, tehát a megadott katalógus alatti teljes állományrendszeren módosítja a jogokat. Példa : chmod 755 cprog 1 Ez a parancs a cprog 1 file-nak a következô jogokat adja : rwxr-xr-x A szimbolikus beállítás szintaktikája : chmod [-R] who op perm file. A -R opció jelentése megegyezik az oktális beállításnál leirtakéval. A who a tulajdonosi kategóriát adja meg, lehetséges értékei : user, group, others,all. Az all kategória az elôzô hármat foglalja magában 6.1 Hozzáférési jogokkal kapcsolatos parancsok Az op értékei a +, a - , és az = lehetnek. A + a megfelelô jog engedélyezését jelenti, a -

pedig a letiltását Az = a jog abszolút beállítását teszi lehetôvé. A + és a - használata esetén, azok a jogok amelyekrôl nem rendelkezünk, érintetlenek maradnak. Az = használata esetén azok a jogok amelyekrôl nem rendelkezünk, azok letiltódnak. A perm értékei az r, w, x ( read, write, execute ) lehetnek. Az állományok hozzáférési jogait csak a tulajdonosa és a rendszergazda tudja megváltoztatni, még akkor is, ha az állomány más személyek által is írható. Ennek az az oka, hogy a módosítás az inode szinten megy végbe. Példák : chmod u + x cprog 2 Ez az utasítás a cprog 2 file tulajdonosának végrehajtási jogot ad, a többi jogot változatlanul hagyja. chmod +x cprog 3 Ez az utasítás mind a tulajdonosnak, mind a csoportnak, mind a többieknek végrehajtási jogot engedélyez, a cprog 3 file-ra vonatkozóan. Létezik még egy speciális jogosultság : az s jog (set-uid, vagy set -gid ). Ez azt jelenti, hogy az adott programot futtató

személy - bárki legyen is az - a futtatás idejére a tulajdonos jogaival fog rendelkezni, amennyiben az s a user jogcsoportnál szerepel. Amenyiben az s a group jogcsoportnál szerepel, úgy a futtató személy a tulajdonos csoportjának jogaival fog rendelkezni - a futtatás idôtartama alatt. 6.12 Tulajdonosváltás : chown Lehetôség van arra, hogy az általunk birtokolt állomány tulajdonosát megváltoztassuk. A chown szintaxisa a következô : chown [-R] tulaj név A tulaj az új tulajdonos nevét jelenti, a név pedig azt, hogy melyik állományra, vagy katalógusra vonatkozik a tulajdonos váltás. Ezt a műveletet a tulajdonoson kívül a superuser is végrehajthatja. A parancs másik alakja : 81 6. A LINUX parancsai II chown [-R] tulaj:csoport név Ebben az esetben a csoport tulajdonjogot adhatjuk át. Az új tulajdonos a csoport lesz. A [-R] opció mindkét esetben a rekurziót jelenti. 6.13 Csoportváltás : chgrp A csoportváltást szintén a tulajdonos és a

superuser hajthatja végre. Szintaxisa a következô : chgrp [-R] csoport név A csoport az új csoport lesz, a név jelentése ugyanaz mint a chown esetén. Vigyázat : Amennyiben egy állományunk csoport, vagy tulajdonosi jogát átadtuk, azt már nem vehetjük vissza. Csak az új tulajdonos ad hatja vissza ôket ! ( Vagy a superuser ) 6.14 Másodlagos csoportok : newgrp Az újab UNIX rendszerek esetében mód van arra, hogy egy user több csoportba is tartozhasson. Ez megkönnyíti a csoportmunkát A másodlagos csoportokat a rendszergazdának kell beírnia az /etc/group nevű konfigurációs file-ba. Ha ezek után csoportot akarunk váltani, akkor a következô szintaktikát kell alkalmaznunk : newgrp newgroupname Ha és amennyiben a newgroupname egy számunkra engedélyezett csoport, úgy a következô newgrp parancs kiadásáig ebbe a csoportba fogunk tartozni, az itteni jogokkal. Ettôl függetlenül az eredeti jogaink érvényben maradnak. Az eredeti csoportunkba a

paraméter nélküli newgrp paranccsal tudunk visszalépni. 82 6.2 Folyamatkezelés 6.2 Folyamatkezelés A UNIX-ban folyamatnak nevezzük - többek között - egy program éppen futó példányát. Elôtérfolyamat esetében nem kapjuk vissza addig a promptot, ameddig a folyamat le nem futott. Háttérfolyamat esetében visszakapjuk a promptot és egy másik parancs kiadásával foglalkozhatunk. 6.21 Háttérfolyamatok Háttérfolyamatot úgy indíthatunk, hogy a parancs(sorozat) végére az & jelet tesszük. Ilyenkor a UNIX kiír egy számot, ami nem más mint a folyamat azonosítója ( process id. ) Ezután folytathatjuk tovább a munkánkat. Példa : grep ilyennemlesz /* >. / eredmeny & A parancs az ilyennemlesz mintát keresi a gyökér állományaiban, és az eredményt az aktuális könyvtárban rögzíti eredmeny néven. 6.22 Folyamatok listázása : ps A rendszerben futó folyamatokról egyrészt a ps paranccsal kérhetünk listát. Ekkor csak a saját

folyamataink listáját fogjuk látni A ps -e részletesebb listát ad. Ha a rendszerben futó összes folyamatról akarunk listát kérni, akkor a ps -axu parancsot kell kiadnunk A ps parancs által szolgáltatott listában szereplô egész szám a folyamat azonosítója, amelynek késôbb még jelentôsége lesz ! 83 6. A LINUX parancsai II Példa : ps -axu | grep zsuzsi # Kilistázza a zsuzsi felhasz# nálófolyamatait 6.23 Folyamatok leállítása : kill Ha egy folyamat működését be akarjuk fejezni akkor a kill pid parancsot kell kiadnunk, ahol pid a folyamatazonosító. Amennyiben ez nem lenne hatásos, úgy a kill -9 pid parancsot kell alkalmaznunk ! 6.24 Folyamat elô- ill háttérbe helyezése : fg, bg Az fg %x hatására egy háttérfolyamat elôtérben fog futni, a bg %x hatására egy elôtérfolyamat a háttérben fog futni, az illetô parancs kiadása után. Az x a folyamat azonosítója, nem egyenlô a pid-del ! 6.25 Folyamat futtatása kijelentkezés után

: nohup Mód van arra, hogy egy folyamatunk akkor is fusson, ha mi már kijelentkeztünk a rendszerbôl. Ekkor a nohup parancsot kell kiadni Példa : nohup sokaigfut& # Az üzeneteit a nohup.out # file-ba küldi ! 6.26 Idôzített folyamatindítás : at Ez a parancs szolgál arra a célra, hogy elôre meghatározott idôpontban elindíthasunk egy folyamatot vagy folyamatsort Alapértelmezés szerint a futtatni kívánt folyamat(ok) listáját a standard inputról veszi. A futtatásra várakozó folyamatokat job-oknak nevezzük. Szintaktikája a következô : at [-V] [ -q queue ] [ -f file ] [ -mldbv ] TIME Az at parancshoz szorosan hozzátartoznak a következô parancsok : atq [-V] [ -q queue ] [ -v ] atrm [-V] job [ job . ] 84 6.2 Folyamatkezelés batch [-V] [ -q queue ] [ -f file ] [ -m ] TIME Az opciók jelentése a következô : -V -q queue -f file -m -l -d -b -v TIME kiírja a parancs verziószámát az alapértelmezés szerinti várakozási sortól eltérô nevet

adhatunk meg. A név az a-z ill A-Z betűk valamelyike lehet. Ezek után a megnevezett várakozási sorba kerül az illetô folyamat, és innét indul el a megadott idôpontban. a futtatandó parancs(ok) listáját a file-ból veszi a folyamat befejeztével levelet küld a felhasználónak az atq parancs megfelelôje az atrm parancs megfelelôje a batch parancs megfelelôje lefutott, de még nem törölt folyamatok listája Az idôpontot eléggé változatos formákban adhatjuk meg. A lehetséges megadási módok - többek között : hhmm vagy hh:mm ahol hh az óra mm a perc midnight, moon, vagy teatime ( délután 4 óra ) am, pm használata ( délelôtt, délután ) - - month name day [year] mmddyy vagy mm/dd/yy vagy dd.mmyy, ahol mm a hónap, dd a nap yy az évszám Relatív megadás : now + number time unit, ahol time unit jelenti azt az idôegységet, amellyel a mostani idôponthoz képest késôbb akarjuk futtatni a folyamatot. Értékei a következôk lehetnek : minutes,

hours, days, weeks. A number-rel tudjuk megadni az idôegység számát. Például : az at now + 2 minutes parancs mostantól számított 2 perc múlva indítja el a kívánt folyamatot. today, tomorrow ( mai nap ill. holnapi nap ) Megjegyzés: Elôfordulhat, hogy nem az általunk elôrt percben indul el az adott folyamat. Ennek az az oka, hogy a várakozási sort kezelô démon adott idôközönként figyeli a várakozási sort. Ha ez az idô például 5 perc, és a felhasználó 2 perc múlva akarja indítani a folyamatot, akkor elôfordulhat az, hogy a folyamat 2 percnél tovább várakozik. Az at parancs az elindításakor kiiírja, hogy melyik shell fogja a folyamatot futtani. Ha olyan folyamatot akarunk indítani, amely a standard outputra dolgozna, akkor az eredménybôl semmit nem fogunk látni. Ezért ilyenkor a m opciót, vagy az output átirányítást célszerű használni ! 85 6. A LINUX parancsai II Az at paranccsal összefüggô parancsok funkciói : atq atrm batch

kilistázza a várakozási sor tartalmát egy vagy több job-ot törölhetünk a várakozási sorból hasonló az at parancshoz, de csak akkor indítja el a folyamatot, ha a rendszer terhelése kisebb mint a LOADAVG MX változó értéke. Példa : at -q A -f fuat now + 3 minutes # A fuat tartalma: # users>uat Elhelyezi az A nevű várakozási sorban a fuat állományban lévô parancsnak megfelelô job-ot, és 3 perc mólva elindítja a folyamatot. 6.3 Hasznos UNIX konstrukciók 6.31 Parancs csoportosítás zárójelezéssel Ha két vagy több parancs eredményét akarjuk pipe-on keresztülvezetni, akkor a következôképpen járunk el : A parancs1 ; parancs2 | parancs3 konstrukció csak parancs2 kimenetét juttatja a parancs3 bemenetére. Ilyenkor alkalmazzuk a zárójelezést : ( parancs1 ; parancs2) | parancs3 Ebben az esetben a parancs1 és parancs2 együttes kimenete jut a parancs3 bemenetére ! Példa : date ; finger | wc -l # Csak a finger sorait számolja ( date ;

finger ) | wc -l # A date és a finger sorait számolja 6.32 Parancs behelyettesítés ( command substitution ) Abban az esetben, ha egy parancs argumentumlistájában egy másik parancs végrehajtására van szükségünk, parancs behelyettesítést kell alkalmaznunk : 86 6.4 A VI editor parancs1 . `parancs2` A parancs behelyettesítést az ` ` ( accent grave ) jelek használatával végezzük. Példa : echo "Most `ls -l | wc -l` file van az alkönyvtáramban !" # Az ls -l fejléce miatt 1-gyel nagyobb számot fog kiírni ! 6.33 Feltételes parancsvégrehajtás Amennyiben egy parancs végrehajtása függ a megelôzô parancs sikeres/sikertelen végrehajtásától , akkor a következôket tehetjük : parancs1 && parancs2 # parancs2 csak akkor hajtódik végre, ha parancs1 végrehajtása # sikeres volt parancs1 | | parancs2 # parancs2 csak akkor hajtódik végre, ha parancs1 végrehajtása # sikertelen volt Példa : users | grep lipcsei && date #

Kiírja a dátumot, ha lipcsei be van jelent kezve users | grep lipcsei | | date # Kiírja a dátumot, ha lipcsei nincs bejelentkezve 6.4 A VI editor 6.41 Általában A VI editor indítása : vi filenév. A VI editornak három üzemmódja van: beírás, parancs és az ex. Indításkor automatikusan parancsmódba kerülünk. A különbözô módok között az alábbi billentyűkkel lehet váltani : Parancsmódból beírás módba : Az i, I, a, A, o, O, S, R, C billentyűk valamelyikével. Az i, I az insert módot jelenti, az a, A az append módot míg az o, O az overwrite módot. Beírás módból parancsmódba : Az Esc billentyűvel. Parancsmódból ex módba : A :, /, ?, ! billentyűk valamelyikével. 87 6. A LINUX parancsai II Ex módból parancsmódba : Az ENTER billentyűvel. A VI egyik fô jellegzetessége az, hogy a szöveg beírása, és a szöveggel kapcsolatos parancsok kiadása teljesen el vannak különítve egymástól. Egy VI parancs általános formája a

következô : argumentum parancs szövegobjektum Az argumentum mondja meg, hogy a parancsot hányszor kell végrehajtani. A szövegobjektum lehet szó, mondat, sor és bekezdés A szövegobjektumok értelmezése a következô : A szó két fajta lehet. Az egyik fajta csak alfanumerikus karaktereket és jelet, a másik fajta minden látható jelet tartalmaz, kivéve a szóközt és az ENTER-t. A mondat olyan objektum, amelyet szóköz vagy soremelés elôz meg, és mondatzáró írásjel és két szóköz vagy legalább egy soremelés követ. A sor olyan objektum, amelyet az elején és végén soremelés határol. A bekezdés olyan objektum, amelyet az elején és végén üres sor határol. 6.42 Kurzormozgató parancsok h, BACKSPACE i, SPACE j k + $ 0 balra jobbra le fel le a következô sor elejére fel a következô sor elejére sor utolsó karakterére sor elsô karakterére 6.43 Pozicionáló parancsok w,W b, B 88 Következô szó elsô karakterére Elôzô szó elsô

karakterére 6.4 A VI editor ( ) { } nH M nL ^f ^d ^b ^u Mondat elejére Következô mondat végére Bekezdés elejére Következô bekezdés elejére A képernyô elsô ( n. ) sorára A képernyô középsô sorára A képernyô utolsó ( alulról az n. ) sorára Egy képernyônyit elôre görget Fél képernyônyit elôre görget Egy képernyônyit hátra görget Fél képernyônyit hátra görget 6.44 Mintakeresés /minta :s/minta1/minta2/ ?minta n N A minta elsô karakterére áll. Ismételt keresés a / - rel A minta1 cseréje minta2-re Visszafelé keresi a mintát. Ismételt keresés a ? lel Utolsó mintakeresô utasítás ismétlése Utolsó mintakeresô utasítás ismétlése, ellentétes irányban 6.45 Törlés x dw, dW d( , d) d{ , d} dd D, d$ u Aktuális karaktert Aktuális szót Kurzortól mondat elejéig ill. végéig Bekezdés elejéig ill. végéig Aktuális sort Aktuális sor kurzor mögötti részét Utolsónak kiadott parancs érvénytelenítése 89

6. A LINUX parancsai II 6.46 Szövegmozgatás, szövegmásolás Bármit törlünk a VI - ben, az belekerül egy bufferbe. A törlés után a következô két parancs valamelyikét adhatjuk ki : p P ( kicsi ) ( nagy ) A buffer tartalmát bemásolja, a kurzor mögé A buffer tartalmát bemásolja, a kurzor elé Ezzel a két paranccsal tehát szöveget tudunk mozgatni. amennyiben nem mozgatni, hanem másolni akarunk, akkor az y ( yank ) parancskódot kell alkalmaznunk, ami szintén a bufferbe helyezi a kívánt szöveget, de nem törli eredeti helyérôl ! nyw nyy n darab szót másol a bufferbe n darab sort másol a bufferbe 6.47 UNIX parancsok hívása :! parancs :r ! parancs :w ! parancs Sima parancshívás A parancs kimenete a buffer A parancs bemenete a buffer 6.48 Kilépés a VI editorból ZZ :wq :w file :q :q! Mentés és kilépés Mentés és kilépés Mentés file néven Kilépés mentésre való rákérdezéssel Kilépés mentés nélkül A VI editornak ennél sokkal

tágabbak a lehetôségei, de egy egyszerű működtetéshez a felsorolt parancsok elégségesek ! Ellenôrzô kérdések és feladatok a 6. fejezethez 01. 90 Indítsuk el háttérfolyamatként azt az utasítássorozatot, amely kiírja, hogy 30 másodperc múlva milyen folyamatok fognak Ellenôrzô kérdések és feladatok a 6. fejezethez futni a rendszerben ! 02. Mi a különbség a három parancs között : 1.) 2.) 3.) echo ps | wc -l echo ps | wc -l echo `ps | wc -l` 03. Irassuk ki az zsuzsi nevű felhasználó folyamatait, de csak akkor, ha be van jelentkezve ! 04. Irassuk ki a képernyôre a következô szöveget : Jelenleg xxx folyamat fut a rendszerben ! Az xxx helyén a folyamatok tényleges darabszáma szerepeljen ! 05. Hogyan lehet megállapítani, hogy hány “c program text” típusú file van az aktuális alkönyvtárunkban ? 91 7. Bevezetés a shell programozásba, a bash Ez a fejezet a Bourne Again SHell rövid ismertetése. Elôször a shell

metakaraktereit ismertetem, majd egy shell program elindításának lehetôségeit. Ezt követi a vezérlési szerkezetek valamint az expr és a test parancs tárgyalása. Ezután példaprogramok következnek A fejezetet ellenôrzô kérdések zárják. 7.1 Alapvetô tudnivalók A bash a Bourne Again SHell kifejezés kezdôbetűibôl ered . 7.11 Speciális karakterek ( metakarakterek ) ? * [] # Joker karakter egyetlen karakterpozicióra Joker karakter több karakterpozicióra Karakter tartomány egyetlen pozicióra Megjegyzés A metakaraktereket szükség esetén a , az " " ill. a jelekkel lehet levédeni a shell elôl ! Példa : Egy > jelet akarunk megjeleníteni a képernyôn. echo >Hiba, echo > echo ">" echo > mert output átirányítást vár a UNIX A levédés egyik lehetôsége A levédés másik lehetôsége A levédés harmadik lehetôsége 7.12 Egy shell program elindításának lehetôségei Legyen a shell programunk neve uc ( user

count ), és legyen az a feladata, hogy megszámolja, hogy hányan jelentkeztek be a rendszerbe: echo users | wc -w > uc Fontos : Ha nem alkalmaznánk a zárójelpárt, akkor az uc-be 1 kerülne ! Miért ? ∑ 7. Bevezetés a shell programozásba, a bash Ezekután az uc-t a következôképpen indíthatjuk el a bash alatt : 1.) bash uc # A bash bemenô paramétere az uc 2.) bash < uc # A bash a bementét az uc nevű file-ból # vegye 3.) chmod u+x uc uc # Végrehajtási jog az uc - nek # Az uc önálló programként történô indítása 7.13 A shell program pozicionális változói A shell program pozicionális változói alatt azon bemenô paramétereket értjük, amelyekkel a shell programot elindítottuk. A programban a $ jellel és egy sorszámmal hivatkozhatunk a pozicionális változókra. A sorszám alapesetben 1-tôl 9-ig terjedhet. Néhány kitüntetett változó : $0 $1 . $9 $# $*, @ :a program neve :a pozicionális változók értékei : a

pozicionális változók száma, $0-át kivéve : hivatkozás az összes pozicionális változóra, : $0-át kivéve 7.14 A shell program vezérlési szerkezetei Az if szerkezet if command list1 then command list2 elif-part fi 92 ahol elif-part: elif command list then command list elif-part vagy else command list : 7.1 Alapvetô tudnivalók A case szerkezet case word in case-part esac ahol case-part : pattern ) command list ;; Természetesen több pattern-t (mintát) adhatunk meg. Működése hasonló a C-ben megismert switch utasításéhoz. A for szerkezet for name in word list do command list done A while szerkezet while command list1 do command list2 done Az until szerkezet until command list1 do command list2 done 7.15 Az expr parancs használata Az expr parancsot használhatjuk egyrészt aritmetikai kifejezés kiértékelésére, másrészt feltételes kifejezés kiértékelésére. Ügyelni kell arra, hogy bizonyos műveleti jeleket mint például *, <, > ,

stb. amelyek a shell számára külön jelentéssel bírnak - , le kell védeni a shell elôl, például a használatával ! Ügyelni kell arra is, hogy a bármely műveleti jelet egy szóköz elôz meg, és egy szóköz követ ! Példa : Aritmetikai kifejezés kiértékelése : Feltételes kifejezés kiérékelése : a=`expr 10 * 2` expr 10 > 0 echo $? 93 7. Bevezetés a shell programozásba, a bash # Exit változó Az expr parancs használata során alkalmazható műveleti jelek : +, -, *, /, %. A relációs jelek a következôk lehetnek : >, >=, <, <=, =, !=. Az expr parancs használatának további lehetôségei : expr1 | expr2 expr1 & expr2 # Ha expr1 nem nulla és nem nullstring, # akkor azt adja vissza, egyébként expr2 - t. # Ha expr1 nulla vagy nullstring, akkor azt # adja vissza, egyébként expr2 - t. 7.16 A test parancs használata Kifejezéseket a test parancs használatával is kiértékelhetünk, de ezen kívül még másra is használatjuk

ezt a parancsot : ( Rövídítése : [ . ] ) File létezés vizsgálat : test -w file test -r file test -x file test -f file test -d file test -c file # Igaz, ha file létezik és írható # Igaz, ha file létezik és olvasható # Igaz, ha file létezik és végrehajtható # Igaz, ha a file létezik és reguláris # Igaz, ha file létezik és katalógusállomány # Igaz, ha file létezik és karakteres készülék# állomány # Igaz, ha file létezik és blokkos készülék# állomány # Igaz, ha file létezik és mérete nagyobb mint # nulla test -b file test -s file String vizsgálata : test -z s1 test -n s1 test s1 = s2 test s1 != s2 test s1 # Igaz, ha s1 string hossza nulla # Igaz, ha s1 string hossza nagyobb mint nulla # Igaz, ha s1 és s2 stringek azonosak # Igaz, ha s1 és s2 stringek nem azonosak # Igaz, ha s1 nem null-string Aritmetikai kifejezés : test n1 -eq n2 test n1 -ne n2 test n1 -gt n2 test n1 -ge n2 94 # Igaz, ha # Igaz, ha # Igaz, ha # Igaz, ha n1 = n2 n1

<> n2 n1 > n2 n1 >= n2 7.2 Egyszerű shell példaprogramok test n1 -lt n2 test n1 -le n2 # Igaz, ha n1 < n2 # Igaz, ha n1 <= n2 Az aritmetikai kifejezések kombinálhatók a következô operátorokkal : : Unáris negáló operátor : VAGY operátor : ÉS operátor : Zárójelezés a kiértékelési sorrend megváltoztatásához Ha az a egy változó, akkor az értékére a következôképpen hivatkozhatunk egy shell programban : $a. Így például az a és b változók egyenlôségét a következôképpen vizsgálhatjuk : test $a -eq $b vagy [ $a -eq $b ]. ! -o -a (expr) 7.2 Egyszerű shell példaprogramok 04. sz példaprogram A program a bemenô paraméteréül megadott egész számról döntse el, hogy páros vagy páratlan, és az ennek megfelelô üzenettel térjen vissza! Megoldás : # A program neve : parose if expr $1 \% 2 = 0 then echo "Paros" else echo "Paratlan" fi Próbáljuk meg többféleképpen elindítani a programunkat !

Tételezzük fel, hogy bash alatt dolgozunk ! 05. sz példaprogram Irjunk programot, amelyet két egész számmal, mint bemenô paraméterrel indítunk el. A program döntse el, hogy az elsô paraméter nagyobb-e vagy kisebb mint a második, esetleg egyenlôek-e ! 95 7. Bevezetés a shell programozásba, a bash Megoldás : if test $1 -gt $2 then echo "$1 nagyobb $2" elif test $1 -lt $2 then echo "$1 kisebb $2" else echo "$1 egyenlo $2" fi 06. sz példaprogram Irjunk programot, amely a bemenô paraméterként megadott C programok utolsó 10 sorát kilistázza, vár 5 másodpercet, majd a következô program utolsó 10 sorát listázza egész addig, ameddig a paraméterben megadott felsorolás végére nem jut ! Legyen a program neve ltl. Például : ltl *.c vagy ltl proba1c proba2c proba3c Megoldás : for i do tail $i ; sleep 2; clear; done 07. sz példaprogram Irjunk programot, amely eldönti, hogy a bemenô paramétereiben szereplô három egész

szám mindegyike pozitív-e ! Megoldás : 96 7.2 Egyszerű shell példaprogramok if test $1 -gt 0 -a $2 -gt 0 -a $3 -gt 0 then echo "Mindharom pozitiv" fi 08. sz példaprogram Irjunk progamot, amely megállapítja, hogy a bemenô paraméterében megadott file létezik-e, és rendelkezik-e az rwx jogokkal ! Megoldás : if test -r $1 && test -w $1 && test -x $1 then echo "Van ilyen !" else echo "Nincs ilyen !" fi 09. sz példaprogram Irjunk programot, amely a második paraméterében megadott file-ról eldönti, hogy rendelkezik-e az elsô paraméterben megadott jogokkal ! Megoldás : case $1 in -rw) if test -r $2 && test -w $2 then echo "RW -> Van ilyen !" else echo "RW -> Nincs ilyen !" fi;; -rx) if test -r $2 && test -x $2 then echo "RX -> Van ilyen !" else echo "RX -> Nincs ilyen !" fi;; -wx) if test -w $2 && test -x $2 97 7. Bevezetés a shell

programozásba, a bash then echo "WX -> Van ilyen !" else echo "WX -> Nincs ilyen !" fi;; -rwx)if test -r $2 && test -w $2 && test -x $2 then echo "RWX -> Van ilyen !" else echo "RWX -> Nincs ilyen !" fi;; -h ) echo " Usage : tp5 -[r][w][x] filename !";; esac 10. sz példaprogram Irjunk programot, amely az aktuális alkönyvtárból kilistázza a paraméterében megadott jogokkal rendelkezô állományokat ! Megoldás : if test $# -eq 0 then echo "Hianyzo attributum parameter !" echo "Hasznalat : attrib -[r][w][x]" else case $1 in -rw) for i in * do if test -r $i && test -w $i then echo $i fi done;; -rx) for i in * do if test -r $i && test -x $i then echo $i fi done;; -wx) for i in * do if test -w $i && test -x $i 98 7.2 Egyszerű shell példaprogramok then echo $i fi done;; -rwx) for i in * do if test -r $i && test -w $i && test -x $i then

echo $i fi done;; esac fi 11. sz példaprogram Irjunk programot, amely a paraméterében megadott alkönyvtárból kilistázza a végrehajtható állományokat ! Amennyiben nem adunk meg paramétert, úgy az aktuális alkönyvtárból listázzon ! A lista végén térjünk vissza a kiindulási alkönyvtárba ! Megoldás : if test -n $1 then cd $1 fi for i in * do if test -x $i then echo $i fi done cd 12. sz példaprogram Irjunk programot, amely a bemenô paraméteréül megadott számjegyet kiírja szövegesen ! A szám negatív is lehet ! Megoldás : 99 Ellenôrzô kérdések és feladatok a 7. fejezethez if test $# -eq 0 then echo "Hiányzó paraméter !" echo "Hasznalat : azaz1 [-]egyjegyu szam" else n=$1 if [ $n -lt 0 ] then echo -e "minusz c" n =`expr $1 * -1` fi case $n in 0) 1) 2) 3) 4) 5) 6) 7) 8) 9) esac echo echo echo echo echo echo echo echo echo echo "nulla";; "egy";; "ketto";; "harom";;

"negy";; "ot";; "hat";; "het";; "nyolc";; "kilenc";; fi Ellenôrzô kérdések és feladatok a 7. fejezethez 01. Ismertesse a bash tanult metakaraktereit ! 02. Hányféleképpen “védhetünk le “ egy speciális karaktert a shell elôl ? 03. Milyen lehetôségei vannak egy shell program elindításának ? 04. Mit kell tudni a shell program pozicionális változóiról ? 05. Ismertesse az if szerkezetet és működését ! 06. Ismertesse a case szerkezetet és működését ! 07. Ismertesse a for szerkezetet és működését ! 08. Ismertesse a while szerkezetet és működését ! 100 7.2 Egyszerű shell példaprogramok 09. Ismertesse az until szerkezetet és működését ! 10. Mit kell tudni az expr parancs használatáról ? 11. Ismertesse a test parancs használatát file létezés vizsgálat esetén ! 12. Ismertesse a test parancs használatát string vizsgálat esetén ! 13. Ismertesse

a test parancs használatát aritmetikai kifejezés vizsgálat esetén ! 14. Mely logikai operátorokkal kombinálhatók az aritmetikai kifejezések ? 15. Irjunk programot, amely a paraméterében megadott alkönyvtárból kilistázza a fileneveket és a file típusát ! Amennyiben nem adunk meg paramétert, úgy az aktuális alkönyvtárból listázzon ! A lista végén térjünk vissza a kiindulási alkönyvtárba ! 16. Irjunk programot, amely kilistázza az aktuális alkönyvtárból a csak olvasható állományokat ! 17. Irjunk programot, amely cak a katalógusokat listázza ki a paraméterében megadott alkönyvtárból ! Amennyiben nem adunk meg paramétert, úgy az aktuális alkönyvtárból listázzon ! A lista végén térjünk vissza a kiindulási alkönyvtárba ! 101