46
Operációs Rendszerek I. Ismerkedés a parancssorral Fájlkezelés parancssorból Egyszerű parancsfájlok

Operációs Rendszerek I

  • Upload
    scott

  • View
    27

  • Download
    0

Embed Size (px)

DESCRIPTION

Operációs Rendszerek I. Ismerkedés a parancssorral Fájlkezelés parancssorból Egyszerű parancsfájlok. A parancssor (cmd). Jellemzői Majd minden OR alatt van valami hasonló Használata esetenként gyorsabb, mint a GUI alapú megoldásoké Lehet scriptet írni - PowerPoint PPT Presentation

Citation preview

Page 1: Operációs Rendszerek I

Operációs Rendszerek I.

Ismerkedés a parancssorralFájlkezelés parancssorbólEgyszerű parancsfájlok

Page 2: Operációs Rendszerek I

A parancssor (cmd)A parancssor (cmd)

JellemzőiJellemzőiMajd minden OR alatt van valami Majd minden OR alatt van valami hasonlóhasonlóHasználata esetenként gyorsabb, mint a Használata esetenként gyorsabb, mint a GUI alapú megoldásokéGUI alapú megoldásokéLehet scriptet írniLehet scriptet írniKevesebb erőforrás igény (mint GUI Kevesebb erőforrás igény (mint GUI esetén)esetén)Van history (előzmények)Van history (előzmények)

• könnyebb parancsot ismételnikönnyebb parancsot ismételni• log is egybenlog is egyben

Parancsok és kapcsolók Parancsok és kapcsolók pontos pontos szintaxisátszintaxisát ismerni kell (de…) ismerni kell (de…)

Page 3: Operációs Rendszerek I

A parancssorA parancssor

indítása: futtatás indítása: futtatás cmd cmd

Indulási könyvtár: indítás helye / Indulási könyvtár: indítás helye / HOMEPATHHOMEPATH

kilépés: exitkilépés: exit

navigációnavigációParancssorban mozgás: kurzor, HOME és ENDParancssorban mozgás: kurzor, HOME és END

↑ ↑ és ↓ és ↓ history history

F7 F7 parancs history „ablakban” parancs history „ablakban”

fájlnév kiegészítés: TABfájlnév kiegészítés: TAB

Teljes képernyő: bal ALT+ENTERTeljes képernyő: bal ALT+ENTER

Page 4: Operációs Rendszerek I

Ablak megjelenéseAblak megjelenése

Indítási paraméterekIndítási paraméterek/c : egyetlen (megadott) parancs végrehajtása/c : egyetlen (megadott) parancs végrehajtása/t:fg : színek beállítása (pl. 16)/t:fg : színek beállítása (pl. 16)/e:on : parancskiterjesztés engedélyezése/e:on : parancskiterjesztés engedélyezéseStb. (lásd cmd /? és HELP)Stb. (lásd cmd /? és HELP)

Címsoron jobb klikk Címsoron jobb klikk tulajdonságok tulajdonságokMűködési környezet beállításaMűködési környezet beállítása• Tippek: HELP „To configure the command prompt”Tippek: HELP „To configure the command prompt”

title parancs: ablak címének megadásatitle parancs: ablak címének megadása

Page 5: Operációs Rendszerek I

Parancsok típusaiParancsok típusai

belső:belső:cmd.exe tudja pl.:cmd.exe tudja pl.:• dirdir• copycopy

külső parancsok külső parancsok másik exe-t másik exe-t futtat le:futtat le:

pl.: sort.exe pl.: sort.exe c: c:\Window\System32\Window\System32\\sort.exesort.exe• VagVagy nem, ez telepítéstől függ!y nem, ez telepítéstől függ!

Page 6: Operációs Rendszerek I

Parancsok felépítéseParancsok felépítése

PParancsnév [kapcsolók] [paraméterek] arancsnév [kapcsolók] [paraméterek] pl: copy /y fajl1 fajl2 pl: copy /y fajl1 fajl2

Parancsok működése kapcsolókkal Parancsok működése kapcsolókkal (/kapcsolo) módosítható(/kapcsolo) módosíthatóKapcsolók egyidejű használata Kapcsolók egyidejű használata parancsfüggő (HELP), lehetnek egymást parancsfüggő (HELP), lehetnek egymást kizáró kapcsolók iskizáró kapcsolók isÁltalában mindig van: /?Általában mindig van: /?Ha a program mindenképpen vár Ha a program mindenképpen vár paramétert, de nem adjuk meg hibajelzésparamétert, de nem adjuk meg hibajelzésEgyszerre akár több paraméter is átadható Egyszerre akár több paraméter is átadható (vagy éppen átadandó)(vagy éppen átadandó)

Page 7: Operációs Rendszerek I

SegítségSegítség

ForrásokForrások• Konvencionális kapcsoló: /?Konvencionális kapcsoló: /?• help „parancsnév”help „parancsnév”• Start menü – Segítség és támogatásStart menü – Segítség és támogatás

• Referencia: „Command-line reference A-Z”, Referencia: „Command-line reference A-Z”, „Command shell overview”„Command shell overview”

JelölésekJelölésekCOPY [/d] [/v] [/n] [{/y|/-y}] [/z] [{/a|/b}] Source [{/a|/b}] COPY [/d] [/v] [/n] [{/y|/-y}] [/z] [{/a|/b}] Source [{/a|/b}]

