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 laborké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
szo
Tab olyan lesz, mintha beírtad volna, hogyszoveg.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 amore szoveg.txtparancs ugyanúgy viselkedik, mint a
more < szoveg.txtparancs. 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*ekilistázza az x-szel kezdődő, e-re végződő fájlokat. Akár több
*
is lehet:dir x*py*eA 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
,
Í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!