Kihagyás

1. gyakorlat

Témák:

  • Linux alapok
  • C nyelv alapok

Linux

[Linux tutorial videó] (https://www.youtube.com/watch?v=Wgi-OfbP2Gw)

[37 Linux commands you sholud know] (https://www.howtogeek.com/412055/37-important-linux-commands-you-should-know/)

Linux operációs rendszer terminál

  • Terminal
    • Linux kezelői felület kifejezetten gépi parancsok megadására
    • (Windows-ban: command prompt)
  • Tabulátor
    • Segédeszköz a terminálban
    • A dupla tab kiírja a gépelt kifejezés befejezési lehetőségeit
  • Billentyű kombinációk
    • ctrl + c - megszakítja a terminálban futó programot
    • ctrl + d - bezárja a terminál aktuális tab-ját, kilép
    • ctrl + shift + c - a vágólapra másolja a kijelölt szöveget
    • ctrl + shift + v - a terminálba másolja a vágólapon lévő szöveget
  • Kapcsolók: a legtöbb parancsnak vannak kapcsolói, amik módosítják a program futását

Leggyakoribb Linux terminal parancsok

Parancs Minek a rövidítése? Funkciója
man <parancs> Manual Kiírja a terminálra a parancs használatát, kapcsolóit, készítőjét, egyéb információkat. (Navi: nyilakkal.) :q – kilépés
pwd Print working directory Kiírja az aktuális könyvtárat, ahol vagyunk
ls List Kiírja az aktuális könyvtár tartalmát (csak neveket). -l kapcs.: kiír egyéb adatokat
cd <célmappa> Change directory Könyvtárat tudunk váltani vele. A megadott almappába mozgunk át. A cd .. a szülőkönyvtárba visz
mkdir <mappanév> Make directory Létrehoz az aktuális könyvtárban egy alkönyvtárat a megadott néven
touch <fájlnév> Létrehoz egy üres fájlt, megadható a kiterjesztés is
cp <mit> <hova> Copy A fájlt átmásolja a megadott könyvtárba. -r (recursive) kapcs.: Könyvtárat másolhatunk vele
mv <mit> <hova> Move Fájlt vagy könyvtárat mozgat a megadott helyre
rm <fájlnév/mappanév> Remove Fájlt töröl. -r kapcs.: könyvtárat töröl
echo <szöveg> A parancs után megadott szöveget kiírja a terminálra
> <fájlnév> [operátor] A terminálra írt szöveggel felülírja a megadott fájlt (vagy létrehozza, ha még nem létezik)
>> <fájlnév> [operátor] A terminálra írt szöveget hozzáfűzi a megadott fájlhoz (nem írja felül)
head <fájlnév> A megadott fájl első 10 sorát kiírja a terminálra. -n X kapcs.: A megadott fájl első X sorát írja ki a terminálra
tail <fájlnév> A megadott fájl utolsó 10 sorát kiírja a terminálra. -n X kapcs.: A megadott fájl utolsó X sorát írja ki a terminálra
cat Concatenate Többfunkciós parancs szövegek kezelésére. A beírt szöveget írja ki terminálra. Ctrl+c-vel lépünk ki.
cat <fájlnév> Concatenate A fájlban található szöveget másolja ki terminálra. Több fájl is megadható.
; [operátor] Utasításhatároló, utasításokat írhatunk vele egy sorba
grep <fájlnév> -e <"keresett szöveg"> A megadott karakterláncot keresi a megadott fájlban
grep -rnw -e <"keresett szöveg"> Rekurzívan, az aktuális könyvtárból kiindulva keres minden fájlban (és alkönyvtárban is)

További hasznosságok

  • Fájlkereső utasítások:
    • find
    • locate
  • Utasítások összefűzése: | operátor
    • Az első utasítás kimenete a következő utasítás bemenete lesz
  • Process kezelő utasítások:
    • kill
    • ps
    • top
    • htop (ugyanaz, mint top, csak szebb)
  • Jogosultságok kezelése:
    • chmod
    • chown
    • sudo
  • Hálózati utasítások:
    • ping
    • ssh
    • scp
  • A hardver specifikációja: lscpu
  • Linuxos Total Commander: midnight commander
  • Szövegszerkesztők:
    • mcedit (commander szövegszerkesztője)
    • less
    • nano
    • vim
    • emacs

C nyelv alapok

Kiterjesztés, fordító

  • Kiterjesztés: .c
  • Linux C fordító: gcc
    • A gcc futása sok kapcsolóval módosítható
    • Ajánlott használni: -Wall

Meghívás és futtatás

  • A C programoknak szükséges egy belépési pont: ez a main() függvény
  • Fordító meghívása: gcc fajlnev.c
  • Futtatás: ./a.out

Az első C kódunk

#include <stdio.h>

int main()
{
    printf("Hello World!\n");
    return 0;
}

#include <stdio.h>

  • A #include egy makró, azaz egy speciális utasítás, amely a fordító előfeldolgozó rendszerének szól.
  • Arra utasítja az előfeldolgozót, hogy az stdio.h fejlécállomány teljes tartalmát másolja a kódunk elejére
  • Fejlécállkmány = header fájl. Kiterjesztése: .h
  • Az stdio.h a standard könyvtár (library) egy része
    • Előre megírt függvényeket, konstans változókat, makrókat tartalmaznak, melyeket akár mi is megírhatunk

Main

Sor Jelentése
int a main fv. javasolt visszatérési típusa
{} A függvényen belül végrehajtandó utasítások kezdő- és végpontja
return 0; A main helyes futásának esetén 0-t ad vissza
printf("Hello World!\n"); Kiírja a konzolra a Hello World! szöveget és sort emel utána

Megjegyzések

  • Minden függvénynek kötelezően van visszatérési típusa
  • Mindig adjunk visszatérési típust
  • Void: nincs visszatérési értéke
  • A printf egy az stdio.h-ban található előre implementált függvény
    • Az stdio.h headerben vannak a ki- és bemeneti (IO) műveletek