[+ Source [{/a|/b}] [+ ...]] [Destination [{/a|/b}]][+ Source [{/a|/b}] [+ ...]] [Destination [{/a|/b}]]

• COPY: a parancsCOPY: a parancs• Source, Destination: paraméterekSource, Destination: paraméterek• /d, /v, stb. : kapcsolók/d, /v, stb. : kapcsolók• [[/d/d] [destination] : opcion] [destination] : opcionális elemális elem• {/a|/b} {/a|/b} : egymást kizáró (együtt nem használható) : egymást kizáró (együtt nem használható)

elemek elemek

Page 8: Operációs Rendszerek I

Fontosabb parancsokFontosabb parancsok

dir: könyvtár tartalmának listázásadir: könyvtár tartalmának listázása

cd: munkakönyvtár lekérése / cd: munkakönyvtár lekérése / beállításabeállítása

copy: fájlok másolásacopy: fájlok másolása

move / rename: fájlok mozgatása, move / rename: fájlok mozgatása, átnevezéseátnevezése

mkdir, rmdir: könyvtár létrehozás, mkdir, rmdir: könyvtár létrehozás, törléstörlés

edit: minimal editoredit: minimal editor

Page 9: Operációs Rendszerek I

GyakorlásGyakorlás

AlapokAlapokIndítsa el a parancsértelmezőt (cmd)Indítsa el a parancsértelmezőt (cmd)Állítson be kék háttért és sárga betűketÁllítson be kék háttért és sárga betűketAz ablak címét állítsa át: „parancsaim”-raAz ablak címét állítsa át: „parancsaim”-ra

On-Line helpOn-Line helpHogyan lehet a „dir” parancsot úgy futtatni, hogy az csak Hogyan lehet a „dir” parancsot úgy futtatni, hogy az csak a fájlok neveit írja ki? (/B)a fájlok neveit írja ki? (/B)Melyik paranccsal lehet a c: meghajtó könyvtárstruktúráját Melyik paranccsal lehet a c: meghajtó könyvtárstruktúráját (fát) kiíratni?(fát) kiíratni?

Alapvető parancsok (minden lépés után ellenőrizze az Alapvető parancsok (minden lépés után ellenőrizze az eredményt)eredményt)

Hozzon létre egy „munkáim” könyvtáratHozzon létre egy „munkáim” könyvtáratEbben hozzon létre egy „valami.txt” fájlEbben hozzon létre egy „valami.txt” fájlKészítsen másolatot „fontos.txt” névenKészítsen másolatot „fontos.txt” névenA „valami.txt” fájl nevezze át „nemfontos.txt” névreA „valami.txt” fájl nevezze át „nemfontos.txt” névreTörölje le a létrehozott fájlokat és a könyvtáratTörölje le a létrehozott fájlokat és a könyvtárat

Page 10: Operációs Rendszerek I

Fájlok és könyvtárakFájlok és könyvtárak

Diszk és könyvtárstruktúra (részletek később)Diszk és könyvtárstruktúra (részletek később)Diszkeket betűjelükkel azonosítjuk (pl. c:)Diszkeket betűjelükkel azonosítjuk (pl. c:)Diszkeken fa struktúrájú könyvtár-rendszerDiszkeken fa struktúrájú könyvtár-rendszerAz egyes könyvtárak közötti elválasztójel: ‘Az egyes könyvtárak közötti elválasztójel: ‘\\’’

Kitűntetett helyek (könyvtár struktúrában)Kitűntetett helyek (könyvtár struktúrában)Gyökér (kiinduló) könyvtár, jele: Gyökér (kiinduló) könyvtár, jele: \\Munkakönyvtár (aktuális könyvtár)Munkakönyvtár (aktuális könyvtár)Felhasználó „HOME” könyvtára (HOMEPATH környezeti változó)Felhasználó „HOME” könyvtára (HOMEPATH környezeti változó)

Fájl elérési utak megadásaFájl elérési utak megadásaabszolút elérés: gyökérkönyvtártól, a fát végigjárva adjuk megabszolút elérés: gyökérkönyvtártól, a fát végigjárva adjuk megRelatív megadás: a munkakönyvtárhoz képest (relatív) adjuk megRelatív megadás: a munkakönyvtárhoz képest (relatív) adjuk meg

• Hivatkozás az aktuális könyvtárra: ‘.’Hivatkozás az aktuális könyvtárra: ‘.’• Hivatkozás a szülő könyvtárra: ‘..’Hivatkozás a szülő könyvtárra: ‘..’

Elérési út megadása parancsoknálElérési út megadása parancsoknálAbszolút vagy relatívAbszolút vagy relatívElérés keresési út (PATH környezeti változó) segítségévelElérés keresési út (PATH környezeti változó) segítségévelHa nincs kiterjesztés: behelyettesít (exe, com, cmd, bat, stb.)Ha nincs kiterjesztés: behelyettesít (exe, com, cmd, bat, stb.)

Page 11: Operációs Rendszerek I

Környezeti változókKörnyezeti változók

Különféle azonosítók tárolására alkalmasKülönféle azonosítók tárolására alkalmaspl. pl. SystemRoot, windir, UserNameSystemRoot, windir, UserName, PATH, PATH

