====== Shell ====== **Shell** je program, který přijímá příkazy od uživatele (z klávesnice) a předává je operačnímu systému k provedení. Existují dva základní typy: * **CLI (Command Line Interface):** Textové rozhraní (příkazová řádka). * **GUI (Graphical User Interface):** Grafické rozhraní (okna, ikony), které je technicky také shellem (např. Windows Shell či GNOME). V technickém kontextu se však slovem "shell" téměř vždy rozumí právě textové rozhraní. ===== 1. Jak Shell funguje? ===== Shell pracuje v cyklu zvaném **REPL** (Read-Eval-Print Loop): 1. **Read:** Přečte příkaz, který uživatel napsal. 2. **Eval:** Vyhodnotí příkaz (najde program, zpracuje proměnné). 3. **Print:** Vypíše výstup programu na obrazovku. 4. **Loop:** Čeká na další příkaz. ===== 2. Nejpoužívanější typy Shellů ===== ^ Název ^ Charakteristika ^ Platforma ^ | **Bash** (Bourne Again SHell) | Standard v Linuxu a macOS. Velmi populární. | Linux, macOS | | **Zsh** (Z Shell) | Moderní verze Bashe s mnoha vylepšeními (autodoplňování). | macOS (výchozí) | | **PowerShell** | Objektově orientovaný shell od Microsoftu. | Windows, Linux | | **Fish** | Zaměřený na uživatelskou přívětivost a barvy "out of the box". | Linux, macOS | ===== 3. Shell Scripting (Skriptování) ===== Jednou z největších sil shellu je možnost psát **skripty**. To jsou textové soubory obsahující sérii příkazů, které se provedou postupně. **Využití skriptů:** * Automatizace zálohování dat. * Hromadná instalace softwaru. * Zpracování logů (často v kombinaci s [[it_encyklopedie:sed|sed]] a [[it_encyklopedie:awk|awk]]). * Nasazování modelů v rámci [[it_encyklopedie:mlops|MLOps]]. ===== 4. Klíčové koncepty ===== * **Pipes (Roury):** Umožňují propojit výstup jednoho programu se vstupem druhého (např. ''ls | grep "test"''). * **Environment Variables:** Proměnné prostředí, které ovlivňují chování systému (např. ''PATH'' určuje, kde shell hledá programy). * **Standard Streams:** * **stdin (0):** Standardní vstup (klávesnice). * **stdout (1):** Standardní výstup (obrazovka). * **stderr (2):** Standardní chybový výstup. ===== 5. Shell vs. Terminál ===== Tyto pojmy se často pletou: * **Terminál (Emulátor terminálu):** Okno, které vidíte (např. iTerm2, Windows Terminal). Je to jen "obrazovka" a "klávesnice". * **Shell:** Program běžící "uvnitř" terminálu, který zpracovává příkazy. > **Zajímavost:** První unixový shell se jmenoval Thompson shell a vznikl v roce 1971. Od té doby se principy práce v příkazové řádce téměř nezměnily, což svědčí o neuvěřitelné efektivitě tohoto konceptu. [[it_encyklopedie:linux_rozcestnik|Zpět na Linux]]