Parancssor alapok

Bevezetés

Órán használtunk valami ehhez nagyon hasonló dolgot

Parancssor Visual Studio Codeban

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.

Git Bash beállítása alapértelmezett parancssori értelmezőként

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
|-- var

Azt 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.

pwd parancs kimenete

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:

Abszolút útvonal
Relatív útvonal

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.

ls parancs használata
ls parancs használata másik könyvtárban

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 -al

touch

Egyik legegyszerűbb módszer fájlok létrehozására a touch parancs használata.

touch parancs használata fájlok létrehozásához

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 -l

file

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.

file parancs használata

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 myfile

1 paraméter esetén kiírhatjuk vele az adott fájl tartalmát

cat myfile myfile2

2 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 myfile

q 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.

cp parancs használata

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/target

Hasonló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/target

Egé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.

mv parancs használata

mkdir (Make Directory)

Könyvtár létrehozása.

mkdir myfolder_1 myfolder_2

rm (Remove) és rmdir (Remove Directory)

rm segítségével tudunk fájlokat törölni.

rm random_file.txt

Ha 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.zip

Kétféleképpen is könyvtárakat törölni.

rm -r folder
rmdir folder

help

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.

help cd

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.

echo parancs

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.txt

Azt 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 World

Lá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.txt

Egyszerűen az a cél, ahová át akarjuk irányítani az outputot.

Használhatjuk még a >>, illetve < operátorokat is.

Operátor
Jelentés

>

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.txt

Pipe

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 | less

Last updated