1. labor: A Windows parancssor használata

Bár az átlag felhasználó nem szokta használni, a Windows is rendelkezik egy ún. parancssori felhasználói felülettel, ahogyan a UNIX típusú operációs rendszerek is. Ezen a felületen különböző parancsokat begépelve lehet elvégezni az alapvető feladatokat, pl. fájlok létrehozását, listázását és törlését.

A mai laboron ezzel ismerkedünk meg, míg a Szoftver labor 2. tárgy a UNIX parancssori felületét fogja bemutatni.

1 Parancssor indítása

A Start menü Futtatás… parancsát választva indítsd el a cmd.exe programot! (A Start menü Programok/Kellékek/Parancssor pontjára kattintva is elindul.) A továbbiakban a megjelenő konzolablakban kell dolgozni. A föl-le billentyűkkel kiválaszthatóak a korábban beírt parancsok, így nem kell ismét begépelni.

Prompt

A kurzor az ún. prompt végén villog. Ez alapesetben az aktuális útvonalból és a > jelből áll. Írd be a következőt, majd ENTER (a továbbiakban az ENTER leütését nem jelezzük):

prompt szia$g

A prompt

szia>

alakúra változott. Az eredetit a

prompt $p$g

parancs megadásával állíthatod vissza. A további lehetőségekről a

prompt /?

paranccsal tájékozódhatsz.

2 Program indítása parancssorból

Írd be:

notepad.exe

Erre elindul a Jegyzettömb, mintha a Start menüből indítottad volna. Az ablakot becsukhatod.

A Windows automatikusan kiegészíti a programok nevét az ahhoz tartozó kiterjesztéssel (végződéssel, .com, .exe, .bat). Így a programot a .exe kiterjesztés beírása nélkül is futtathatod:

notepad

3 Mappa parancsok

A mappát (folder) a parancssori parancsok a directory szóból származtatják (a mappák másik neve, magyarul könyvtár). A mappa tartalmának listázása:

dir

Az eredmény a mappa tartalma: itt további mappák, valamint fájlok lehetnek. Ha nem a legfölső szinten (a gyökérkönyvtárban) vagyunk (C:\), akkor egy . és egy .. nevű mappa (<DIR> jelzi) is látható. A . az aktuális mappát jelenti, a .. az egy szinttel feljebb lévőt. Hasonlítsd ezt össze az Intézőben látható tartalommal!

A dir parancsnak számos kapcsolója van, ezekről bővebb információ a

dir /? 

paranccsal kapható. A többi parancsnak is van hasonló helpje, ezt a továbbiakban nem jelezzük külön.

Mappa váltása

Mappát váltani a chdir paranccsal, vagy ennek rövidebb változtaával, a cd-vel lehet. Lépjünk egy szinttel feljebb:

cd ..

Lépjünk a gyökérkönyvtárba:

cd \

vagy

cd /

A mappák neveit a \ (fordított per vagy visszaper (backslash), AltGr+Q) választja el egymástól az elérési útvonalon. A Windows támogatja a UNIX-ból származó /-t is, a két jel bármelyikét bármikor használhatjuk. A Windows hasonlóan rugalmas a kis és nagybetűk kezelésében: a mappák és fájlok és parancsok nevében nem számít, hogy kis- ill. nagybetűről van szó (pl. notepad, Notepad, NOTEPAD, stb. egyaránt használható). Más, pl. UNIX alapú rendszerek megkülönböztetik ezeket. Informatikusként mindkét rendszerrel dolgoznod kell majd, ezért jobb, ha mindent a tényleges nevén használsz.

Mappa létrehozása és törlése

Mappát létrehozni az mkdir vagy md parancsokkal lehet:

md clabor

Megjegyzés. Lehet, hogy már van ilyen nevű mappa a gépen, mert egy korábbi órán valaki létrehozta. Ekkor indítsd el az Intézőt, és töröld le a mappát!

Megjegyzés. Ha a ezt írod:

md c labor

két mappa jön létre, egy „c” és egy „labor” nevű. Ha „c labor” nevű mappát szeretnél, tedd idézőjelbe a nevet:

md "c labor"

Akkor is szabad idézőjelbe tenni, ha nincs benne szóköz? Próbáld ki!

Mappát törölni az rmdir vagy rd paranccsal lehet:

rd "c labor"

A parancs a mappát csak akkor törli, ha az üres.

Hozd létre ismét a clabor mappát, és lépj bele!

Elérési útvonal – path

Honnan tudta az előbb a Windows, hogy hol van a notepad.exe? Írd be, hogy

path

