Skip to content
Snippets Groups Projects
első videó.md 7.42 KiB
Newer Older
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

Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed
A UNIX permission rendszer elemei:
- user-ek
- group-ok
- módok
Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed
Mindezek számok alapján vannak tárolva,
de a programok okosan feloldják nevekre ezeket.
Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed
### User-ek és groupok
Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed
Egy user az pont ugyanaz, mint aminek elképzelted,
egy felhasználó, aki tud programokat futtatni.
Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed
Egy különleges felhasználó a `root`, ő a főfelhasználó,
az ő nevében lehet csak a rendszerbeállításokat módosítani.
Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed
Minden userhez tartozik egy ugyanolyan nevű group is, azonban egy
user több groupban is benne lehet.
Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed
### Jogosultságok
Fodor Patrik's avatar
Fodor Patrik committed
### Speciális jogosultságok