Sajátgép/Tulajdonságok/Speciális/Környezeti Sajátgép/Tulajdonságok/Speciális/Környezeti változókváltozókKétféle környezeti változóKétféle környezeti változó

Felhasználó változóiFelhasználó változóiRendszerváltozókRendszerváltozók

Használatuk parancssorbanHasználatuk parancssorbanMegadásMegadás

set set PATHPATH==c:c:\mydir\mydirset PATH=%PATH%;c:\mydirset PATH=%PATH%;c:\mydirset ALMA=%PATH%;c:\mydirset ALMA=%PATH%;c:\mydir

Hivatkozás a változóra: %név%Hivatkozás a változóra: %név%echo %ALMA%echo %ALMA%

Page 12: Operációs Rendszerek I

GyakorlásGyakorlás

PATHPATHKészítsen másolatot a „notepad.exe” fájlról (c:Készítsen másolatot a „notepad.exe” fájlról (c:\\windows\system32windows\system32) a saját könyvtárába „notesz.exe” ) a saját könyvtárába „notesz.exe” névennévenAz elérési út megváltozatásával biztosítsa, hogy a Az elérési út megváltozatásával biztosítsa, hogy a „notesz.exe” bárhonnan elindítható legyen„notesz.exe” bárhonnan elindítható legyen

Egyéb változókEgyéb változókHozzon létre egy munkakönyvtárat, majd egy Hozzon létre egy munkakönyvtárat, majd egy „enkonyvtaram” változót, amely értékként a könyvtár „enkonyvtaram” változót, amely értékként a könyvtár elérési útját tartalmazza!elérési útját tartalmazza!Az „enkonyvtaram” változó használatával másolja át a Az „enkonyvtaram” változó használatával másolja át a Windows system32 könyvtárában található összes Windows system32 könyvtárában található összes „com” típusú fájlt a létrehozott könyvtárba!„com” típusú fájlt a létrehozott könyvtárba!Törölje le az „enkonyvtaram” tartalmát és magát a Törölje le az „enkonyvtaram” tartalmát és magát a könyvtárat is!könyvtárat is!

Page 13: Operációs Rendszerek I

ÁllománynevekÁllománynevek

Hossza legfeljebb 255 karakter lehetHossza legfeljebb 255 karakter lehetTartalmazhat szóközt és pontokat (többet)Tartalmazhat szóközt és pontokat (többet)Tartalmazhat ékezetes betűketTartalmazhat ékezetes betűketTiltott karakterek: ? * Tiltott karakterek: ? * \ / : < > | \ / : < > | Fájltípusok: kiterjesztés alapján dől elFájltípusok: kiterjesztés alapján dől elKiterjesztés az utolsó pont mögött álló rész Kiterjesztés az utolsó pont mögött álló rész (lehet több, mint 3 karakter)(lehet több, mint 3 karakter)

a „beépített” típusok (exe, cmd, stb.) mellett az a „beépített” típusok (exe, cmd, stb.) mellett az alkalmazások is regisztrálhatnak saját típusokat alkalmazások is regisztrálhatnak saját típusokat (asszociáció)(asszociáció)

Kis és nagybetűt megőrzi, de fájlok kezelésekor Kis és nagybetűt megőrzi, de fájlok kezelésekor nem veszi figyelembenem veszi figyelembeHosszú nevekhez rövid (8.3) változatú név Hosszú nevekhez rövid (8.3) változatú név létrehozása automatikusan megtörténiklétrehozása automatikusan megtörténik

Page 14: Operációs Rendszerek I

A .txt fájlnévkiterjesztéshez tartozó A .txt fájlnévkiterjesztéshez tartozó fájltípustársítás törléséhez a fájltípustársítás törléséhez a következőt kell beírnia:következőt kell beírnia:FTYPE rtffile="C:\Program Files\Windows FTYPE rtffile="C:\Program Files\Windows NT\Accessories\WORDPAD.EXE" "%1"NT\Accessories\WORDPAD.EXE" "%1"

ASSOC .rtf=rtffileASSOC .rtf=rtffile

Page 15: Operációs Rendszerek I

„„Gondok” az Gondok” az állománynevekkelállománynevekkel

Szóközök a névben: honnan „tudja” a Szóközök a névben: honnan „tudja” a parancs?parancs?Forrás: Forrás: elso masodikelso masodik Cél: Cél: harmadikharmadikcopy elso masodik harmadikcopy elso masodik harmadik (3 paraméter) (3 paraméter)Megoldás: idézőjelek használataMegoldás: idézőjelek használata

Kis és nagybetűkKis és nagybetűk• „„Idegen” rendszereknél (pl. Unix) gondokat Idegen” rendszereknél (pl. Unix) gondokat

okozhatokozhatNemzeti karakterek a nevekbenNemzeti karakterek a nevekben• A nevek az adott XP példány alapértelmezett A nevek az adott XP példány alapértelmezett

kódlapját használva konvertálódnak Unicode-ról, kódlapját használva konvertálódnak Unicode-ról, ez pedig már a magyar ékezeteknél is gond lehet ez pedig már a magyar ékezeteknél is gond lehet (pl. angol az alapértelmezett kódlap) – „Control (pl. angol az alapértelmezett kódlap) – „Control Panel/Regional and Language/Advanced”Panel/Regional and Language/Advanced”

