Obsah
Bash (Bourne Again SHell)
Bash je vylepšená verze původního Unixového shellu (sh). Byl vytvořen v rámci projektu GNU Brianem Foxem v roce 1989. Dnes je výchozím shellem pro většinu linuxových distribucí a klíčovým nástrojem pro správce systémů, vývojáře a DevOps inženýry.
1. Základní principy fungování
Bash funguje v cyklu REPL (Read-Eval-Print Loop):
1. **Read:** Přečte příkaz, který uživatel napsal. 2. **Eval:** Vyhodnotí příkaz (expanze proměnných, wildcards, hledání cesty k programu). 3. **Print:** Spustí program a vypíše výsledek na standardní výstup. 4. **Loop:** Čeká na další příkaz.
2. Klíčové funkce Bashe
Příkazová runda (Piping & Redirection)
Jednou z největších sil Bashe je schopnost propojovat jednoduché programy do složitých řetězců:
- Standardní výstup (STDOUT):
ls > soubory.txt(zapíše výpis do souboru). - Roura (Pipe):
cat data.txt | grep „Chyba“ | wc -l(přečte soubor, najde řádky s chybou a spočítá je).
Expanze a Wildcards
- Hvězdička (*): Zastupuje libovolný počet znaků (např.
rm *.logsmaže všechny logy). - Dolar ($): Přístup k proměnným (např.
echo $USER).
3. Programování v Bashi (Bash Scripting)
Bash skripty umožňují automatizovat opakující se činnosti. Skript je v podstatě textový soubor se seznamem příkazů.
Struktura skriptu
Každý skript by měl začínat tzv. Shebangem, který říká systému, jaký interpret použít:
#!/bin/bash # Toto je komentář echo "Zálohuji data..." tar -czf zaloha.tar.gz /home/uzivatel/dokumenty echo "Záloha hotova."
Logické konstrukce
Bash podporuje podmínky, cykly a funkce:
- Podmínky:
if [ $a -gt $b ]; then … fi - Cykly:
for i in {1..5}; do echo $i; done
4. Uživatelské přizpůsobení
Chování Bashe lze ovlivnit v konfiguračních souborech:
- .bashrc: Spouští se pro každý nový terminál. Zde se definují aliasy (zkratky).
- .bash_profile: Spouští se při přihlášení uživatele.
Příklad aliasu:
alias ll='ls -la –color=auto'
5. Srovnání s jinými shelly
| Shell | Charakteristika |
|---|---|
| sh | Původní Bourne shell, velmi jednoduchý, dnes se používá pro čistou kompatibilitu. |
| Bash | Standard, bohaté funkce, skvělý pro interaktivní práci i skripty. |
| Zsh | Modernější, populární na macOS, pokročilé doplňování příkazů (plugin Oh My Zsh). |
| Fish | Extrémně uživatelsky přívětivý, barevný, ale není plně kompatibilní s Bashem. |
6. Proč je Bash nepostradatelný?
1. **Správa serverů:** Většina cloudových instancí se spravuje vzdáleně přes SSH právě pomocí Bashe. 2. **[[CI/CD]] Pipelines:** Automatizační skripty v GitLabu nebo GitHub Actions jsou často psány v Bashi. 3. **Rychlost:** Často je rychlejší napsat jednořádkový příkaz v Bashi než hledat funkci v grafickém rozhraní.
—
Tip pro začátečníky: Naučte se klávesovou zkratku Tab. Bash za vás automaticky doplní názvy souborů a příkazů, což dramaticky zrychluje práci.
