Parancssor alapok
Bevezetés
Órán használtunk valami ehhez nagyon hasonló dolgot

Továbbiakban ezt fogjuk parancssornak nevezni, és ennek a használati területeit próbáljuk meg megvilágítani.
Ha nem működik valami
A Windowson szükségetek lesz a Git Bash telepítésére. Ha megvagytok a kép legfelső sorában jobboldalt látnotok kellene egy lenyíló menüt a + jel és a Split Terminal között.
![]()
Ott jelöljétek ki a Git Bash-t és figyeljetek arra, hogy mindig az legyen kipipálva
Csak Windowson, érdemes lehet beállítani, hogy új terminál megnyitása esetén a Git Bash legyen alapértelmezett. Fogaskerék baloldalon lent -> Beállítások -> a keresőbe írjátok be, hogy "terminál" -> Windows exec pedig a Git Bash elérési útvonalát.

Kezdjük el a parancssor használatát
Javaslom, hogy ti is próbáljatok ki mindent, amit itt csinálunk.
pwd (Print Working Directory)
Linuxban minden valójában egy fájl, ezt érdemes megjegyezni. Minden fájl amit látunk egy fa-szerű hierarchikus konyvtárba van szervezve. A hierarchiában legmagasabb található könyvtárat nevezzük gyökérnek (root), és egy perjellel jelöljük: /
A gyökérkönyvtárban rengeteg mappa található, amelyekben további mappák találhatóak, de nézzünk is egy példát.
/
|-- bin
| |-- file1
| |-- file2
|-- etc
| |-- file3
| `-- directory1
| |-- file4
| `-- file5
|-- home
|-- varAzt az utat amelyen eljuthatunk egy adott fájlhoz, nevezzük útvonalnak (path).
Ahhoz, hogy el tudjunk indulni ezen az úton, nem árt tudni, hogy pontosan hol is vagyunk, erre használható a pwd parancs.

cd (Change Directory)
Most, hogy tudjuk hol vagyunk, kicsit nézzünk körbe a fájlrendszerben. Ne felejtsük el, hogy útvonalak mentén tudunk mozogni a könyvtárak között. Kétféleképpen lehet megadni egy útvonalat.
Abszolút útvonal (Absolute Path): Ez jelzi az útvonalat a gyökérkönyvtárból. Mindig amikor / jelet látunk, gondolhatunk arra, hogy a gyökérkönyvtárból indulunk. Például /home/tukorama/directory/images
Relatív útvonal (Relative Path) ez az útvonal onnan, ahol éppen vagyunk. Tehát ha például a /home/tukorama/directory könyvtárban vagyunk, és ebben található egy images nevű mappa, és szeretnénk belenézni, akkor nem kell a teljes (abszolút, home/tukorama/directory/images) útvonalat megadni, elég csak az adott mappa nevét images/
Most, hogy tudjuk, hogyan lehet útvonalakat választani, nézzünk is pár példát:


Mivel egy idő után kényelmetlen tud a mappák váltogatása a fenti módokon, ezért érdemes megjegyezni pár rövidítést.
. (jelenlegi könyvtár)
.. (szülőkönyvtár, a hierarchiában eggyel feljebb lévő könyvtár)
~ (sajátkönyvtár, itt vannak a saját fájljaid)
- (előző könyvtár, ahol voltál)
Próbáljátok ki ezeket a parancsokat, mit tapasztaltok?
cd .
cd ..
cd ~
cd -ls (List Directories)
Már tudjuk, hogy hogy kell lépkedni könyvtárak között, de nem tudjuk, hogy egyáltalán milyen könyvtárak érhetőek el. Ebben tud nekünk segíteni az ls parancs.


Gyakran előfordul parancsok kapcsán, hogy több információra van szükségünk, vagy éppen teljesen más funkciókkal is rendelkezik egy adott parancs. Ezeket a funkciókat kapcsolók segítségével érhetjük el.
Próbáljátok ki ezeket a parancsokat, mit tapasztaltok?
ls -a
la -l
ls -la
ls -altouch
Egyik legegyszerűbb módszer fájlok létrehozására a touch parancs használata.

Voilà, létrehoztunk egy fájlt.
Touch parancsot az időbélyeg módosítására is használhatjuk, ez azt jelöli, hogy mikor módosították utoljára az adott fájlt.
Próbáljátok ki ezeket a parancsokat, mit tapasztaltok?
ls -l
touch myfile
ls -lfile
Ahogy az első órán beszéltünk róla, a fájlokra érdemes néha nullások és egyesek rendezett halmazaként tekinteni, és a kiterjesztésre pedig úgy, hogy csak azt jelzi, hogy hogyan érdemes értelmezni a nullásokat és egyeseket. Erre a jelenségre könnyen láthatunk példát Linuxon a file parancs használatával.