Page 16: Operációs Rendszerek I

Elnevezési tippekElnevezési tippek

ekezet nelkul (ha lehet)ekezet nelkul (ha lehet)

space nélkül, helyette alulvonás (_)space nélkül, helyette alulvonás (_)

kis-nagybetűk egységesen kis-nagybetűk egységesen

név önmagáért beszéljennév önmagáért beszéljenkésőbb is tudnunk kell mi az adott fájlkésőbb is tudnunk kell mi az adott fájl

ne legyen nagyon hosszúne legyen nagyon hosszú

Page 17: Operációs Rendszerek I

GyakorlásGyakorlás

Nevükben szóközt tartalmazó fájlokNevükben szóközt tartalmazó fájlokLétrehoz: „Létrehoz: „almaalma”, „”, „körtekörte” és „” és „alma körtealma körte””Töröl Töröl alma körtealma körte (idézőjel nélkül) (idézőjel nélkül)Nézd meg mit csináltál…Nézd meg mit csináltál…Töröl Töröl alma körtealma körte (most már rendesen) (most már rendesen)

Kis és nagybetűKis és nagybetűLétrehoz: Létrehoz: almaalmaMásol: Másol: almaalma →→ KKörteörteMásol: Másol: almaalma →→ KKÖRTEÖRTEMásol: Másol: almaalma →→ kÖRTE kÖRTEHány körte van? Pontosan mi a neve?Hány körte van? Pontosan mi a neve?

Page 18: Operációs Rendszerek I

Fájl és könyvtárkezelésFájl és könyvtárkezelés

Könyvtárak tartalmának listázása: dirKönyvtárak tartalmának listázása: dirAktuális (munka) könyvtár nevének lekérése: Aktuális (munka) könyvtár nevének lekérése: cdcdAktuális (munka) könyvtár megváltoztatása: Aktuális (munka) könyvtár megváltoztatása: cdcdKönyvtárváltás „visszaúttal”: pushd/popdKönyvtárváltás „visszaúttal”: pushd/popdTovábbi parancsokTovábbi parancsok

Könyvtár létrehozása: mkdirKönyvtár létrehozása: mkdirKönyvtár törlése: rmdirKönyvtár törlése: rmdir

• Alapértelmezés: csak üres könyvtárat enged törölni!Alapértelmezés: csak üres könyvtárat enged törölni!• /S kapcsoló: rekurzív törlés, akkor is megy, ha nem /S kapcsoló: rekurzív törlés, akkor is megy, ha nem

üres a könyvtárüres a könyvtár• /Q kapcsoló: /S esetén elnyomja a megerősítés kérést/Q kapcsoló: /S esetén elnyomja a megerősítés kérést

ÁtnevezésÁtnevezés

Page 19: Operációs Rendszerek I

Alapvető fájlműveletekAlapvető fájlműveletek

Másolás: copyMásolás: copyccopy opy <srcfile> <dstfile><srcfile> <dstfile>Összefűzés: Összefűzés: ccopy opy <srcfile> <<srcfile> <++srcfile> srcfile> … … <dstfile><dstfile>

Mozgatás: moveMozgatás: move (átnevezésre is használható)(átnevezésre is használható)move move <srcfile> <dstfile><srcfile> <dstfile>

Átnevezés: rename/renÁtnevezés: rename/ren rename rename <src> <dst><src> <dst>, de dst esetében csak egy , de dst esetében csak egy fájlnév állhat, elérési út nem (semmilyen módon)!fájlnév állhat, elérési út nem (semmilyen módon)!

• rrename c:ename c:\tmp\alma.txt korte.txt \tmp\alma.txt korte.txt • rename rename c:c:\tmp\alma.txt c:\temp\korte.txt \tmp\alma.txt c:\temp\korte.txt

Törlés: delTörlés: del/erase/eraseddel el <file><file>RekurRekurzív törlés (alkönyvtárakban is): zív törlés (alkönyvtárakban is): del /s <file>del /s <file>

Page 20: Operációs Rendszerek I

Fájlműveletek (folytatás)Fájlműveletek (folytatás)

Speciális „fájlok” – Unix örökség az Speciális „fájlok” – Unix örökség az eszközök eléréséhez (con, null, stb.)eszközök eléréséhez (con, null, stb.)

copy copy con con c:c:\tmp\alma.txt \tmp\alma.txt (CTRL-Z!)(CTRL-Z!)copy c:copy c:\tmp\alma.txt\tmp\alma.txt con concopy c:copy c:\tmp\alma.txt\tmp\alma.txt nul nul

XcopyXcopyRekurzív másolás (üres könyvtárak is): Rekurzív másolás (üres könyvtárak is):

xcopy a: b: /s /e xcopy a: b: /s /e Adott dátum után módosult fájlok másolása: Adott dátum után módosult fájlok másolása:

xcopy \rawdata \reports /d:12-xcopy \rawdata \reports /d:12-29-1993 29-1993 Ugyanez, dátum-korlát nélkül („egyszerű” Ugyanez, dátum-korlát nélkül („egyszerű” copy): copy): xcopy \rawdata \reports /uxcopy \rawdata \reports /u

