Příkazy linuxového terminálu pro efektivní správu systému

Proč ovládat práci v linuxovém terminálu

Terminál (shell) je nejefektivnější rozhraní pro správu Linuxu. Umožňuje automatizovat rutinní úkoly, spravovat souborový systém, procesy, síť i bezpečnostní politiku, a to s minimální režijní zátěží. Tento článek přináší přehled klíčových příkazů, idiomů a postupů pro každodenní i pokročilou práci v Bash (aplikovatelné i na další shelly jako Zsh či Fish).

Základy prostředí: shell, prompt a nápověda

  • Aktuální shell: příkaz echo $SHELL zobrazí výchozí shell uživatele.
  • Nápověda: man <příkaz> zobrazí manuál; <příkaz> --help poskytne stručnou nápovědu.
  • Historie: history vypíše předchozí příkazy; vyhledávání v historii pomocí Ctrl+R (reverse search).
  • Autodokončování: stisknutí Tab doplní cesty a názvy; dvojitý Tab zobrazí všechny možnosti.

Navigace v souborovém systému

  • pwd zobrazí aktuální pracovní adresář.
  • ls -la vypíše detailní seznam souborů včetně skrytých; přepínače -h (čitelné velikosti), -t (řazení podle času).
  • cd /cesta změní pracovní adresář; cd - přepne zpět do předchozího adresáře; cd ~ otevře domovský adresář uživatele.
  • tree -L 2 zobrazí stromovou strukturu do hloubky 2 (balíček tree může být potřeba doinstalovat).

Práce se soubory a adresáři

  • touch soubor vytvoří prázdný soubor nebo aktualizuje časové značky existujícího souboru.
  • cp zdroj cíl kopíruje soubory; rekurzivní kopírování s cp -r; zachování atributů s -a.
  • mv zdroj cíl přesune nebo přejmenuje soubor či adresář.
  • rm soubor smaže soubor; rekurzivní mazání s rm -r; opatrně s přepínačem -f.
  • mkdir -p cesta/novy/adresar vytvoří adresářovou strukturu včetně nadřazených adresářů.
  • stat soubor zobrazí metadata souboru (práva, inode, časy zápisu a přístupu).

Zobrazení obsahu a vyhledávání

  • cat, tac, nl k výpisu obsahu; less pro stránkované prohlížení (vyhledávání pomocí /řetězec, ukončení q).
  • head -n 50 a tail -n 50 pro zobrazení začátku či konce souboru; sledování aktualizovaného souboru (např. logu) pomocí tail -f.
  • grep -Rin "vzor" cesta/ rekurzivní vyhledávání textového vzoru; přepínače -E pro rozšířené regulární výrazy, --color=auto pro zvýraznění výskytů.
  • find /cesta -type f -name "*.log" -mtime -1 vyhledá soubory podle typu, názvu a stáří; možné vykonání akcí s -exec.

Přesměrování a roury (pipes)

  • Standardní proudy: 0=STDIN, 1=STDOUT, 2=STDERR.
  • Přesměrování: > log.txt přepíše soubor; >> log.txt přidá na konec; přesměrování chybového výstupu 2>&1.
  • Roury: příkaz1 | příkaz2 předá výstup prvního příkazu jako vstup druhému; např. dmesg | grep -i error.

Textové zpracování: sed, awk, sort, uniq, xargs

  • sed 's/vzor/nahrada/g' provádí proudové nahrazení textu; -E povolí rozšířené regulární výrazy.
  • awk -F, '{print $1, $3}' soubor.csv zpracovává položky oddělené čárkou; agregace např. awk '{sum+=$2} END{print sum}'.
  • sort a uniq -c pro deduplikaci a počítání výskytů; kombinace sort | uniq -c | sort -nr pro seřazení podle četnosti.
  • xargs převádí vstupní data na argumenty příkazů: find . -type f -name "*.tmp" | xargs rm.

Oprávnění, vlastníci a ACL

  • ls -l zobrazuje oprávnění (rwx); změna vlastníka chown uživatel:skupina soubor, změna oprávnění chmod 640 soubor.
  • Symbolická forma změny práv: chmod u+rx,g-w,o= soubor.
  • ACL (pokročilá oprávnění): getfacl pro zobrazení, setfacl -m u:alice:r-- soubor pro nastavení práv uživatele.

Uživatelé, skupiny a sudo

  • id zobrazuje UID a GID uživatele; whoami ukáže aktuálního uživatele.
  • useradd, usermod, passwd pro správu lokálních uživatelů (vyžadují administrátorská práva).
  • sudo <příkaz> spustí příkaz s administrátorskými právy; konfigurace v souboru /etc/sudoers (upravovat přes visudo).

