Ciele
- Pochopiť, čo je shell a prečo je ich viac druhov
- Zopakovať si základné nástroje na prácu so súbormi a právami
- Vyskúšať si všetko priamo v termináli
- 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.
- Čo presne robí shell medzi tebou a jadrom systému?
- Čo znamená
chmod 750a ako by si to isté zapísal symbolicky? - Čo znamená právo
xpri adresári? - Aký je rozdiel medzi
>a>>? - Č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
- 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
- Kapitoly 3 až 7 tej istej knihy pokrývajú
grep,sedaawk, kapitoly 11 a 12 skriptovanie v bashi. K obom sa dostaneme neskôr v semestri. - 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ť.