Page 21: Operációs Rendszerek I

GyakorlásGyakorlás

pushd/popdpushd/popdMilyen egyéb módon lehet biztosítani a Milyen egyéb módon lehet biztosítani a pushd/popd szolgáltatását (legalább egy pushd/popd szolgáltatását (legalább egy mélységig)?mélységig)?

CopyCopy3 szöveges fájl létrehozása (pár soros)3 szöveges fájl létrehozása (pár soros)Fájlok összefűzése egy fájlláFájlok összefűzése egy fájllá

Copy conCopy conFájl létrehozása „copy con” módonFájl létrehozása „copy con” módonFájl kiíratása „copy con” módonFájl kiíratása „copy con” módon

Xcopy próbálgatásaXcopy próbálgatása

Page 22: Operációs Rendszerek I

Helyettesítő karekterekHelyettesítő karekterek

Probléma: valamilyen műveletet (pl. Probléma: valamilyen műveletet (pl. másolás, törlés) egyszerre több fájlon másolás, törlés) egyszerre több fájlon szeretnénk végrehajtaniszeretnénk végrehajtaniMegoldás: ha a fájlok nevük alapján Megoldás: ha a fájlok nevük alapján megkülönböztethetők, akkor a megkülönböztethetők, akkor a helyettesítő karakterek használatahelyettesítő karakterek használataHelyettesítő karakterek:Helyettesítő karakterek:

: tetszőleges számú karakter: tetszőleges számú karakter: egyetlen karakter: egyetlen karakter

Használatuk (pl): copy abHasználatuk (pl): copy ab**cd?.ecd?.e* d:* d:

Page 23: Operációs Rendszerek I

Szöveges fájlokSzöveges fájlok

Fájl létrehozásaFájl létrehozásaNotepad, edit (karakteres)Notepad, edit (karakteres)ccopy con opy con <fn><fn>

Fájl tartalmának megjelenítéseFájl tartalmának megjelenítésetype <fn>type <fn>copy <fn> concopy <fn> con

Fájl tartalmának módosításaFájl tartalmának módosításaElsődlegesen editorok (edit, stb.)Elsődlegesen editorok (edit, stb.)Tartalommal kapcsolatos műveletekTartalommal kapcsolatos műveletekKeresés: findKeresés: findRendezés: sortRendezés: sortFájlok összehasonlítása: fcFájlok összehasonlítása: fc

Page 24: Operációs Rendszerek I

Parancsok egymásutániságaParancsok egymásutánisága

Többféle lehetőségTöbbféle lehetőség&: mindig végrehajtásra kerül&: mindig végrehajtásra kerül

cmd1 & cmd2 cmd1 & cmd2 &&: csak akkor kerül &&: csak akkor kerül végrehajtásra, ha a művelet végrehajtásra, ha a művelet sikeressikeres

cmd1 && cmd2cmd1 && cmd2||: csak akkor kerül végrehajtásra ||: csak akkor kerül végrehajtásra ha a művelet sikertelenha a művelet sikertelen

cmd1 || cmd 2cmd1 || cmd 2

Page 25: Operációs Rendszerek I

Parancsok egymásutániságaParancsok egymásutánisága

Parancsok csoportosításaParancsok csoportosítása

(parancs1 & paramcs2) (parancs1 & paramcs2) || || (parancs3)(parancs3)

(dir & echo hello & mkdir hello)(dir & echo hello & mkdir hello)

Page 26: Operációs Rendszerek I

GyakorlásGyakorlás

Primitív „move” parancs összefűzésselPrimitív „move” parancs összefűzésselElőször másol, ha sikeres volt, akkor Először másol, ha sikeres volt, akkor töröltöröl

Előfeltétel ellenőrzésElőfeltétel ellenőrzésCsak akkor próbálja kiírni egy fájl Csak akkor próbálja kiírni egy fájl tartalmát (pl. more), ha az léteziktartalmát (pl. more), ha az létezik

HibakezelésHibakezelésHa a másolás parancs nem fut le, akkor Ha a másolás parancs nem fut le, akkor írjon ki egy üzenetet (pl. „hát ez nem jött írjon ki egy üzenetet (pl. „hát ez nem jött össze”)össze”)

Page 27: Operációs Rendszerek I

ÁtirányításÁtirányítás

Szabványos be- és kimeneti, hibacsatornákSzabványos be- és kimeneti, hibacsatornákA „jól nevelt” segédprogramok ezeket a A „jól nevelt” segédprogramok ezeket a csatornákat használják (nem közvetlen képernyő, csatornákat használják (nem közvetlen képernyő, billentyű elérést)billentyű elérést)A parancsértelmező képes a szabványos A parancsértelmező képes a szabványos csatornák „eltérítésére” a program tudta nélkül!csatornák „eltérítésére” a program tudta nélkül!

kimeneti csatorna átirányítása fájlbakimeneti csatorna átirányítása fájlba• dir dir > alma.txt vagy dir >> alma.txt (> alma.txt vagy dir >> alma.txt (utóbbi hozzáfűz)utóbbi hozzáfűz)

bemeneti csatorna fájlbólbemeneti csatorna fájlból• sort sort < alma.txt< alma.txt