Az éppen aktuális mappán kívül felsoroltakban keresi a Windows a megadott nevű programot. Kibővíthetjük a saját mappánkkal:

path clabor;%PATH%

Megjegyzés: A bővítés csak ebben a parancssori ablakban érvényes. Ha újat nyitunk, ott újra be kell írnunk.

4 Be- és kimenet átirányítása

A more parancs sok dologra használható, most a begépelt szöveg ismételt megjelenítésére fogjuk. Írd be:

more

Most nem jelent meg a prompt, ami mutatja, hogy a more program éppen fut, és várja tőlünk a bemenetét. Írj be tetszőleges szöveget, és nyomd meg az ENTER-t. Mi történik? Ezt többször is megismételheted. A Ctrl+Z billentyűkombinációval léphetsz ki a more-ból, vissza a parancssorba.

Jegyezd meg: a more fájl vége jelig olvas be szöveget. Ha ezzel találkozik, kilép. Ha billentyűzetről gépelsz, a Windowsban a fájl, vagyis a begépelt szöveg vége jelet a Ctrl+Z-vel lehet adni.

A konzol programokból a Ctrl+C kombinációval is ki tudsz lépni, ez az ablakozó programok jobb felső sarkában lévő × programbezárás gombnak felel meg.

Írd be:

more > szoveg.txt

Gépeld be ismét szövegeket! Mit tapasztalsz? Több sor begépelése után lépj ki a more-ból a szokásos módon! Listázd ki a mappa tartalmát! Mit tapasztalsz?

Előfordulhat, hogy a mappa, amelyben épp vagy, írásvédett. Ekkor hibaüzenetet fogsz kapni. Ha kell, keress másik mappát, amelyben dolgozni fogsz: pl. a B:\USER. Kérd a laborvezető segítségét!

Írd be:

more < szoveg.txt

Most mit látsz?

Figyeld meg, hogy most nem kellett Ctrl+Z-t írni a kilépéshez, mert a more a szoveg.txt fájl tartalmát jelenítette meg.

Magyarázat: A konzol programok a felhasználókkal a szabványos bemenet (standard input) és a szabványos kimenet (standard output) segítségével kommunikálnak. A szabványos bemenet alapértelmezés szerint a billentyűzet, a szabványos kimenet pedig a képernyő. Ezek azonban, a fenti módon, átirányíthatók. A programok nem is tudják, hogy valójában honnan olvasnak és hová írnak, billentyűzetről/képernyőre, vagy fájlból/fájlba.

Tipp: ha egy régebben beírt parancshoz hasonlót szeretnél újra beírni, akkor a felfelé nyíl billentyűt használva visszakeresheted a régebben beírt sorokat.

Ha a

more >> szoveg.txt

parancsot írod, a szoveg.txt fájl végéhez fűzi az újonnan beírt szöveget (egy > esetén törli a korábbi szoveg.txt-t, ha volt olyan). Ha nem létezett a szoveg.txt, mindkét esetben létrehozza.

A programoknak a szabványos kimenet mellett van egy szabványos hibakimenete is, a hibaüzeneteket ide szokták írni. Alapértelmezés szerint ez is a képernyőre kerül kiírásra. Ha a program kimenetét átirányítjuk, pl. more > szoveg.txt, és a more valami hibaüzenetet szeretne közölni, akkor a hibaüzenet továbbra is a képernyőn jelenik meg, nem kerül a fájlba. Ha a hibaüzenetet szeretnénk fájlba írni, akkor azt a

more 2> hiba.txt

módon adhatod meg.

Megjegyzés. A konzol ablakban nem működik a Ctrl+C másolás és Ctrl+V beillesztés (emlékezzünk, hogy a Ctrl+C a programok bezárására használható). A konzol ablak keretére jobb egérgombbal klikkelve a Szerkesztés menüpontban találod meg a keresett funkciókat. A Megjelölést kiválasztva egérrel tudod kijelölni a vágólapra másolandó szövegrészt, a másolás maga a kijelölés után az ENTER leütésével történik.

Ugyancsak ebben a menüben, a Tulajdonságok pont alatt tudjuk megváltoztatni például a konzolablak méretét (alapértelmezés szerint 80×25 karakter).

Tipp: ha egy meglévő fájl nevét nem szeretnéd végig begépelni, akkor kezdd el az első pár betűvel, és utána nyomd meg a Tab billentyűt. Erre a Windows parancssora ki fogja egészíteni a fájlnevet. Pl. a szoTab olyan lesz, mintha beírtad volna, hogy szoveg.txt.

5 Programok paraméterei