cat (Concatenate)
Már nagyon jól tudunk tájékozódni a fájlrendszerben, szóval nézzük meg, hogy mit tudunk kezdeni konkrét fájlokkal.
A cat parancsot legalább 2 dologra szokták használni.
cat myfile1 paraméter esetén kiírhatjuk vele az adott fájl tartalmát
cat myfile myfile22 paraméter esetén pedig kiírhatjuk az összefűzött fájl tartalmát
less
Nagyobb méretű fájlok megtekintése esetén kényelmesebb lehet a less parancs használata. Használat esetén a fájl tartalmát oldalanként jeleníteni meg, így könnyedén lehet benne mozogni.
less myfileq megnyomásával lehet kilépni.
cp (Copy)
cp segítségével lehet fájlokat másolni. Fontos, hogy a cp csakis másolja a fájlt, nem mozgatja át, tehát helyben marad az eredeti fájl.

Ha az összes .csv kiterjesztésű fájlt szeretnénk átmásolni, ezt is megtehetjük. A *-ot wildcardnak nevezzük, és bármilyen hosszú szövegre illeszkedik.
cp *.csv /path/to/targetHasonlóan a ? 1 karaktert helyettesít.
cp myfiles_?.txt /path/to/target[] bármilyen karaktert helyettesíthet a zárójeleken belül.
cp images_[abcxyz].png /path/to/targetEgész mappákat az -r (recursive) kapcsoló segítségével másolhatunk.
cp -r images/ ../Documents/mv (Move)
cp-vel ellentétben a move átmozgatja az eredeti fájlt, tehát nem marad helyben. Lehet használni fájlok átnevezésére is.

mkdir (Make Directory)
Könyvtár létrehozása.
mkdir myfolder_1 myfolder_2rm (Remove) és rmdir (Remove Directory)
rm segítségével tudunk fájlokat törölni.
rm random_file.txtHa esetleg nem sikerülne törölni, és nagyon ki szeretnénk törölni azt az adott fájlt, és biztosak is vagyunk benne, hogy semmilyen kárt nem okozunk vele, akkor lehet használni a -f kapcsolót.
rm -f dont_touch_me.zipKétféleképpen is könyvtárakat törölni.
rm -r folder
rmdir folderhelp
Ha bármelyik parancsról információra van szükségünk, vagy csak elfelejtettük, hogy milyen kapcsolókkal rendelkezik, érdemes a help parancs használatához folyamodni.

További hasznos parancsok a második óra utánra
history - előzőleg használt parancsok find - fájl megkeresése exit - kilépés a parancssorból clear - képernyő titszítása echo - kiírás a képernyőre
Streamek, átirányítási operátorok
echo parancs segítségével tudunk egyszerű szövegeket kiírni a képernyőre.

Már számos parancsot és azok kimenetét megismertük, és ezzel el is jutunk a következő témához, I/O (input/output) streamek.
Futtasssuk le az alábbi parancsot.
$ echo Hello World > hello.txtAzt vehetjük észre, hogy létrejött egy hello.txt nevű fájl "Hello World" tartalommal. Bontsuk 3 részre ezt a parancsot.
$ echo Hello WorldLáttuk, hogy ez önmagában kiírná a "Hello World"-t a képernyőre. Minden parancs I/O streameket használ a bementek fogadására, és kimenetek visszaadására. Alapértelmezés szerint az echo parancs a billentyűzetről veszi be a bementet, illetve a képernyőre írja ki a kimenetet. I/O átirányítás viszont lehetővé teszi számunkra, hogy megváltoztassuk ezt a fajta viselekdést.
>> egy átirányítási operátor, amely lehetővé teszi számunkra, hogy megváltoztassuk, hová kerül a szabványos kimenet. Lehetővé teszi, hogy az echo Hello World kimenetét a képernyő helyett egy fájlba küldjük. Ha a fájl még nem létezik, akkor létrehozza nekünk. Ha azonban már létezik, akkor felülírja azt.
code.txtEgyszerűen az a cél, ahová át akarjuk irányítani az outputot.
Használhatjuk még a >>, illetve < operátorokat is.
>
kimenet átirányítása fájlba, a fájl eredeti tartalma törlésre kerül
>>
kimenet átirányítása fájlba, a fájlhoz hozzáíródik a tartalom
<
bemenet átirányítása
Ezeket a parancsokat össsze is lehet fűzni.
$ cat < be.txt > ki.txtPipe
A parancsokat másféleképpen is össze lehet fűzni. Ebben az esetben a | (pipe) karaktert tudjuk felhasználni.
Szeretnénk például lapozhatóvá tenni az ls parancs kimenetét abban az esetben ha túl hosszú lenne. | segítségével az ls kimenetét felhasználhatjuk a less bemeneteként.
$ ls -la /etc | lessLast updated