Skip to content
Snippets Groups Projects

1. videó segédlet

Mi is a Linux

CLI, terminál, shell

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.

CLI

Command Line Interface, 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(erről később lesz szó) lefuttatja azt.

Miki: ide is

Pár ismertebb shell

sh

Bourne shell (a készítőjének neve után) vagy POSIX 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, majd specifikálva lett a POSIX szabványban.

bash

Bourne-again shell, dupla szójáték. :wink:

A bash 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 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, friendly interactive shell.

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.

Innentől bash-ről lesz szó. Ha olyat olvasol, hogy "írjuk be a shellünkbe", akkor ott a "bashünkre" gondolunk.

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.

Pár shelles fogalom

Mi a parancs?

Redirekció >

Pipe |

Shell execution

Manual page man

Egyéb hasznos shell cuccok

Szövegszerkesztők

Nano

Egyebek

Csomagkezelés

Mi a csomag?

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.

Hogyan telepítsünk csomagokat?

A programok telepíthetjük kézzel (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.

Különböző csomagkezelők

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
parancs apt dnf pacman snap flatpak
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

Hogyan néz ki a Linux fájlrendszere?

Könyvtárak

[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

Jogosultságkezelés

Jogosultságok

olvasás - r

írás - w

végrehajtás - x

Speciális jogosultságok

Különböző alanyok

tulajdonos - owner

csoport - group

minden felhasználó - all users