A legtöbb konzolalkalmazás, de gyakran az ablakozó programok is, kaphatnak paramétereket. Ezeket hívjuk parancssori paraméternek. Például a cd .. parancsnál a .. a paraméter. Próbaképp írd be, hogy

notepad szoveg.txt

Mit tapasztalsz?

Egy programnak tetszőleges számú parancssori paramétere lehet, ezeket szóköz választja el egymástól. Ha paraméterként fájlt adunk meg, és az útvonalban vagy a fájlnévben szóköz van, normál esetben a Windows a szóközzel elválasztott elemeket külön paraméternek tekintené, ezért kell ilyenkor idézőjelek közé tenni azt. Pl.:

notepad "c:/c labor/szoveg.txt"

Megjegyzés: a more parancs parancssori paraméterként kaphatja egy szövegfájl nevét, amit megjelenít, vagyis a

more szoveg.txt

parancs ugyanúgy viselkedik, mint a

more < szoveg.txt

parancs. Ez azonban nem általánosítható!

6 Windows pipe

Írd be, hogy

cd c:/Windows/System32
dir

Túl sok fájl neve került kiírásra. A more parancs igazi funkciója, hogy egy szöveget képernyőnyi részekre osztva jelenítsen meg. Használd ezt a mappa tartalmának kilistázására (a | az AltGr+W kombinációval érhető el):

dir | more

A szóköz-t leütve egy képernyőnyivel tovább haladhatsz. Ha csak egy sornyit akarsz léptetni, üss ENTER-t! Kilépni a Q billentyű lenyomásával lehet.

A bemutatott módszer a csővezeték (pipe): az egyik program kimenete adja a másik program bemenetét, vagyis ezúttal is a szabványos kimenet és bemenet átirányításáról van szó.

A programok paraméterei ilyenkor is használhatók, pl.:

dir *.exe | more

Ez csak az .exe kiterjesztésű fájlokat listázza.

Megjegyzés: A ? karakterrel egy, a * karakterrel több karaktert helyettesíthetünk a névben. Pl.:

dir x*e

kilistázza az x-szel kezdődő, e-re végződő fájlokat. Akár több * is lehet:

dir x*py*e

A kérdőjel használata:

dir C_85?.NLS

7 Fájlok másolása, mozgatása és törlése

Lépj a clabor mappádba, majd készíts másolatot a szoveg.txt-ről:

copy szoveg.txt szoveg.txt.old

Hozz létre egy uj nevű mappát, és tedd át ide a szoveg.txt-t!

md uj
move szoveg.txt uj

Lépj az új mappába, majd töröld a szoveg.txt-t:

del szoveg.txt

Lépj vissza a clabor mappába, majd nevezd át az old fájlt:

move szoveg.txt.old szoveg.txt

Átnevezésre a rename vagy ren parancs is használható, de azzal más helyre mozgatni nem lehet.

8 Parancsfájlok

A parancssor számára a parancsokat kötegelve is megadhatjuk, parancsfájl formájában. Ez azt jelenti, hogy egy fájl tartalmazza az egymás után végrehajtandó parancsokat. A parancsfájl .bat kiterjesztésű egyszerű szövegfájl (batch=köteg), amelyet pl. a jegyzettömbbel hozhatjuk létre.

Megjegyzés: szövegfájl alatt azokat a fájlokat értjük, amelyek a Jegyzettömbbel megnyitva olvasható szöveget kapunk. Ilyenek pl. a .txt, .c, .h, .cpp, .bat, .csv típusú fájlok. Bár általában a .doc, .xls, .pdf, stb. fájlok is szöveget tartalmaznak, a Jegyzettömbbel megnyitva nem szöveget, hanem egy ember számára olvashatatlan kódsort látunk. Ezeket bináris fájloknak nevezzük.

Írd be:

notepad masolat.bat

Az új fájlba írd bele:

@rem Átmásolja az összes txt fájlt az olds mappába
@md olds > NUL
@copy /y *.txt olds > NUL
@echo OK

Az echo parancs egyszerűen kiírja az utána írt szöveget. A rem sorok megjegyzések (remark), itt magyarázhatjuk el, hogy mit csinál a programunk.

Mentsd el a fájlt és futtassuk az alábbi parancs beírásával (a .bat akár el is hagyható):

masolat.bat

A parancsfájlok végrehajtása sorról sorra történik, mintha egyesével beírtuk volna azokat a parancssorba. Az egyes végrehajtott parancsok is kiíródnak a képernyőre. Hogy ezt elkerüljük, a sorok elejére a @ karaktert írtuk. Próbáld ki a parancsfájlt a @ karakterek elhagyásával is!

9 További hasznos parancsok

date, time, color, cls, find, type.