1. labor: A Windows parancssor használata

Parancssor indítása

A Start menü Futtatás… parancsát választva indítsuk a cmd.exe programot! (A Start menü Programok/Kellékek/Parancssor pontjára kattintva is elindul.) A továbbiakban a megjelenő konzolablakban dolgozunk. A föl-le billentyűkkel kiválaszthatjuk valamelyik korábban beírt parancsot, í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. Írjuk 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íthatjuk vissza. A további lehetőségekről a

prompt /?

paranccsal tájékozódhatunk.

Program indítása parancssorból

Írjuk be:

notepad.exe

Ennek hatására elindul a Jegyzettömb, mintha a Start menüből indítottuk volna. Az ablakot becsukhatjuk.

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 futtathatjuk:

notepad

Mappa parancsok

A mappát (folder) a parancssori parancsok a directory szóból származtatják (a mappák régebbi stílusú neve, magyarul könyvtár). A mappa tartalmának listázása:

dir

Az eredmény a mappa tartalma: 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ítsuk 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.

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 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 dolgozniuk kell majd, ezért jobb, ha mindent a tényleges nevén használnak.

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

md clabor

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

Megjegyzés 2: Ha a ezt írja:

md c labor

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

md "c labor"

Akkor is szabad idézőjelbe tenni, ha nincs benne szóköz? Próbálja 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.

Hozzuk létre ismét a clabor mappát, és lépjünk bele!

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. Írjuk 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. Írjunk be tetszőleges szöveget, és nyomjuk meg az <ENTER>-t. Mi történik? Ezt többször is megismételhetjük. Ha meguntuk, a Ctrl+Z billentyűkombinációval léphetünk ki a more-ból, vissza a parancssorba.

Jegyezzük meg! A more fájlvége jelig olvas be szöveget. Ha ezzel találkozik, kilép. Ha billentyűzetről gépelünk, a Windowsban a fájl, vagyis az általunk gépelt szöveg végét jelet a Ctrl+Z-vel tudjuk jelezni.

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

Írjuk be:

more > szoveg.txt

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

Írjuk be:

more < szoveg.txt

Mit tapasztalunk?

Figyeljük meg, hogy most nem kell 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.

Ha a

more >> szoveg.txt

parancsot írjuk, 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

more 2> hiba.txt

módon adhatjuk meg.

Programok paraméterei

A legtöbb konzolalkalmazás, de gyakran az ablakozó programok is, kaphatnak paramétereket kaphat. Ezeket hívjuk parancssori paraméternek. Például a

cd ..

paraméterként kapja a két pontot. Írjuk be, hogy

notepad szoveg.txt

Mit tapasztalunk? (Ha előbb beírtuk, hogy cd .., akkor most a gyökér mappában vagyunk innen a következő módon is elindíthatjuk a programot:

notepad clabor/szoveg.txt

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ó!

Path

Honnan tudta a Windows, hogy hol van a notepad.exe? Írjuk 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.

Windows pipe

Írjuk 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 egy képernyőnyi részekre osztva jelenítsen meg. Használjuk ezt a mappa tartalmának kilistázására (a | az AltGr+W kombinációval érhető el):

dir | more

A szóközt leütve egy képernyőnyivel tovább haladunk. Ha csak egy sornyit akarunk léptetni, üssünk entert! Kiléphetünk a Q billentyű lenyomásával.

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 ill. bemenet átirányításáról van szó.

A programok paraméterei 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

Másolás és beilleszté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 bal klikkelve a Szerkesztés menüpontban találjuk a keresett funkciókat. A Megjelölést kiválasztva egérrel tudjuk kijelölni a vágólapra másolandó képernyőterületet, a vágólapra másolás 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 80x25 karakter).

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

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

copy szoveg.txt szoveg.txt.old

Hozzunk létre egy uj nevű mappát, és tegyük át ide a szoveg.txt-t!

md uj
move szoveg.txt uj

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

del szoveg.txt

helyette írhattuk volna:

del *

(Ez a mappa összes fájlját törli.) Hogyan tudná letörölni az aktuális mappa alatti összes mappa összes fájlját anélkül, hogy a mappákat törölné?

Lépjünk vissza a clabor mappába, majd nevezzük á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.

További hasznos parancsok

date, time, color, cls, find, type

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.

Írjuk be:

notepad masolat.bat

Írjuk bele:

@rem Átmásolja az összes txt fájlt az olds mappába
@md olds 2> 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, itt magyarázhatjuk el, hogy mit csinál a programunk.

Mentsük el a fájlt és futtassuk (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 írhatjuk. Próbálja ki a parancsfájlt a @ karakterek elhagyásával is!