1 / 46

Operációs Rendszerek I.

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

scott
Download Presentation

Operációs Rendszerek I.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 • Kevesebb erőforrás igény (mint GUI esetén) • Van history (előzmények) • könnyebb parancsot ismételni • log is egyben • Parancsok és kapcsolók pontos szintaxisát ismerni kell (de…)

  3. A parancssor • indítása: futtatás  cmd • Indulási könyvtár: indítás helye / HOMEPATH • kilépés: exit • navigáció • Parancssorban mozgás: kurzor, HOME és END • ↑ és ↓  history • F7  parancs history „ablakban” • fájlnév kiegészítés: TAB • Teljes képernyő: bal ALT+ENTER

  4. Ablak megjelenése • Indítási paraméterek • /c : egyetlen (megadott) parancs végrehajtása • /t:fg : színek beállítása (pl. 16) • /e:on : parancskiterjesztés engedélyezése • Stb. (lásd cmd /? és HELP) • Címsoron jobb klikk  tulajdonságok • Működési környezet beállítása • Tippek: HELP „To configure the command prompt” • title parancs: ablak címének megadása

  5. Parancsok típusai • belső: • cmd.exe tudja pl.: • dir • copy • külső parancsok  másik exe-t futtat le: • pl.: sort.exe  c:\Window\System32\sort.exe • Vagy nem, ez telepítéstől függ!

  6. Parancsok felépítése • Parancsnév [kapcsolók] [paraméterek] • pl: copy /y fajl1 fajl2 • Parancsok működése kapcsolókkal (/kapcsolo) módosítható • Kapcsolók egyidejű használata parancsfüggő (HELP), lehetnek egymást kizáró kapcsolók is • Általában mindig van: /? • Ha a program mindenképpen vár paramétert, de nem adjuk meg hibajelzés • Egyszerre akár több paraméter is átadható (vagy éppen átadandó)

  7. Segítség • Források • Konvencionális kapcsoló: /? • help „parancsnév” • Start menü – Segítség és támogatás • Referencia: „Command-line reference A-Z”, „Command shell overview” • Jelölések COPY [/d] [/v] [/n] [{/y|/-y}] [/z] [{/a|/b}] Source [{/a|/b}] [+ Source [{/a|/b}] [+ ...]] [Destination [{/a|/b}]] • COPY: a parancs • Source, Destination: paraméterek • /d, /v, stb. : kapcsolók • [/d] [destination] : opcionális elem • {/a|/b} : egymást kizáró (együtt nem használható) elemek

  8. Fontosabb parancsok • dir: könyvtár tartalmának listázása • cd: munkakönyvtár lekérése / beállítása • copy: fájlok másolása • move / rename: fájlok mozgatása, átnevezése • mkdir, rmdir: könyvtár létrehozás, törlés • edit: minimal editor

  9. Gyakorlás • Alapok • Indítsa el a parancsértelmezőt (cmd) • Állítson be kék háttért és sárga betűket • Az ablak címét állítsa át: „parancsaim”-ra • On-Line help • Hogyan lehet a „dir” parancsot úgy futtatni, hogy az csak a fájlok neveit írja ki? (/B) • Melyik paranccsal lehet a c: meghajtó könyvtárstruktúráját (fát) kiíratni? • Alapvető parancsok (minden lépés után ellenőrizze az eredményt) • Hozzon létre egy „munkáim” könyvtárat • Ebben hozzon létre egy „valami.txt” fájl • Készítsen másolatot „fontos.txt” néven • A „valami.txt” fájl nevezze át „nemfontos.txt” névre • Törölje le a létrehozott fájlokat és a könyvtárat

  10. Fájlok és könyvtárak • Diszk és könyvtárstruktúra (részletek később) • Diszkeket betűjelükkel azonosítjuk (pl. c:) • Diszkeken fa struktúrájú könyvtár-rendszer • Az egyes könyvtárak közötti elválasztójel: ‘\’ • Kitűntetett helyek (könyvtár struktúrában) • Gyökér (kiinduló) könyvtár, jele: \ • Munkakönyvtár (aktuális könyvtár) • Felhasználó „HOME” könyvtára (HOMEPATH környezeti változó) • Fájl elérési utak megadása • abszolút elérés: gyökérkönyvtártól, a fát végigjárva adjuk meg • Relatív megadás: a munkakönyvtárhoz képest (relatív) adjuk meg • Hivatkozás az aktuális könyvtárra: ‘.’ • Hivatkozás a szülő könyvtárra: ‘..’ • Elérési út megadása parancsoknál • Abszolút vagy relatív • Elérés keresési út (PATH környezeti változó) segítségével • Ha nincs kiterjesztés: behelyettesít (exe, com, cmd, bat, stb.)

  11. Környezeti változók • Különféle azonosítók tárolására alkalmas • pl. SystemRoot, windir, UserName, PATH • Sajátgép/Tulajdonságok/Speciális/Környezeti változók • Kétféle környezeti változó • Felhasználó változói • Rendszerváltozók • Használatuk parancssorban • Megadás set PATH=c:\mydir set PATH=%PATH%;c:\mydir set ALMA=%PATH%;c:\mydir • Hivatkozás a változóra: %név% echo %ALMA%

  12. Gyakorlás • PATH • Készítsen másolatot a „notepad.exe” fájlról (c:\windows\system32) a saját könyvtárába „notesz.exe” néven • Az elérési út megváltozatásával biztosítsa, hogy a „notesz.exe” bárhonnan elindítható legyen • Egyéb változók • Hozzon létre egy munkakönyvtárat, majd egy „enkonyvtaram” változót, amely értékként a könyvtár elérési útját tartalmazza! • Az „enkonyvtaram” változó használatával másolja át a Windows system32 könyvtárában található összes „com” típusú fájlt a létrehozott könyvtárba! • Törölje le az „enkonyvtaram” tartalmát és magát a könyvtárat is!

  13. Állománynevek • Hossza legfeljebb 255 karakter lehet • Tartalmazhat szóközt és pontokat (többet) • Tartalmazhat ékezetes betűket • Tiltott karakterek: ? * \ / : < > | • Fájltípusok: kiterjesztés alapján dől el • Kiterjesztés az utolsó pont mögött álló rész (lehet több, mint 3 karakter) • a „beépített” típusok (exe, cmd, stb.) mellett az alkalmazások is regisztrálhatnak saját típusokat (asszociáció) • Kis és nagybetűt megőrzi, de fájlok kezelésekor nem veszi figyelembe • Hosszú nevekhez rövid (8.3) változatú név létrehozása automatikusan megtörténik

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

  15. „Gondok” az állománynevekkel • Szóközök a névben: honnan „tudja” a parancs? Forrás: elso masodik Cél: harmadik copy elso masodik harmadik (3 paraméter) Megoldás: idézőjelek használata • Kis és nagybetűk • „Idegen” rendszereknél (pl. Unix) gondokat okozhat • Nemzeti karakterek a nevekben • A nevek az adott XP példány alapértelmezett kódlapját használva konvertálódnak Unicode-ról, ez pedig már a magyar ékezeteknél is gond lehet (pl. angol az alapértelmezett kódlap) – „Control Panel/Regional and Language/Advanced”

  16. Elnevezési tippek • ekezet nelkul (ha lehet) • space nélkül, helyette alulvonás (_) • kis-nagybetűk egységesen • név önmagáért beszéljen • később is tudnunk kell mi az adott fájl • ne legyen nagyon hosszú

  17. Gyakorlás • Nevükben szóközt tartalmazó fájlok • Létrehoz: „alma”, „körte” és „alma körte” • Töröl alma körte (idézőjel nélkül) • Nézd meg mit csináltál… • Töröl alma körte (most már rendesen) • Kis és nagybetű • Létrehoz: alma • Másol: alma→Körte • Másol: alma→KÖRTE • Másol: alma→ kÖRTE • Hány körte van? Pontosan mi a neve?

  18. Fájl és könyvtárkezelés • Könyvtárak tartalmának listázása: dir • Aktuális (munka) könyvtár nevének lekérése: cd • Aktuális (munka) könyvtár megváltoztatása: cd • Könyvtárváltás „visszaúttal”: pushd/popd • További parancsok • Könyvtár létrehozása: mkdir • Könyvtár törlése: rmdir • Alapértelmezés: csak üres könyvtárat enged törölni! • /S kapcsoló: rekurzív törlés, akkor is megy, ha nem üres a könyvtár • /Q kapcsoló: /S esetén elnyomja a megerősítés kérést • Átnevezés

  19. Alapvető fájlműveletek • Másolás: copy • copy <srcfile> <dstfile> • Összefűzés: copy <srcfile> <+srcfile> … <dstfile> • Mozgatás: move(átnevezésre is használható) • move <srcfile> <dstfile> • Átnevezés: rename/ren • rename <src> <dst>, de dst esetében csak egy fájlnév állhat, elérési út nem (semmilyen módon)! • rename c:\tmp\alma.txt korte.txt  • rename c:\tmp\alma.txt c:\temp\korte.txt  • Törlés: del/erase • del <file> • Rekurzív törlés (alkönyvtárakban is): del /s <file>

  20. Fájlműveletek (folytatás) • Speciális „fájlok” – Unix örökség az eszközök eléréséhez (con, null, stb.) • copy con c:\tmp\alma.txt (CTRL-Z!) • copy c:\tmp\alma.txt con • copy c:\tmp\alma.txt nul • Xcopy • Rekurzív másolás (üres könyvtárak is): xcopy a: b: /s /e • Adott dátum után módosult fájlok másolása: xcopy \rawdata \reports /d:12-29-1993 • Ugyanez, dátum-korlát nélkül („egyszerű” copy): xcopy \rawdata \reports /u

  21. Gyakorlás • pushd/popd • Milyen egyéb módon lehet biztosítani a pushd/popd szolgáltatását (legalább egy mélységig)? • Copy • 3 szöveges fájl létrehozása (pár soros) • Fájlok összefűzése egy fájllá • Copy con • Fájl létrehozása „copy con” módon • Fájl kiíratása „copy con” módon • Xcopy próbálgatása

  22. Helyettesítő karekterek • Probléma: valamilyen műveletet (pl. másolás, törlés) egyszerre több fájlon szeretnénk végrehajtani • Megoldás: ha a fájlok nevük alapján megkülönböztethetők, akkor a helyettesítő karakterek használata • Helyettesítő karakterek: • : tetszőleges számú karakter • : egyetlen karakter • Használatuk (pl): copy ab*cd?.e* d:

  23. Szöveges fájlok • Fájl létrehozása • Notepad, edit (karakteres) • copy con <fn> • Fájl tartalmának megjelenítése • type <fn> • copy <fn> con • Fájl tartalmának módosítása • Elsődlegesen editorok (edit, stb.) • Tartalommal kapcsolatos műveletek • Keresés: find • Rendezés: sort • Fájlok összehasonlítása: fc

  24. Parancsok egymásutánisága • Többféle lehetőség • &: mindig végrehajtásra kerül • cmd1 & cmd2 • &&: csak akkor kerül végrehajtásra, ha a művelet sikeres • cmd1 && cmd2 • ||: csak akkor kerül végrehajtásra ha a művelet sikertelen • cmd1 || cmd 2

  25. Parancsok egymásutánisága Parancsok csoportosítása (parancs1 & paramcs2) || (parancs3) (dir & echo hello & mkdir hello)

  26. Gyakorlás • Primitív „move” parancs összefűzéssel • Először másol, ha sikeres volt, akkor töröl • Előfeltétel ellenőrzés • Csak akkor próbálja kiírni egy fájl tartalmát (pl. more), ha az létezik • Hibakezelés • Ha a másolás parancs nem fut le, akkor írjon ki egy üzenetet (pl. „hát ez nem jött össze”)

  27. Átirányítás • Szabványos be- és kimeneti, hibacsatornák • A „jól nevelt” segédprogramok ezeket a csatornákat használják (nem közvetlen képernyő, billentyű elérést) • A parancsértelmező képes a szabványos csatornák „eltérítésére” a program tudta nélkül! • kimeneti csatorna átirányítása fájlba • dir > alma.txt vagy dir >> alma.txt (utóbbi hozzáfűz) • bemeneti csatorna fájlból • sort < alma.txt • Hibacsatorna átirányítása • valami.exe 2> alma.txt • Csatornába irányítás • valami.exe 2>&1

  28. Parancsösszefűzés, átirányítás Összetett feladatok esetén az eredményt több parancs egymás utáni végrehajtása adja • Minden parancs kimenetét fájlba irányítom, a következő parancs ebből dolgozik • dir > alma & sort < alma • Vagy: a parancsok ki- és bemenetét közvetlenül összekapcsolom • dir | sort

  29. Egyéb hasznos parancsok • more • sort • find • type • tree • fc

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

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

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

  33. Batch fájlok • Fájl kiterjesztése: bat vagy cmd • Fájl tartalma: különféle parancsok egymásutánja • rem: comment • pl: rem Ezt a sort ne hajtsd végre • Ki fogja irni, de nem értelmezi • echo off • Alapból mindent kiír, ezzel a parancs kiírása megakadályozható globálisan • Parancs elé tett @ ugyanezt teszi (arra a sorra) • Escape karakter: ^

  34. Gyakorlás • Egyszerű parancsfájl létrehozása és futtatása: parancsok egymásutánja • Előző órák során kipróbált parancs-kombinációk átírása parancs fájlba • Echo off hatásának kipróbálása • Megyjegyzések a fájlok elejére (ki készítette, mi a célja)

  35. Változók • Lásd Korábbi: környezeti változók! • létrehozás: set valtozonev=”valami” • törlés: set valtozonev= • A változóknak azonnal értéket kell adni • Ez sem case sensitive • Hatóköre az adott parancsfájl • kisebb hatókör kell, akkor setlocal, endlocal • Aritmetika: /a • set ertek=4+4 – string-ként értelmezi • set /a ertek=4+4: 8 (azaz összeadta)

  36. Bemeneti paraméterek • %0: fájl neve • %1, %2, … %9: kapcsolók, paraméterek • %* - az átadott összes paraméter • SHIFT parancs (paraméterek eltolása) • SHIFT /3 eltolás a 3. paramétertől kezdődően • Pl. a.cmd fájl, benne echo-k (echo %0, echo %1, stb.) • a.cmd se ki se be se nyő • : %0: a.cmd • : %1: se • : %2: ki • stb.

  37. Gyakorlás • Előzőekben elkészített fájlok (pl. move megoldása copy és delete segítségével) kiegészítése • Paramétereket parancssorból vegye • Ha a forrásfájl nem létezik, akkor írjon ki valamilyen üzenetet (előzetes tesztelés) • Egyszerű összeadó gép készítése • Adja össze a paraméterként megadott két számot!

  38. IF – feltételes elágazások IF: feltételtől függő működés megvalósítása • IF [NOT] condition (statement1) [else (statement2)] • if [not] errorlevelnumbercommand [elseexpression] • if [not] string1==string2command [elseexpression] • if [not] exist FileNamecommand [elseexpression] Ha a kiterjesztett parancsok engedélyezettek: • if [/i] string1CompareOpstring2command [elseexpression] • ifcmdextversionnumbercommand [elseexpression] • ifdefinedvariablecommand [elseexpression]

  39. Elágazások folytatás • IF „%ComputerName%”==”kalapacs” (echo „De fura nev”) else (echo „Nem is olyan fura nev”) • „”-re vigyázni, nélküle nem megy! • IF NOT: mint az IF, csak negálva • IF [NOT] DEFINIED • true, ha a megadott változó létezik: if not definied %temp% (set temp=”C:\temp”) • DE: %1, %2, stb. mindig definiálva van! • IF [NOT] EXIST: fájl létezését vizsgálja • IF[NOT]ERRORLEVEL: elágazás parancs végrehajtási státusza (exit code) alapján • DIR q:\ & IF ERRORLEVEL 1 (echo HIBA) • Igaz, ha az exit code >= mint az érték

  40. Példák • if ”%1”==”a” (echo A) else (echo is not A) • If ”%varA%” equ ”%varB%” (echo Match!)

  41. Elágazások folytatás • Összehasonlítások IF-ben • if „stringA”==”stringB” • if „%varA%”==”stringA” • if „%varA%”==”%varB%” • Idézőjel használata hasznos • /i kapcsoló használatával nem tesz különbséget a kis- és nagybetűk között • EQU equal  • NEQ not equal  • LSS less than  • LEQ less than or equal  • GTR greater than  • GEQ greater than or equal • if „%varA%” lss ”%varB%”: igaz, ha varA kisebb, mint varB

  42. Elágazások folytatás • IF igaz és hamis ágához csak egy parancsot írhatunk (vagy láncolni)  goto • Például: if "%1"=="1" goto alma if "%1"=="2" goto korte goto exit :alma echo „ez itt az 1-ag” goto exit :korte echo „ez itt a 2-ag” goto exit :exit

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

  44. Iteráció • for [módszer] (változónév) in (fájllista) do (parancs) • Módszer lehet: • /D: Könyvtárak iterálása • /R: alkönyvtárakkal együtt • /L: értéksorozat végigjárása • /F: fájlon belül soronkénti iterálás • Kapcsoló nélkül: Fájlok iterálása • Példák • for %%B in (*.*) do echo %%B • for /d %%B in (*.*) do echo %%B • for /l %%B in (0,1,10) do @echo %%B • For /f %%B in (akarmi.txt) do echo %%B • Parancssorban csak %B a változó

  45. Iteráció • for /d %%B in (%SystemRoot% %SystemRoot%\*) do echo %%B • for /d %%B in (%APPDATA% %APPDATA%\*) do (@for %%C in (”%%B\*.txt”) do echo %%C)

  46. Gyakorlás • 1. Készítsen egy olyan scriptet, amely elszámol az első paraméterként megadott értéktől a másodikig. Módosítsa úgy a scriptet, hogy akkor is fusson le, ha az első paraméter nagyobb, mint a második! • 2. Hozzon létre egy fájlt, melynek tartalma a következő legyen: • Valami_1 • Valami_2 • Valami_3 • Hozzon létre script segítségével könyvtárakat a fájlban szereplő nevekkel!

More Related