Procesy, služby a plánování

  • ps aux, top (nebo htop) zobrazují běžící procesy; ukončení příkazem kill -TERM PID, v nouzi -KILL.
  • nice, renice nastavují prioritu procesů; nohup <příkaz> & zajistí běh procesu na pozadí.
  • systemctl spravuje služby (systemd): systemctl status nginx, start, enable, journalctl -u nginx zobrazí logy služby.
  • crontab -e definuje pravidelné úlohy; formát: min hod den měsíc den_v_týdnu; jednorázové spuštění pomocí at 23:00.

Disky, souborové systémy a využití místa

  • lsblk zobrazí bloková zařízení; blkid ukáže identifikátory a typ souborového systému.
  • df -h zobrazuje využití diskového prostoru; du -sh * rozměry adresářů; rychlé vyhledání „žroutů místa“ s du -h --max-depth=1.
  • mount, umount k připojování a odpojování souborových systémů; záznamy uloženy v /etc/fstab.
  • Kontrola a opravy: fsck (používejte opatrně mimo aktivní FS).

Síťová diagnostika

  • ip a a ip r zobrazí síťová rozhraní a směrovací tabulky; ss -tulpen zobrazuje naslouchající sockety a aktivní spojení.
  • ping, traceroute (nebo tracepath) umožňují měřit latenci a trasu paketů.
  • dig domena.cz a dig +short MX domena.cz pro dotazy na DNS; alternativně host.
  • Přenosy: curl -I https://server pro HTTP hlavičky; wget pro stahování obsahu.

Šifrování, SSH a přenos souborů

  • ssh uživatel@host naváže zabezpečené připojení; generování klíčů ssh-keygen, distribuce klíčů ssh-copy-id.
  • scp a rsync -avz slouží pro kopírování přes SSH; rsync --delete synchronizuje včetně mazání souborů.
  • Archivace: tar -czf archiv.tgz adresar/ (komprimace); rozbalení tar -xzf; zip a unzip jako alternativa.

Balíčkovací systémy a aktualizace

  • Debian/Ubuntu: apt update, apt upgrade, instalace balíčků s apt install balicek.
  • RHEL/CentOS/Fedora: dnf check-update, dnf upgrade, instalace balíčků dnf install.
  • Ověření původu a podpisů balíčků je klíčové pro bezpečnost systému.

Logy a observabilita

  • journalctl slouží ke čtení systémových logů; filtry: -u služba, --since "1 hour ago", sledování v reálném čase -f.
  • Klasické logy jsou uloženy v /var/log (např. syslog, messages, aplikační logy).
  • Monitorování výkonu: vmstat, iostat (balík sysstat), free -h pro paměť, sar pro historická statistická data.

Bezpečnostní minimum v praxi

  • Opatrně používejte sudo a destruktivní příkazy (např. rm -rf / je extrémně nebezpečný; preferujte explicitní cesty).
  • Pravidelně aktualizujte systém; kontrolujte integritu konfigurací (versování konfigurací pomocí git nad /etc je velmi užitečné).
  • SELinux/AppArmor: ověřte režim příkazem getenforce, sledujte logy odmítnutí a nastavte vhodné bezpečnostní politiky.

Alias, proměnné prostředí a profil shellu

  • alias ll='ls -alF' zjednodušuje časté příkazy; trvalé nastavení v souboru ~/.bashrc.
  • Proměnné prostředí: export PATH="/opt/bin:$PATH"; vypsání všech proměnných pomocí printenv.
  • Konfigurační soubory: ~/.bashrc, ~/.bash_profile nebo ~/.profile podle distribuce a typu shellu.

Bash skriptování: základy a idiomy

  • Shebang #!/usr/bin/env bash pro přenositelnost, nastavení spustitelnosti chmod +x script.sh.
  • Parametry skriptu: $1, $@; doporučená kontrola chyb: set -euo pipefail.
  • Podmínky a cykly: if ... fi, for, while; kontrola existence souboru [ -f soubor ], adresáře [ -d adresar ].
  • Funkce a návratové hodnoty: return, kontrola kódu posledního příkazu s $?.

Pokročilé nástroje pro správce

  • tmux/screen pro perzistentní seance a práci s více panely v terminálu.
  • strace pro sledování systémových volání; lsof zobrazí otevřené soubory a síťové porty.
  • ncdu (interaktivní analýza využití diskového prostoru), iftop/nload pro vizualizaci síťových toků.
  • podman/docker pro správu kontejnerů; příkazy podman ps, docker logs, docker exec.

Bezpečné a efektivní vzory (best practices)

  • Před spuštěním náročných příkazů proveďte suchý běh (pokud je dostupný přepínač --dry-run).
  • Vždy validujte globy a proměnné rozšiřování: použijte echo pro náhled skutečných argumentů.
  • Pro destruktivní operace používejte explicitní a bezpečně zpracované seznamy souborů (xargs -0 s find … -print0).
  • Logujte automatizační skripty a zajistěte jejich idempotenci (opakované spuštění bez vedlejších efektů).

Ukázkové komba příkaz