Linux & Ops
Bash scripting od nuly — kompletní průvodce
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.
Proč se učit 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é.
První skript
Každý Bash skript začíná shebangem:
#!/bin/bash
echo "Ahoj, světe!"
chmod +x skript.sh
./skript.sh
Proměnné
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, $$
Podmínky
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
Cykly
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
Funkce
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.