Hibacsatorna Hibacsatorna átirányításaátirányítása• valami.exe 2valami.exe 2> alma.txt> alma.txt

CsatornáCsatornábaba irányítás irányítás• valami.exe 2valami.exe 2>&1>&1

Page 28: Operációs Rendszerek I

Parancsösszefűzés, átirányításParancsösszefűzés, átirányítás

Összetett feladatok esetén az Összetett feladatok esetén az eredményt több parancs egymás eredményt több parancs egymás utáni végrehajtása adjautáni végrehajtása adja

Minden parancs kimenetét fájlba Minden parancs kimenetét fájlba irányítom, a következő parancs ebből irányítom, a következő parancs ebből dolgozikdolgozik• dir > alma & sort < almadir > alma & sort < alma

Vagy: Vagy: a parancsok ki- és bemenetét a parancsok ki- és bemenetét közvetlenül összekapcsolomközvetlenül összekapcsolom• dir dir | sort| sort

Page 29: Operációs Rendszerek I

Egyéb hasznos parancsokEgyéb hasznos parancsok

more more

sortsort

findfind

typetype

treetree

fcfc

Page 30: Operációs Rendszerek I

GyakorlásGyakorlás

Fájlmásolás type paranccsal és Fájlmásolás type paranccsal és átirányítássalátirányítássalDöntse el, hogy létezik-e az adott könyvtár, Döntse el, hogy létezik-e az adott könyvtár, de a tartalmát ne írja ki /Fájl kimenetének de a tartalmát ne írja ki /Fájl kimenetének (dir) átirányítása „nul” eszközre/(dir) átirányítása „nul” eszközre/Kapcsolók használata nélkül tördelje fel Kapcsolók használata nélkül tördelje fel képernyőkre a „dir” parancs kimenetét képernyőkre a „dir” parancs kimenetét /pipe használata (dir és more kapcsolata)//pipe használata (dir és more kapcsolata)/Készítsen el a „nevek.txt” fájlt, amelyet Készítsen el a „nevek.txt” fájlt, amelyet töltsön fel a laborban találhatók töltsön fel a laborban találhatók keresztneveivel. Rendezze ABC sorrendbe a keresztneveivel. Rendezze ABC sorrendbe a neveket!neveket!

Page 31: Operációs Rendszerek I

GyakorlásGyakorlás

Parancsok működésének kitalálása Parancsok működésének kitalálása On-Line help segítségével (sort, fc, On-Line help segítségével (sort, fc, find)find)

Page 32: Operációs Rendszerek I

ParancsfájlokParancsfájlok

Ami volt: parancsok összekapcsolása Ami volt: parancsok összekapcsolása parancssorból (parancsok egymás utáni parancssorból (parancsok egymás utáni végrehajtása, függőséggel), az STDIO végrehajtása, függőséggel), az STDIO (átirányítás, pipe)(átirányítás, pipe)Parancsfájlok: mi az?Parancsfájlok: mi az?Általános célú parancsfájlok: parancssori Általános célú parancsfájlok: parancssori paraméterekparaméterek Parancssori paraméteres példaParancssori paraméteres példaTovábbi lehetőségek röviden: változók, További lehetőségek röviden: változók, elágazások, vezérlésátadás és ciklusokelágazások, vezérlésátadás és ciklusok Egyszerű példákEgyszerű példák

Page 33: Operációs Rendszerek I

Batch fBatch fájlokájlok

Fájl kiterjesztése: bat vagy cmdFájl kiterjesztése: bat vagy cmdFájl tartalma: különféle parancsok Fájl tartalma: különféle parancsok egymásutánjaegymásutánjarem: commentrem: comment

pl: rem Ezt a sort ne hajtsd végrepl: rem Ezt a sort ne hajtsd végreKi fogja irni, de nem értelmeziKi fogja irni, de nem értelmezi

echo offecho offAlapból mindent kiír, ezzel a parancs kiírása Alapból mindent kiír, ezzel a parancs kiírása megakadályozható globálisanmegakadályozható globálisanParancs elé tett @ ugyanezt tesziParancs elé tett @ ugyanezt teszi (arra a sorra) (arra a sorra)

Escape karakter: ^Escape karakter: ^

Page 34: Operációs Rendszerek I

GyakorlásGyakorlás

Egyszerű parancsfájl létrehozása és Egyszerű parancsfájl létrehozása és futtatása: parancsok egymásutánjafuttatása: parancsok egymásutánja

Előző órák során kipróbált parancs-Előző órák során kipróbált parancs-kombinációk átírása parancs fájlbakombinációk átírása parancs fájlba

Echo off hatásának kipróbálásaEcho off hatásának kipróbálása

Megyjegyzések a fájlok elejére (ki Megyjegyzések a fájlok elejére (ki készítette, mi a célja)készítette, mi a célja)

Page 35: Operációs Rendszerek I

VáltozókVáltozók

Lásd Korábbi: környezeti változók!Lásd Korábbi: környezeti változók!létrehozás: set valtozonev=”valami”létrehozás: set valtozonev=”valami”törlés: set valtozonev=törlés: set valtozonev=A változóknak azonnal értéket kell adniA változóknak azonnal értéket kell adniEz sem case sensitiveEz sem case sensitiveHatóköre az adott parancsfájlHatóköre az adott parancsfájlkisebb hatókör kell, akkor setlocal, kisebb hatókör kell, akkor setlocal, endlocalendlocalAritmetika: /aAritmetika: /a

