A korábbi fejezetekben megismerkedtünk a C# nyelv minimális alapegységeivel. Itt az ideje, hogy megtanuljuk a Konzol használatát, hogy gyakorlat orientáltak maradjunk és tudjunk a későbbiek során látványos példákat alkotni.
A Windows alapvetően egy grafikus operációs rendszer, de kompatibilitási és adminisztrációs okokból rendelkezik konzol felülettel is. A konzolfelület egyesek szerint idejétmúlt, azonban a tapasztalat azt mutatja, hogy egy jól megalkotott konzolfelületen sokkal produktívabban lehet munkát végezni, mint egy grafikus felületen. Persze mindennek ára van: részlegesen fel kell áldoznunk a felhasználóbarátságot és helyettesítenünk kell minimális konzol ismeretekkel.
Windows esetén két konzol használatára is lehetőségünk van. A régebbi parancsértelmező a CMD.exe. Ez a parancsértelmező a DOS parancssorát utánozza, némi kiegészítésekkel. Ez a mai napig az alapértelmezett parancssor felület.
A másik, jóval fejlettebb megoldás a PowerShell. Ez a Windows Vista óta része a rendszernek, teljesen moduláris. Az alapjait C#-ban írták és modulokkal (beépülő parancsok segítségével) programozható C#-ból. Jóval fejlettebb adminisztrációs lehetőségekkel rendelkezik, mint a CMD.exe. Ezért főként Szerver adminisztrációra használatos.
A Parancssor a Windows verziótól függően a Start menü különböző pontjain található meg. Ezért a leggyorsabb és leghatékonyabb megoldás, ha a futtatás ablakból indítjuk el. Ehhez a (Windows) és a R gombot kell egyszerre lenyomnunk.
A megjelenő ablakba pedig a CMD.exe nevet kell írnunk. Az OK gombra kattintva elindul a parancssor. A megjelenő ablak szöveges felépítésű. Hasonlót a Hello World programunk futtatásakor láthattunk.
A program indítás után kiírja az aktuális Windows verziószámát, majd megjeleníti a prompt-ot. A Prompt a beviteli sor. Alapbeállításon az aktuális mappát jeleníti meg. Ez indítás után minden esetben a felhasználó saját könyvtára lesz.
A parancssor ablak mérete alapértelmezetten 25 sorból és 80 oszlopból áll. Ennek oka az, hogy az első IBM PC-k számára szánt DOS-ban is ez volt a felbontás. Természetesen ez növelhető. A címsoron bal kattintás után megjelenő tulajdonságok menüben ki kell választani a tulajdonságokat és azon belül módosítható.
A program egy úgynevezett shell1 felület, amin keresztül speciális parancsok segítségével kapcsolatot teremthetünk a számítógéppel.
A parancsok lehetnek programok, vagy beépített parancsok. Windows esetén a legtöbb parancs, amit a cmd.exe biztosít, beépített. Programokat, parancsokat indítani úgy tudunk, hogy begépeljük a nevüket a prompt-ba és lenyomjuk az Enter gombot.
Windows esetén az értelmező nem különbözteti meg a kis- és nagybetűs neveket. Ahhoz, hogy a shell felületről programot tudjunk indítani, abban a mappában kell lennünk, ahol a program található, vagy a program mappájának szerepelnie kell a keresési útvonalban.
A keresési útvonal egy speciális környezeti változó . Lényegében azoknak a mappáknak a listája, amiben a cmd.exe a parancs kiadása után keresni próbálja a programot. Lekérdezni a következő parancs segítségével tudjuk:
echo %path%
Módosítani pedig a következő parancs segítségével lehet:
set ujmappa="c:\akármi"
set PATH=%PATH%;%ujmappa%
Az első parancs létrehoz egy ujmappa változót, aminek az értéke a C:\akármi lesz. Ezt a második parancs hozzáfűzi a path változóhoz. Ennek a módszernek az előnye, hogy az ujmappa változóval hivatkozhatunk a beállított útvonalra később is.
A CMD.exe a menet közbeni Path módosításokat nem tárolja. A módosítás csak addig lesz érvényben, amíg a parancssor ablakot be nem zárjuk. Permanens módosításhoz a Speciális rendszerbeállításokat kell megnyitni (Vezérlőpult → Rendszer → Speciális rendszerbeállítások). A megjelenő ablakban a Speciális fül alján található Környezeti változókra kell kattintani, majd a rendszerváltozók között ki kell keresni a path változót és az értékét módosítani a kívánt beállításokkal.
Itt megjegyezném, hogy a path változó értékét sose töröljük, mert érdekes, közel használhatatlan rendszerműködést eredményez.
A parancsokat különböző paraméterekkel és kapcsolókkal láthatjuk el. A paramétereket szokás argumentumoknak is nevezni. Ezek egyes programok esetén olyan beállítások megadására szolgálnak, mint a kimeneti fájlnév, vagy hasonló funkcióval bírnak. A kapcsolók speciális argumentumok, amelyek megváltoztatják a program működését. Jellemzőjük, hogy egy speciális karakterrel kezdődnek. Windows esetén az ajánlás a / jel lenne. Unix-szerű alkalmazások erre a célra a – karaktert használják. A – jel után általában egy karakter áll. Ezeket rövid nevű kapcsolóknak szokás nevezni. A rövid nevű kapcsolók mellé szokás egy hosszabb nevű kapcsolót is megadni. Ezek Unix stílus esetén két kötőjellel ( — ) kezdődnek. A Windows stílusú / jellel kezdődő kapcsolók lehetnek egy karakteresek, vagy egész szóból állók is. Erre nincs tervezői ajánlás. Amennyiben nem vagyunk biztosak egy program használatát illetően, a legjobb kezdési tipp, hogy a /? kapcsolóval vagy a –-help segítségével indítjuk el. Ebben az esetben a legtöbb program kiírja a használatának a módját. Ha pedig minden kísérletünk csődöt mond, érdemes rákeresni az adott program használati utasítására az interneten.
A parancsokat és az argumentumokat a parancsértelmezőben a szóköz karakter választja el. Így a szóközöket tartalmazó argumentumokat és kapcsolókat a program kettévágja, mielőtt átadná a futtatandó programnak. Ezért a szóközöket tartalmazó argumentumokat védeni kell az idézőjelek segítségével.
A fájlnév típusú argumentumokra a program kiegészítési segítséget is biztosít, méghozzá a TAB gomb megnyomásával.
Az alábbi felsorolás a legfontosabb parancsokat tekinti át:
-
cls
Törli a konzol tartalmát.
-
cd
Mappa váltásra szolgál. Speciális mappa a .. mivel ekkor egy mappával feljebb lép. Az egy pont az aktuális mappát jelöli. Tehát a cd . kiadása nem csinál semmit. Ha a cd parancsnak a \ jelet adjuk meg mappának, akkor az aktuális meghatjó gyökérmappájára tudunk váltani.
-
[a-z]:
A kiválasztott betűjelű meghajtóra lép át.
-
copy
Fájl másolás. Első paramétere a forrás fájl, a második paramétere pedig a cél fájl.
-
move
Fájl áthelyezés, vagy átnevezés. Áthelyezés történik, ha az első paraméterben megadott fájlnév mappája nem egyezik a második paraméterben megadott fájl mappájával. Ha a mappák azonosak, akkor a fájl nevét módosítja.
-
dir
Kilistázza az aktuális mappa tartalmát.
-
del
Paraméterként megadott fájl törlése.
-
rmdir
A paraméterként megadott üres mappa törlése.
-
title
A parancsor ablak címét módosítja a paraméterként megadott szövegre.
-
start
A paraméterként megadott program, vagy parancs futtatása külön ablakban.
-
time
Aktuális idő lekérdezése és módosítása.
-
date
Aktuális dátum lekérdezése és módosítása.
A parancsok részletes leírásáról a Windows súgó megfelelő menüjében is lehet tájékozódni, vagy az alábbi Wikipédia cikken keresztül: https://hu.wikipedia.org/wiki/Windows_XP-parancsok_listája A cikk Windows XP rendszerhez íródott, de a cikkben szereplő parancsok újabb Windows rendszerek esetén is ugyanúgy működnek.
Ki – és bemenet fájlba/fájlból átirányító operátorok
Mint ahogy a név is mutatja, ezen operátorok arra jók, hogy egy, a lemezen lévő fájlt bemenetképpen szolgáltassunk parancsnak, vagy a parancs kimenetét fájlba írjuk. Ezen célra a > és < jelek használhatóak. Használatuk:
parancs > kimenet
A parancs által a képernyőre írandó szöveget nem jeleníti meg, helyette beleírja a kimenet fájlba.
parancs >> kimenet
Hasonlóképpen működik, mint a sima > operátor, azonban ha a kimenet fájl már létezik, akkor nem írja felül azt, hanem a fájl végére fűzi a kimenetet.
parancs < bemenet
Olyan programok esetén használható, amelyek billentyűzetről várnának bemenetet. Ezen operátor segítségével a bemenet szolgáltatható egy fájlból.
Parancsok kimenetének összekapcsolása
Unix rendszerekhez hasonlóan Windows alatt is lehetőség van egy parancs kimenetének közvetlen beadagolására egy másik programba. Ezen technikát Pipe-oknak nevezik, amely magyarul csővezetéket jelent. A Pipe lényegében úgy működik, mintha a kimenetbe átirányító fájl a memóriában helyezkedne el. A másik program, amibe meg átirányítunk, ezen „fájlt” olvassa. Ez a fájl csak a Pipe-on keresztül összekapcsolt programok számára látható,illetve csak az összekapcsolás ideje alatt létezik. Valamint nem az egész fájl helyezkedik el a memóriában, hanem mindig csak egy fix méretű részlete, hiszen csak előre lehet haladni a fájlban. Pipe-on keresztüli összekapcsolásra a Pipe jel ( | ) operátor használható. Ezen operátor magyar billentyűzetkiosztás mellett az ALTGR+W gombok megnyomásával csalogatható elő. Használata:
program1 | program2
Folyamatok, parancsok megszakítása, másolás, beillesztés
Parancssori alkalmazások esetén a másolásra megszokott CTRL+C billentyűkombináció speciális jelentéssel bír, mivel megszakítja a program futását. Ez a billentyűkombináció régebbi, mint maga a DOS. A Unix rendszer ezt a kombinációt alkalmazta futó a program megszakítására. Ezt vették át a DOS megalkotói, aztán kompatibilitási okokból a kombináció maradt.
Mivel ebben az időben a DOS egy feladatos mivoltából adódóan2 nem létezett vágólap, ezért a vágólap kezelése felesleges volt. A Windows vágólap kezelés ezért gyorsbillentyűkkel nincs megvalósítva. A CMD ablak címsorán való bal kattintásra megjelenő menüben a szerkesztés menüponton belül tudjuk elérni a kijelölés, másolás és beillesztés funkciókat, vagy Windows 10 esetén engedélyezve van az úgynevezett gyors kijelölés mód.
Ennek segítségével ha az egér bal gombját lenyomjuk, akkor szöveget tudunk kijelölni, ami azonnal a vágólapra másolódik. Vágólapról beilleszteni az egér bal gombjának lenyomásával tudunk.
Powershell és Windows terminal
A Windows újabb változataiban a cmd.exe helyett alapértelmezetten a Powershell valamelyik változata található meg. A Powershell először 2006-ban a Windows Vista-ban mutatkozott be. Ez egy újragondolt parancsértelmező, amit .NET-ben írtak. Elsősorban IT adminisztrátoroknak szánták, de az évek alatt egyre inkább szerves része lett a Windows verzióknak a könnyű .NET-es bővíthetősége miatt. A Powershell-ből két fő változat létezik. A „klasszikus”, Windows-ba épített .NET Framework-re épülő változat (powershell.exe), illetve a Core változat (pwsh.exe), ami multiplatform és a Windows Store-ból vagy a https://github.com/PowerShell/PowerShell címről szerezhető be. A Core változatból a „Core” szót a 7-es változattól elhagyták a .NET elnevezési sémát követve.
A Windows Terminal egy terminál emulátor, ami Windows 11-en képes helyettesíteni az alapértelmezett konzol ablakot. Rengeteg olyan funkcióval rendelkezik, ami igazán hasznossá teszi (Profilok, VT terminál kódok támogatása, Lapfülek, stb…). Windows 10 és 11 esetén szintén a Windows Store-ból telepíthető.
A Powershell alapvető használata nem igényel különösebb tudást, mivel alapvetően úgy tervezték, hogy a cmd.exe helyett használható legyen. Ezért a cmd.exe használatánál ismertetett funkciók ugyanúgy működnek Powershell esetén is. Azonban érdemes megjegyezni, hogy a Powershell parancsai úgynevezett alias-ok segítségével valósítják meg a visszafele kompatibilitást. Az alias-ok lehetővé teszik, hogy egy adott parancsot többféleképpen nevezzünk. Ebből adódóan bár a parancs nevek egyeznek, a mögöttes működés nem 100%-ig azonos. Ez különösen akkor mutatkozik meg, ha egzotikusabb Unix parancsokat adunk ki, mivel ezek is alias-ok segítségével vannak átirányítva a „natív” Powershell parancsokra.
Az alábbi táblázat a Powershell natív parancsait és a hozzájuk rendelt aliasokat foglalja össze:
| cmd parancs | Powershell natív parancs |
|---|---|
cls |
Clear-Host |
cd |
Set-Location |
copy |
Copy-Item |
move |
Move-Item |
dir |
Get-ChildItem |
del |
Remove-Item |
rmdir |
Remove-Item |
start |
Start-Process |
time |
Get-Date |
date |
Get-Date |
A Get-Date dátumot és időt egyszerre mutatja, módosításra a Set-Date parancs használható.
További információ a Powershellről és a https://docs.microsoft.com/en-us/powershell/ címen található.
Terminál és shell
A terminál és a shell alapvetően két különböző dolog, de gyakran összekeverik őket, mert a mindennapi interakcióban gyakran együtt használjuk őket.
A terminál egy hardvereszköz vagy szoftveralkalmazás, amely lehetővé teszi a felhasználó számára, hogy parancssoros felületen (Command-Line Interface – CLI) kommunikáljon a számítógéppel. Régebben a terminál egy különálló eszköz volt, amely a számítógéphez volt csatlakoztatva és lehetővé tette a szöveges parancsok megadását és az eredmények megtekintését. Napjainkban a terminált szoftvereszközök formájában használjuk. A modern terminál alkalmazások a mai napig VT-1003 kompatibilisek. A Windows korábbi változatai nem követték a VT-100 kompatibilitást, mivel elsődlegesen DOS kompatibilisnek kellett lenniük és a DOS ezt nem követte. Azonban a Windows 10 2016-os kiadása óta a beépített konzol ablak és annak utódja a Windows Terminal is VT-100 kompatibilis.
A shell egy olyan program, amely fut a terminálban és lehetővé teszi a felhasználó számára, hogy parancsokat adjon ki a számítógépen végrehajtásra. A shell felelős a parancsok feldolgozásáért, az operációs rendszerrel való kommunikációért és a parancsok végrehajtásáért. A Linux rendszerek gyakran a bash (Bourne Again Shell) programot használják, míg a Windows rendszerek általában a "Command Prompt" vagy a "PowerShell" valamelyik verzióját alkalmazzák.
2026.01.24. @ 05:22
Helytelen: „Vágólapról beilleszteni az egér bal gombjának lenyomásával tudunk.”
Helyes: „Vágólapról beilleszteni az egér jobb gombjának lenyomásával tudunk.”