Bash je nejrozšířenější shell na Linuxu a základní nástroj každého administrátora. Tento průvodce vás provede od prvního skriptu až po pokročilé techniky.
Why Learn Bash?¶
Bash je výchozí shell na většině linuxových distribucí. Je dostupný prakticky všude — od serverů přes kontejnery až po CI/CD pipeline. Znalost Bashe znamená schopnost automatizovat cokoliv na příkazové řádce.
Na rozdíl od Pythonu je Bash přímo napojený na systém. Spouštění příkazů, práce se soubory a propojování nástrojů je přirozené a rychlé.
First Script¶
Každý Bash skript začíná shebangem:
!/bin/bash¶
echo “Ahoj, světe!” chmod +x skript.sh ./skript.sh
Variables¶
NAME=”server01” echo “Hostname: $NAME” echo “Počet CPU: $(nproc)”
- Lokální proměnné — platí v aktuálním shellu
- Exportované — dostupné v podprocesech (export VAR=value)
- Speciální — $?, $#, $@, $0, $$
Conditions¶
if [ -f “/etc/nginx/nginx.conf” ]; then echo “Nginx je nainstalován” else echo “Nginx nenalezen” fi if [[ “$OS” == “Linux” && -d “/proc” ]]; then echo “Jsme na Linuxu” fi
Loops¶
for f in /var/log/*.log; do echo “Zpracovávám: $f” wc -l “$f” done count=0 while [ $count -lt 5 ]; do echo “Iterace: $count” ((count++)) done
Functions¶
backup_dir() { local src=”$1” local dest=”$2” local date=$(date +%Y%m%d) tar czf “${dest}/backup-${date}.tar.gz” “$src” } backup_dir /etc /tmp
Error handling¶
set -euo pipefail trap ‘echo “Chyba na řádku $LINENO”; exit 1’ ERR die() { echo “FATAL: $*” >&2; exit 1; } [ -f “$CONFIG” ] || die “Konfigurační soubor nenalezen”
- Vždy set -euo pipefail
- Uvozovky: “$var”
- shellcheck pro statickou analýzu
- Pro 100+ řádků zvažte Python
Bash je základ¶
Bash scripting je nezbytná dovednost. Začněte jednoduše, používejte shellcheck a postupně přidávejte složitost.