1. týždeň

Týždeň 1 – Samoštúdium: shell a základné nástroje

Cvičenie

Ciele

  1. Pochopiť, čo je shell a prečo je ich viac druhov
  2. Zopakovať si základné nástroje na prácu so súbormi a právami
  3. Vyskúšať si všetko priamo v termináli
  4. Overiť si, čo z materiálu naozaj vieš

Úvod

Prednáška ani cvičenie sa tento týždeň nekonajú, preto dostávaš namiesto nich materiál, ktorý prvý týždeň plnohodnotne nahradí.

Je to kniha UNIX Shells by Example od Ellie Quigley, tretie vydanie. Áno, je staršia. Na prácu v termináli to ale vôbec neprekáža, pretože nástroje, o ktorých píše, sa za dvadsať rokov takmer nezmenili. Príkaz chmod funguje presne tak, ako je v nej popísaný, a bude tak fungovať aj o ďalších dvadsať rokov.

Stiahni si knihu (PDF, 3,5 MB)

Poznámka

Kniha má vyše tisíc strán, nečítaj ju celú. Tento týždeň ťa zaujímajú prvé dve kapitoly, teda zhruba sto strán. K ostatným sa budeme vracať priebežne celý semester, takže si ju nikam nezahadzuj.

Upozornenie

Z tohto materiálu bude prvý test v Moodle, ktorý sa otvorí v pondelok druhého týždňa. Neber ho preto ako nepovinné čítanie navyše.

Postup

Krok 1: Kapitola 1 – Introduction to UNIX Shells

Prvá kapitola vysvetľuje, čo shell vlastne je: program, ktorý stojí medzi tebou a jadrom operačného systému a prekladá to, čo napíšeš, na systémové volania.

Dozvieš sa, prečo shellov existuje viac (Bourne, C shell, Korn, bash, tcsh), čím sa líšia a prečo je práve bash ten, s ktorým budeš pracovať najčastejšie. Kapitola tiež vysvetľuje, čo sa stane v okamihu, keď stlačíš Enter, teda ako shell rozloží riadok na slová, expanduje zástupné znaky, presmeruje vstup a výstup a až potom spustí program.

Čo si z toho odnesieš: prečo ten istý príkaz môže v rôznych shelloch dopadnúť inak, čo znamená prvý riadok #!/bin/bash na začiatku skriptu, a ako shell zaobchádza s úvodzovkami. To posledné je vec, na ktorej stroskotá najviac začiatočníkov.

Krok 2: Kapitola 2 – The UNIX Toolbox

Druhá kapitola je prehľad nástrojov, s ktorými budeš pracovať celý semester. Je to presne tá látka, ktorú by inak pokrývala prvá prednáška.

Téma v kapitole Prečo ťa zaujíma
súborový systém a cesty aby si vedel, kde v systéme čo leží a prečo
práva a vlastníctvo súborov chmod, chown, chgrp a čo znamená každý bit
presmerovanie a rúry ako spojiť viac nástrojov do jedného postupu
procesy ako zistiť, čo beží, a ako to zastaviť
základné filtre cat, head, tail, sort, wc, cut

Zvláštnu pozornosť venuj právam na adresároch. Právo x na súbore znamená „spustiteľný", ale na adresári znamená „smiem doň vstúpiť". Toto je najčastejšie nedorozumenie v celej téme a v druhom týždni na ňom postavíme celé cvičenie.

Čo si z toho odnesieš: schopnosť prečítať výstup ls -l a povedať, kto so súborom čo smie, plus istotu v tom, ako sa reťazia príkazy cez rúru.

Krok 3: Vyskúšaj si to v termináli

Čítanie o príkazoch ti samo osebe nedá nič. V knihe sú priebežne cvičenia označené ako LAB EXERCISE, tie sú na to presne stavané.

Úloha 3.1

Vytvor si niekde v domovskom adresári skúšobný priečinok a v ňom niekoľko súborov. Potom si vyskúšaj: zmeniť práva symbolicky aj oktálovo a overiť výsledok cez ls -l, odobrať si právo x na adresári a zistiť, čo prestane fungovať, presmerovať výstup príkazu do súboru a spojiť tri príkazy do jednej rúry.

Úloha 3.2

Zisti, čo robí umask, a over si, aké práva má súbor, ktorý práve vytvoríš. Potom hodnotu umask zmeň a skús to znova.

Poznámka

Ak nemáš po ruke Linux, stačí ti WSL vo Windows, virtuálka alebo terminál na macOS. Na tieto veci si vystačíš s čímkoľvek, čo má shell.

Krok 4: Over si, čo ti zostalo

Úloha 4.1

Bez toho, aby si sa pozrel späť do knihy, odpovedz si nahlas na tieto otázky. Ak niektorá odpoveď nepríde do desiatich sekúnd, vráť sa k príslušnej kapitole.

  1. Čo presne robí shell medzi tebou a jadrom systému?
  2. Čo znamená chmod 750 a ako by si to isté zapísal symbolicky?
  3. Čo znamená právo x pri adresári?
  4. Aký je rozdiel medzi > a >>?
  5. Čo urobí shell s reťazcom v jednoduchých úvodzovkách oproti dvojitým?

Záver

Ak si prešiel obe kapitoly a vieš odpovedať na päť otázok vyššie, si na druhý týždeň pripravený. V pondelok ťa v Moodle čaká prvý test práve z tejto látky.

Zdroje

  1. Quigley, E.: UNIX Shells by Example, 3. vydanie, Prentice Hall, 2001. Dostupné na stránke predmetu. Tento týždeň kapitoly 1 a 2.

Doplňujúce zdroje

  1. Kapitoly 3 až 7 tej istej knihy pokrývajú grep, sed a awk, kapitoly 11 a 12 skriptovanie v bashi. K obom sa dostaneme neskôr v semestri.
  2. Cvičné dátové súbory, s ktorými kniha v týchto kapitolách pracuje, máš tiež k dispozícii: datafile, datebook a phonebook. Budeš ich potrebovať v 6. týždni, zatiaľ ich netreba sťahovať.