Linux

Linux je označení pro svobodné operační systémy (pod licencí GPLv2; mohou však být zpoplatněny použitím komerčního software) založené na linuxovém jádru (kernelu). První verzi linuxového jádra naprogramoval v jazyce C Linus Torvalds v roce 1991. Do následného vývoje se pustila celá programátorská komunita, Torvalds je ovšem stále brán jako hlavní tvůrce a na komunitní tvorbu dohlíží.

Charakteristika

Linuxové jádro je založeno na operačním systému UNIX.

UNIX (např. Solaris) je placený, používá pouze prostředí příkazové řádky a vyžaduje specifický hardware – používá se proto hlavně na velkých serverech.

Linux k příkazové řádce (CLI) přidává grafické prostředí (GUI), běží prakticky na všem, co má procesor, a je zpravidla distribuován zdarma. Jednotlivé linuxové distribuce (distra; jednotlivé verze OS založené na linuxovém jádru) se zaměřují na různé věci – existují více user-friendly (Ubuntu (založeno na OS Debian), Mint, Fedora), komerční a placené (Red Hat Enterprise Linux) i čistě CLI distra. Různorodost distribucí také rozšiřuje možnosti použití (od serverů až po klasické PC). Vyskytuje se i označení GNU/Linux, které poukazuje na první použití linuxového jádra, a to v rámci operačního systému GNU.

Vlastnosti

POSIX – Portable Operating System Interface; zajišťuje jednotné rozhraní pro přenos aplikací mezi různými hardwarovými platformami; poděděné od systému UNIX

multitasking – programy mohou běžet současně a vytvářet několik procesů i podprocesů, zároveň je umožněno více autentizovaným uživatelům používat systém naráz (jeden uživatel například přímo, druhý přes síť; systém disponuje dohromady šesti konzolemi)

široká podpora souborových systémů – podporuje systémy jako EXT4, EXT3, EXT2 (původní, není žurnálovací), FAT, NTFS a další…

Souborový systém

Momentálně je hlavním souborovým systémem žurnálovací EXT4 (zapisuje si předem souborové změny pro případ výpadku).

EXT4 je zpětně kompatibilní nástupce EXT3: přidal online defragmentaci (během zápisu dat, bez nutnosti odpojení média), zvětšil maximální velikost připojeného svazku na 1 EiB (1024 PiB) s až 16TiB soubory (EXT3 max. 16 TiB a 2 TiB pro soubory) a odstranil limit podadresářů.

Adresáře jsou rozděleny do následující struktury:

/ – kořenový adresář

/boot – umístění linuxového jádra

/bin – základní spustitelné soubory pro všechny uživatele

/etc – globální konfigurační soubory systému

/home – domovské adresáře jednotlivých uživatelů

/mnt – podadresáře s přípojnými paměťovými médii (např. /mnt/hdd)

/media – podadresáře s vyměnitelnými médii (např. /media/<username>/cdrom)

/root – domovský adresář superuživatele

Přístupová práva jsou podle unixového vzoru. Uživatelská jména typicky používají malé znaky ASCII tabulky a tečky místo mezer. Z přístupového hlediska je nutné mít uživatelský identifikátor UID a alespoň jedno GID (číslo skupiny), podle čehož se poté řídí oprávnění.

Existují 3 typy oprávnění: r (Read – čtení / výpis obsahu adresáře), w (Write – zápis) x (eXecute – spuštění / vstup do adresáře). Při výpisu oprávnění je prvně uveden typ (- pro soubod, d pro adresář) a pak tři trojice oprávnění (pro vlastníka, pro stejnou skupinu a pro ostatní uživatele): například -rwxrw-r-x.

Instalace software

V Linuxu se nejčastěji setkáme se svobodným software (Open/Libre Office, Gimp, XnView…), který se neinstaluje pomocí instalačních EXE souborů (Windows), nýbrž využívá repositáře – internetové servery se softwarovými balíčky pro jednotlivé distribuce. Správu balíčků umožňuje CLI, můžeme se však setkat i se správci balíčků.

Klávesové zkratky a příkazy v konzoli

Využívá se terminál (shell). Programy psané pro terminál musí být pro interpretr na začátku uvedeny pomocí #!/bin/bash (pro nejpoužívanější skriptovací shell jazyk – BASH).

Důležité jsou i zkratky pro přepínání mezi jednotlivými CLI a GUI – v Ubuntu pomocí Ctrl + Alt + F1–F7.

sudo – spustí příkaz s administrátorským oprávněním (su navíc do superuser režimu úplně přepne)

man čeho – manual; zobrazí dokumentace zadaného příkaze (podobný parametru -h)

pwd – print working directory; vypíše momentální pozici

cd – change directory; změní adresář (~ pro /home; - pro předchozí; . pro momentální; .. pro vyšší úroveň)

ls – list; vypsat seznam souborů v aktuálním adresáři (-l pro detaily; -a pro neviditelné (. na začátku))

cp co kam – copy; vytvoří kopii zadaného souboru

mv co kam – move; přesune zadaný soubor

rm co – remove; smaže zadaný soubor souboru (-r pro rekurzivní smazání celého adresáře i s obsahem; -f pro mazání silou – bez dotazů)

chmod mód čeho – change modes; změní přístupová oprávnění k zadanému objektu (mód se skládá z označení oprávnění (1. písmeno z User/Group/Others/All), operace (=/+/-) a oprávnění (r/w/x))

chown kdo[:skupina] čeho – change owner; změní vlastníka:skupinu zadaného objektu

ln co kam – link; vytvoří odkaz na soubor

mkdir co – make directory; vytvoří nový adresář v aktuálním adresáři

rmdir co – remove directory; smaže zadaný adresář

ps – process status; vypíše momentálně běžící procesy (-u root pro administrátorský výpis; -A pro výběr všech procesů)

> – přesune výstup na zadané místo (např. do souboru) (2> pro přesun chybových hlášení; &> pro přesun normálního výstupu i chybových hlášení)

» – přidá výstup na konec zadaného souboru

kill id – zabije zadaný proces

killall co – zabije všechny procesy se zadaným jménem

cat co – concatenate; vypíše obsah souboru (lze určit více souborů (oddělení mezerou))

echo co – vypíše zadaný argument (může být například systémová proměnná (značená $))

set – vypíše systémové proměnné

export co – vytvoří/upraví systémovou proměnnou

grep co – vyhledá zadaný textový řetězec

find co – vyhledá zadané složky

ifconfig – vypíše informace o síťových rozhraních v systému

| – přesune výstup do jiného vstupu jiného příkazu (např. set | less)

more – vypíše výstup po jednotlivých stránkách

less – vypíše výstup po jednotlivých stránkách, ale již nemusí načítat celý soubor načítat

Ctrl + C – ukončí běžící proces (čeká na odpověď procesu – umožňuje vyčištění apod.)

Ctrl + Z – vynuceně pozastaví běžící proces

& – spustí příkaz na pozadí (dává se na konec)

bg – přesune poslední proces z popředí na pozadí (prvně se musí pozastavit)

fg – přesune poslední proces z pozadí do popředí (lze rovněž připsat ID procesu)

jobs – vypíše procesy běžící na pozadí