set ertek=4+4 – string-ként értelmeziset ertek=4+4 – string-ként értelmeziset /a ertek=4+4: 8 (azaz összeadta)set /a ertek=4+4: 8 (azaz összeadta)

Page 36: Operációs Rendszerek I

Bemeneti paraméterekBemeneti paraméterek

%0: fájl neve%0: fájl neve%%1, %2, … %9: kapcsolók, paraméterek1, %2, … %9: kapcsolók, paraméterek%* - az átadott összes paraméter%* - az átadott összes paraméterSHIFT parancs (paraméterek eltolása)SHIFT parancs (paraméterek eltolása)SHIFT /3 eltolás a 3. paramétertől SHIFT /3 eltolás a 3. paramétertől kezdődőenkezdődően

Pl. a.cmd fájl, benne echo-k (echo %0, echo Pl. a.cmd fájl, benne echo-k (echo %0, echo %1, stb.)%1, stb.)a.cmd se ki se be se nyőa.cmd se ki se be se nyő: %0: a.cmd: %0: a.cmd: %1: se : %1: se : %2: ki: %2: kistb.stb.

Page 37: Operációs Rendszerek I

GyakorlásGyakorlás

Előzőekben elkészített fájlok (pl. Előzőekben elkészített fájlok (pl. move megoldása copy és delete move megoldása copy és delete segítségével) kiegészítésesegítségével) kiegészítése

Paramétereket parancssorból vegyeParamétereket parancssorból vegyeHa a forrásfájl nem létezik, akkor Ha a forrásfájl nem létezik, akkor írjon ki valamilyen üzenetet (előzetes írjon ki valamilyen üzenetet (előzetes tesztelés)tesztelés)

Egyszerű összeadó gép készítéseEgyszerű összeadó gép készítéseAdja össze a paraméterként Adja össze a paraméterként megadott két számot!megadott két számot!

Page 38: Operációs Rendszerek I

IF – feltételes elágazásokIF – feltételes elágazások

IF: feltételtől függő működés megvalósításaIF: feltételtől függő működés megvalósításaIF IF [NOT] [NOT] condition (statement1) [else (statement2)]condition (statement1) [else (statement2)]ifif [ [notnot] ] errorlevelerrorlevel numbernumber commandcommand [ [elseelse expressionexpression] ] ifif [ [notnot] ] string1string1====string2string2 commandcommand [ [elseelse expressionexpression]]ifif [ [notnot] ] exist exist FileNameFileName commandcommand [ [elseelse expressionexpression]]

Ha a kiterjesztett parancsok engedélyezettek:Ha a kiterjesztett parancsok engedélyezettek:ifif [ [/i/i] ] string1string1 CompareOpCompareOp string2string2 commandcommand [ [elseelse expressionexpression]]ifif cmdextversioncmdextversion numbernumber commandcommand [ [elseelse expressionexpression]]ifif defineddefined variablevariable commandcommand [ [elseelse expressionexpression]]

Page 39: Operációs Rendszerek I

ElElágazások folytatáságazások folytatás

IF „%ComputerName%”==”kalapacs” (echo IF „%ComputerName%”==”kalapacs” (echo „De fura nev”) else (echo „Nem is olyan fura „De fura nev”) else (echo „Nem is olyan fura nev”)nev”)

„”„”-re vigyázni, nélküle nem megy!-re vigyázni, nélküle nem megy!IF NOT: mint az IF, csak negálvaIF NOT: mint az IF, csak negálva

IF IF [NOT] [NOT] DEFINIEDDEFINIEDtrue, ha a megadott változó létezik: true, ha a megadott változó létezik:

if not definied %temp% (set if not definied %temp% (set temp=”C:\temp”)temp=”C:\temp”)DE: %1, %2, stb. mindig definiálva van!DE: %1, %2, stb. mindig definiálva van!

IF IF [NOT] [NOT] EXIST: fájl létezését vizsgáljaEXIST: fájl létezését vizsgáljaIFIF [NOT][NOT] ERRORLEVELERRORLEVEL: elágazás parancs : elágazás parancs végrehajtási státusza (exit code) alapjánvégrehajtási státusza (exit code) alapján

DIR q:\ & IF ERRORLEVEL 1 (echo HIBA)DIR q:\ & IF ERRORLEVEL 1 (echo HIBA)Igaz, ha az exit code Igaz, ha az exit code >=>= mint az érték mint az érték

Page 40: Operációs Rendszerek I

PPéldákéldák

if ”%1”==”a” (echo A) else (echo is not if ”%1”==”a” (echo A) else (echo is not A)A)

If ”%varA%” equ ”%varB%” (echo If ”%varA%” equ ”%varB%” (echo MatchMatch!!))

Page 41: Operációs Rendszerek I

Elágazások folytatásElágazások folytatás

Összehasonlítások IF-benÖsszehasonlítások IF-benif „stringA”==”stringB”if „stringA”==”stringB”if „%varA%”==”stringA”if „%varA%”==”stringA”if „%varA%”==”%varB%”if „%varA%”==”%varB%”

