Skip to content
Snippets Groups Projects
első videó.md 7.06 KiB
Newer Older
  • Learn to ignore specific revisions
  • Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    # 1. videó segédlet
    
    ## Mi is a Linux
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ## CLI, terminál, shell
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    <Note type="tip" label>
    
    Ez a fejezet sok fogalmat tartalmaz, kérlek **_ne_** magold be ezeket.
    Csupán annyi a célja a fejezetnek, hogy akik nemigazán
    használtak CLI-t, azoknak bemutasson pár alapelemet.
    
    A fő cél, hogy értsd, tudd használni; nem az, hogy tudd a definíciókat.
    
    </Note>
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ### CLI
    **C**ommand **L**ine **I**nterface,
    egy felhasználói felület, ami alapvetően szövegesen kommunikál a userrel.
    Szöveg be → szöveg ki.
    Ennél sokkal bővebben nem hiszem,
    hogy bárkinek is be kell mutatni, hogy mit jelent.
    
    ### Terminál
    Ez jeleníti meg a karaktereket és adja meg a programnak a beírt karaktereket.
    Régebben külön céleszközök voltak, ma már programok.
    
    Miki: ide rizsa pls
    
    ### Shell
    Egy olyan CLI program, amibe parancsokat lehet bepötyögni és a shell
    a megfelelő programokat elindítva és összekapcsolva<sup>(erről később lesz szó)</sup>
    lefuttatja azt.
    
    Miki: ide is
    
    ### Pár ismertebb shell
    
    #### `sh`
    [Bourne shell](https://en.wikipedia.org/wiki/Bourne_shell)
    (a készítőjének neve után) vagy
    [POSIX shell](https://en.wikipedia.org/wiki/Unix_shell)
    
    Egy butább shell, ami megtalálható minden UNIX-szerű számítógépen.
    Jó régen, az eredeti UNIX-hoz hozták létre a Bourne shell-t, ami később
    [bővítve](https://en.wikipedia.org/wiki/KornShell), majd specifikálva lett a
    [POSIX](https://en.wikipedia.org/wiki/POSIX) szabványban.
    
    #### `bash`
    **B**ourne-**a**gain **sh**ell, dupla szójáték. 😉
    
    A [bash](https://en.wikipedia.org/wiki/Bash_(Unix_shell)) az alapértelmezett shell a Linux disztribúciók
    túlnyomó többségén. Később ezzel fogunk dolgozni.
    Kellően okos és többnyire elvárható, hogy ott legyen mindenhol, ahova beléptek.
    A hatalmas elterjedtsége (és nagy kompatibilitása) miatt esett erre a választás.  
    
    #### `zsh`
    [zsh](https://en.wikipedia.org/wiki/Z_shell) vagy Z shell.
    
    Gyakorlatilag a bash kibővítése,
    a legtöbb Linuxos disztrón csomagkezelővel telepíthető,
    emellett macOS-en alap shell. Minden bash parancs működik itt is,
    de nem minden zsh parancs működik bash-ben.
    
    #### `fish`
    [fish](https://en.wikipedia.org/wiki/Fish_(Unix_shell)),
    **f**riendly **i**nteractive **sh**ell.
    
    Különlegessége, hogy kifejezetten felhasználóbarátnak van tervezve,
    alapbeállításokkal is nagyon kényelmes használni.
    Azonban *nem* POSIX shell, vagyis a következőekben bemutatott parancsok
    nem feltétlenül működnek benne.
    
    <Note type="warning" label>
    
    Innentől bash-ről lesz szó. Ha olyat olvasol, hogy
    "írjuk be a shellünkbe", akkor ott a "bashünkre" gondolunk.
    
    </Note>
    
    
    ### Hogy is néz ki?
    
    TL;DR: sokféleképpen.
    Például sok helyen így néz ki az alap beállításokkal:
    ```
    [mike@thinkyboi ~]$ ls *.pdf 
    mozilla.pdf
    [mike@thinkyboi ~]$ ls *.txt
    asd.txt  ize.txt  metrics.txt  pcr2.txt  pcrtouse.txt  pcr.txt
    [mike@thinkyboi ~]$ ls *.txt | grep rt
    pcrtouse.txt
    [mike@thinkyboi ~]$ 
    ```
    Ez mit is mutat?
    - `[mike@thinkyboi ~]$`: a prompt
        - mutatja, hogy a `mike` user van belépve
        - a `thinkyboi` nevű számítógépre
        - éppen a `~` mappában vagyunk
        - sima user jogosultságokkal `$`
    - `ls *.pdf`: egy parancs, ami minden .pdf végű fájlt kilistáz
    - `ls *.txt`: egy parancs, ami minden .txt végű fájlt kilistáz
    - `ls *.txt | grep rt`: egy parancs, ami minden .txt végű fájlt kilistáz, mely nevében megtalálható az "rt"
    
    Ne ijedjünk meg az ismeretlen fogalmaktól, erről mind lesz szó bővebben.
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ### Pár shelles fogalom
    
    #### Mi a parancs?
    
    #### Redirekció `>`
    
    #### Pipe `|`
    
    #### Shell execution
    
    #### Manual page `man`
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    #### [Egyéb hasznos shell cuccok](https://devhints.io/bash)
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    ### Szövegszerkesztők
    
    #### Nano
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    #### Egyebek
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    # Csomagkezelés
    
    ### Mi a csomag?
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    A különböző programokat nevezzük csomagoknak (package), melyek 
    a bináris fájlon kívül különböző konfigurációs fájlokat és 
    a program más programoktól való függőségeit is tartalmazza.
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ### Hogyan telepítsünk csomagokat?
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    A programok telepíthetjük [kézzel](http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-10.1.pdf) (8.2-es fejezet), de ez 
    általában nehézkes művelet és nem valami hatékony,
    ezért csomagkezelőt (package maganer) szoktunk használni a csomagok 
    telepítéséhez. A csomagkezelő egy egyszerű program, mellyel telepíthetünk, 
    frissíthetünk, eltávolíthatunk és kereshetünk csomagokat. 
    
    Mi az apt nevű csomagkezelőt fogjuk használni a továbbiakban.
    
    ```
    [patrik@patrik-laptop ~]$ sudo apt update
    [patrik@patrik-laptop ~]$ sudo apt search cowsay
    [patrik@patrik-laptop ~]$ sudo apt install cowsay
    [patrik@patrik-laptop ~]$ sudo apt upgrade
    [patrik@patrik-laptop ~]$ sudo apt remove cowsay
    ```
    
    Az `apt update` paranccsal frissíthetjük az apt adatbázisát, mely a
    csomagok elérhetőségéről tárol adatokat. 
    
    Az `apt search a_csomag_neve` paranccsal a csomagkezelő megkeresi a 
    hasonló nevű csomagokat és kilistázza azokat.
    
    Az `apt install a_csomag_neve` paranccsal a megadott csomagot telepíti a 
    csomagkezelő, ha azt megtalálja.
    
    Az `apt upgrade` paranccsal a telepített csomagokhoz elérhető frissítéseket 
    telepíti a csomagkezelő.
    
    Az `apt remove a_csomag_neve` paranccsal a megadott csomag távolítható el.
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ### Különböző csomagkezelők
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    A különböző Linux disztribúciók különböző csomagkezelőket használnak, ilyenek például
    az alábbi táblázatban található csomagkezelők is. Néhány csomagkezelő disztribúcióhoz van kötve, 
    azonban egyre jobban kezdenek elterjedni a disztribúcióktól független csomagkezelők is.
    
    - `apt` Debian és Ubuntu alapú disztrókon
    - `dnf` Fedora 
    - `pacman` Arch Linux
    - `flatpak` és `snap` disztrófüggetlen
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    | parancs  | apt  | dnf  | pacman  | snap  | flatpak |
    |---|---|---|---|---|---|
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    | telepítés  | install  | install  | -S  | install  | install  |
    | adatbázis frissítése  | update  | check-update  | -Sy  | automatikus  | a frissítéssel együtt ez is megtörténik (update)  |
    |  frissítés | upgrade  | upgrade | -Syu | automatikus (ha kézzel akarod: refresh)  | update  | 
    | törlés  | remove  | remove  | -R  | nincs ilyen | nincs ilyen  |
    | törlés beállításokkal  | purge  | nincs ilyen  |  -Rn | remove  |  uninstall |
    | keresés  | search  | search  | -Ss  |  find  |  search |
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    ## Hogyan néz ki a Linux fájlrendszere?
    
    
    ### [Könyvtárak](https://www.linux.com/training-tutorials/linux-filesystem-explained/)
    
    ```
    [patrik@patrik-laptop ~]$ tree -L 1 /
    /
    ├── bin -> usr/bin
    ├── boot
    ├── dev
    ├── etc
    ├── home
    ├── lib -> usr/lib
    ├── lib64 -> usr/lib
    ├── lost+found
    ├── mnt
    ├── opt
    ├── proc
    ├── root
    ├── run
    ├── sbin -> usr/bin
    ├── srv
    ├── sys
    ├── tmp
    ├── usr
    └── var
    ```
    
    #### root `/`
    
    #### home `/home`
    
    #### konfigurációs fájlok `/etc`
    
    #### `/var`
    
    #### `/usr`
    
    #### `/lib`
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    ## Jogosultságkezelés
    
    ### Jogosultságok
    
    
    olvasás - `r`
    
    írás - `w`
    
    végrehajtás - `x`
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ### Speciális jogosultságok
    
    
    ### Különböző alanyok
    
    tulajdonos - owner
    
    csoport - group
    
    minden felhasználó - all users