Příkazy pro práci v terminálu Linuxu

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 stručnou nápovědu.
  • Historie: history vypíše předchozí příkazy; vyhledávání pomocí Ctrl+R (reverse search).
  • Autodokončování: Tab doplňuje cesty a názvy; dvojitý Tab nabídne možnosti.

Navigace v souborovém systému

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

Práce se soubory a adresáři

  • touch soubor vytvoří prázdný soubor nebo upraví časové značky existujícího souboru.
  • cp zdroj cíl kopírování souborů; rekurzivně s cp -r; zachování atributů s -a.
  • mv zdroj cíl přesun nebo přejmenování souboru či adresáře.
  • rm soubor odstraní soubor; rekurzivně s rm -r; opatrnost při použití -f (bez dotazu).
  • mkdir -p cesta/novy/adresar vytvoří celou strukturu adresářů včetně nadřazených složek.
  • stat soubor zobrazí metadata souboru (práva, inode, časové značky).

Zobrazení obsahu a vyhledávání

  • cat, tac, nl pro výpis obsahu; less pro stránkovaný náhled s vyhledáváním pomocí /řetězec, ukončení q.
  • head -n 50 a tail -n 50 zobrazí začátek nebo konec souboru; tail -f sleduje soubor v reálném čase (např. logy).
  • grep -Rin "vzor" cesta/ rekurzivní vyhledávání textu; přepínače -E (rozšířené regulární výrazy), --color=auto (zvýraznění výskytů).
  • find /cesta -type f -name "*.log" -mtime -1 vyhledávání podle typu, názvu a stáří souboru; s akcemi přes -exec.

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

  • Standardní proudy: 0=STDIN (vstup), 1=STDOUT (výstup), 2=STDERR (chyby).
  • Přesměrování: > log.txt přepisuje soubor, >> log.txt přidává na konec; přesměrování chybového výstupu 2>&1.
  • Roury (pipes): příkaz1 | příkaz2 přesměruje 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í proudovou náhradu textu; -E povoluje rozšířené regulární výrazy.
  • awk -F, '{print $1, $3}' soubor.csv práce s poli ve formátu CSV; agregace např. awk '{sum+=$2} END{print sum}'.
  • sort a uniq -c slouží k deduplikaci a počítání výskytů; kombinace sort | uniq -c | sort -nr řadí podle frekvence.
  • xargs převádí vstup na argumenty příkazů: find . -type f -name "*.tmp" | xargs rm odstraní vyhovující soubory.

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

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

Uživatelé, skupiny a sudo

  • id zobrazí UID a GID uživatele; whoami ukáže aktuální uživatelské jméno.
  • useradd, usermod, passwd správa lokálních účtů (vyžaduje administrátorská práva).
  • sudo <příkaz> spustí příkaz s administrátorskými právy; konfigurace v /etc/sudoers upravovaná přes visudo.

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

  • ps aux, top (případně htop) pro přehled běžících procesů; ukončení příkazem kill -TERM PID, v nouzi -KILL.
  • nice, renice pro úpravu priority procesů; nohup <příkaz> & pro běh na pozadí bez přerušení.
  • systemctl (správa služeb systemd): systemctl status nginx, start, enable, journalctl -u nginx pro zobrazení logů.
  • crontab -e pro plánování pravidelných úloh; formát min hod den měsíc den_v_týdnu; jednorázové úlohy s at 23:00.

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

  • lsblk vypíše seznam blokových zařízení; blkid zobrazí identifikátory a typy souborových systémů.
  • df -h zobrazí využití diskového prostoru; du -sh * velikosti adresářů; rychlé hledání největších spotřebitelů místa du -h --max-depth=1.
  • mount a umount připojování a odpojování souborových systémů; záznamy v /etc/fstab.
  • Kontrola a opravy souborových systémů: fsck (používat s opatrností a mimo připojený souborový systém).

Síťová diagnostika

  • ip a a ip r zobrazí adresy a směrovací tabulky; ss -tulpen ukáže naslouchající sokety a otevřená spojení.
  • ping, traceroute (nebo tracepath) pro měření latence a trasování cesty k cíli.
  • dig domena.cz a dig +short MX domena.cz pro DNS dotazy; alternativně host.
  • Test přenosů: curl -I https://server zobrazí HTTP hlavičky; wget slouží ke stahování souborů.

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

  • ssh uživatel@host pro vzdálené připojení; generování klíčů pomocí ssh-keygen, rozšíření autorizace pomocí ssh-copy-id.
  • scp a rsync -avz pro bezpečný přenos souborů přes SSH; synchronizace včetně mazání s rsync --delete.
  • Archivace: tar -czf archiv.tgz adresar/ pro kompresi, rozbalení tar -xzf; alternativně zip a unzip.

Balíčkovací systémy a aktualizace

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

Logy a observabilita

  • journalctl pro prohlížení systémových logů; filtrace pomocí -u služba, --since "1 hour ago", sledování v reálném čase -f.
  • Klasické logy v adresáři /var/log (např. syslog, messages, aplikační logy).
  • Sledování výkonu: vmstat, iostat (součást balíku sysstat), free -h pro přehled paměti, sar pro historická data výkonu.

Bezpečnostní minimum v praxi

  • Obezřetnost při používání sudo a destruktivních příkazů (např. rm -rf / je velmi nebezpečný; vždy používejte explicitní cesty).
  • Pravidelné aktualizace systému; kontrola integrity konfigurací (verzionování pomocí git nad /etc je užitečné).
  • SELinux/AppArmor: ověřte aktuální režim příkazem getenforce, sledujte logy odmítnutí přístupů a nastavte vhodné bezpečnostní politiky.

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

  • alias ll='ls -alF' pro vytvoření zkrácených příkazů; trvalé nastavení v souboru ~/.bashrc.
  • Správa proměnných prostředí: export PATH="/opt/bin:$PATH"; výpis aktuálních proměnných pomocí printenv.
  • Konfigurační soubory: ~/.bashrc, ~/.bash_profile nebo ~/.profile v závislosti na distribuci a konfiguraci shellu.

Bash skriptování: základy a idiomy

  • Shebang #!/usr/bin/env bash, nastavení proveditelnosti skriptu příkazem chmod +x script.sh.
  • Předávání parametrů: $1, $@; bezpečnostní nastavení s set -euo pipefail pro zachycení chyb.
  • Podmínky a smyčky: if ... fi, for, while; testování souborů s [ -f soubor ], [ -d adresar ].
  • Funkce a vracené kódy: return, kontrola návratové hodnoty s $?.

Pokročilé nástroje pro správce

  • tmux/screen pro perzistentní relace a práci s více panely v terminálu.
  • strace pro sledování systémových volání; lsof zobrazuje otevřené soubory a síťové porty.
  • ncdu (interaktivní analýza využití diskového prostoru), iftop/nload pro sledování 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)

  • Než spustíte náročný příkaz, proveďte suchý běh (pokud je k dispozici přepínač --dry-run).
  • Vždy validujte globální výraz a expanze: použijte echo k náhledu, co bude příkaz zpracovávat.
  • Pro destruktivní operace používejte explicitní seznamy souborů (xargs -0 s -print0 ve find pro bezpečné zpracování názvů).
  • Logujte automatizační skripty a zajistěte jejich idempotenci (opak