Coreutils a základy skriptování v shellu

Coreutils a základy skriptování v shellu Seznam všech příspěvků

První část úvodu do skriptování v shellu a použití základních nástrojů - „coreutils“. Tato část se zaměřuje především na základní konstrukce v shellu. Přednáška vznikla pro linuxovou konferenci LinuxDays na ČVUT FIT.

Asi už nemá cenu zmiňovat, že jsem do přednášky naplánoval mnohem více obsahu, než jsem schopen sdělit za plánovaných 50 minut. Tak alespoň nemusím moc přemýšlet nad tématem další přednášky (pravděpodobně na Installfestu 2025).

Nyní již obě části, tedy tato první z LinuxDays 2024 i druhá z Installfestu 2025 k dispozici díky záznamu Strahovského AVC.

Obsah přednášky

Proč bychom vůbec měli chtít psát skripty a jaké k tomu máme základní nástroje? Ukážeme si základní konstrukce v shellu jako je spuštění příkazu, expanze jmen souborů a řetězení příkazů (pipes). Pro běžné úkoly nám slouží základní příkazy (coreutils), které si v rychlosti představíme, spolu s jejich filozofií.

Repozitář s prezentací a doprovodnými soubory

  1. Když to děláš podruhé, pravděpodobně to neděláš naposled
  2. Jaké úkoly se řešily/řeší na počítači
    • Spouštění programů v jiném čase/místě
    • Uchování a zpracování výstupů programů (dat)
    • Testování programů (spouštění programů se vstupy a porovnávání výsledků)
  3. Základní filozofické koncepty
    • UNIXová filozofie (rozděl a panuj)
      • jednoduché nástroje (coreutils)
      • kooperace nástrojů (pipe)
      • jednotné rozhraní (text I/O)
    • Kód jako minimum dokumentace
  4. coreutils
    • fileutils (cp, mv, rm, touch, ls, mkdir, mktemp, rmdir, dd, df, sync, chmod, chown, chgrp)
    • textutils (cat, c/split, head, tail, wc, *sum, tr, cut, join, paste, t/sort, comm, uniq)
    • shellutils (basename, dirname, date, du, stat, pwd, echo, printf, tee, env, printenv, expr, factor, seq, false, true, test, [, sleep, timeout, yes)
  5. Základní konstrukce v shellu
    • Spuštění příkazu (název, parametry) - krátké a dlouhé přepínače - argumenty přepínačů
    • Vstup a výstup - <, >, |
    • Subshell
    • Proměnné
    • Podmíněné spouštění příkazů - &&, ||
    • Cykly - for, while
  6. Skript
    • Vytvořit skript
    • Nastavit právo spustitelnosti
    • Spustit i s parametrem
  7. Ukázky použití coreutils v rámci řešených problémů

V repozitáři jsou také ukázkové skripty, a prostředí, ve kterém je možné si je zobrazit a interaktivně vyzkoušet. Prostředí je založené na příkazu tmux, které má svou konfiguraci a spouští pro interaktivní práci bash s vlastním nastavením (přípravou ukázek) a historií, ze které je možné vyvolávat příkazy.