• Idézőjel használata hasznosIdézőjel használata hasznos/i kapcsoló has/i kapcsoló használatával nem tesz különbséget a ználatával nem tesz különbséget a kis- és nagybetűk közöttkis- és nagybetűk közöttEQUEQU equal  equal NEQNEQ not equal  not equal LSSLSS less than  less than LEQLEQ less than or equal  less than or equal GTRGTR greater than  greater than GEQGEQ greater than or equal greater than or equal

• if „%varA%” lss ”%varB%”: igaz, ha varA kisebb, mint if „%varA%” lss ”%varB%”: igaz, ha varA kisebb, mint varBvarB

Page 42: Operációs Rendszerek I

Elágazások folytatásElágazások folytatás

IF igaz és hamis ágához csak egy parancsot IF igaz és hamis ágához csak egy parancsot írhatunk (vagy láncolni) írhatunk (vagy láncolni) goto gotoPéldául: Például:

if "%1"=="1" goto almaif "%1"=="1" goto almaif "%1"=="2" goto korteif "%1"=="2" goto kortegoto exitgoto exit:alma:alma

echo „ez itt az 1-ag”echo „ez itt az 1-ag”goto exitgoto exit:korte:korte

echo „ez itt a 2-ag”echo „ez itt a 2-ag”goto exitgoto exit:exit :exit

Page 43: Operációs Rendszerek I

GyakorlásGyakorlás

Az első paraméterként kapott értéket vizsgáljuk Az első paraméterként kapott értéket vizsgáljuk meg. Amennyiben 12 a szám, írjuk ki, hogy meg. Amennyiben 12 a szám, írjuk ki, hogy "Tizenkettő", amennyiben nem, akkor írjuk ki, "Tizenkettő", amennyiben nem, akkor írjuk ki, hogy "A beírt érték nem tizenkettő!"hogy "A beírt érték nem tizenkettő!"Move példa hibakezelés része átalakítása „if” Move példa hibakezelés része átalakítása „if” szerkezetreszerkezetreKészítsen scriptet, amely az első paraméterként Készítsen scriptet, amely az első paraméterként kapott fájlt ellenőrzi, hogy létezik-e. kapott fájlt ellenőrzi, hogy létezik-e. Amennyiben igen, akkor írassa ki, amennyiben Amennyiben igen, akkor írassa ki, amennyiben nem, hozzon létre egy új fájlt a könyvtár nem, hozzon létre egy új fájlt a könyvtár fastruktúrájának tartalmávalfastruktúrájának tartalmávalNégy alapműveletes számológép, RPN Négy alapműveletes számológép, RPN megadással (parancssori paraméterekkel)megadással (parancssori paraméterekkel)

Page 44: Operációs Rendszerek I

IterációIteráció

for [módszer] (változónév) in (fájllista) do for [módszer] (változónév) in (fájllista) do (parancs)(parancs) Módszer lehet:Módszer lehet:

/D: Könyvtárak iterálása/D: Könyvtárak iterálása/R: alkönyvtárakkal együtt/R: alkönyvtárakkal együtt/L: értéksorozat végigjárása/L: értéksorozat végigjárása/F: fájlon belül soronkénti iterálás/F: fájlon belül soronkénti iterálásKapcsoló nélkül: Fájlok iterálásaKapcsoló nélkül: Fájlok iterálása

PéldákPéldákfor %%B in (*.*) do echo %%Bfor %%B in (*.*) do echo %%Bfor /d %%B in (*.*) do echo %%Bfor /d %%B in (*.*) do echo %%Bfor /l %%B in (0,for /l %%B in (0,11,10) do @echo %%B,10) do @echo %%BFor /f %%B in (akarmi.txt) do echo %%BFor /f %%B in (akarmi.txt) do echo %%B

Parancssorban csak %B a változóParancssorban csak %B a változó

Page 45: Operációs Rendszerek I

IterációIteráció

for /d %%B in (%SystemRoot% %SystemRoot%\for /d %%B in (%SystemRoot% %SystemRoot%\*) do echo %%B*) do echo %%B

for /d %%B in (%APPDATA% %APPDATA%\*) dofor /d %%B in (%APPDATA% %APPDATA%\*) do

(@for %%C in (”%%B\*.txt”) do echo %%C)(@for %%C in (”%%B\*.txt”) do echo %%C)

Page 46: Operációs Rendszerek I

GyakorlásGyakorlás

1. Készítsen egy olyan scriptet, amely 1. Készítsen egy olyan scriptet, amely elszámol az első paraméterként megadott elszámol az első paraméterként megadott értéktől a másodikig. Módosítsa úgy a értéktől a másodikig. Módosítsa úgy a scriptet, hogy akkor is fusson le, ha az scriptet, hogy akkor is fusson le, ha az első paraméter nagyobb, mint a második!első paraméter nagyobb, mint a második!2. Hozzon létre egy fájlt, melynek 2. Hozzon létre egy fájlt, melynek tartalma a következő legyen:tartalma a következő legyen:

Valami_1Valami_1Valami_2Valami_2Valami_3Valami_3

Hozzon létre script segítségével Hozzon létre script segítségével könyvtárakat a fájlban szereplő nevekkel!könyvtárakat a fájlban szereplő nevekkel!