Základní informace
- Cvičící: Petr Kučera <>, místnost S304
- Termín: Čtvrtek 14:00 — 15:30 SU2
Užitečné odkazy
- Stránky k předmětu
- Lokální kopie poslední specifikace UNIXu
- Stránky se specifikací UNIXu
- stránky UNIXové laboratoře na Malé Straně
- stránka o právech v u-labech
- Shell script checker
Zápočet
Po každém cvičení zadám domácí úkoly, jejichž řešení budu očekávat do začátku dalšího cvičení. Pokud na konci budete mít alespoň 2/3 bodů z těchto úkolů, tak dostanete zápočet. Kdo bude mít méně bodů, bude muset k získání zápočtu vypracovat ještě pár domácích úkolů navíc, které zadám na konec (jejich množství a obtížnost budou přímo úměrné chybějícímu počtu bodů). Za úkoly z každého cvičení bude možno dostat 3 body, i když ze začátku bude pár jednodušších úkolů a ke konci bude třeba jen jeden, ale těžší. Kdo odevzdá méně než 1/3 úkolů, zápočet ode mne nedostane.
V úkolech je možné používat jen prostředky probrané do cvičení, ke kterému se vztahují (včetně). Pokud si všimnu, že někdo odevzdal kopii jiného řešení, nedostane za tento úkol žádné body, stane-li se to podruhé, nedostane ode mne zápočet.
Úkoly mi odevzdávejte e-mailem, nejpozději do začátku následujícího cvičení. Řešení buď pište do těla mejlu, nebo přikládejte v čistě textových souborech (nepoužívejte soubory pdf, word a podobně). Zadání úkolů jsou napsána vždy u odpovídajícího cvičení (tj. aktuální úkoly jsou vždy dole na stránce).
Úkoly byly zadány na 12 cvičení (poslední cvičení do limitu nepočítám), tedy limit pro získání zápočtu je 24 bodů. Doplňkové příklady budou postupně přidány k poslednímu cvičení.
Některé vlastnosti u-labů
Je dobré znát některé vlastnosti UNIXového labu na Malé Straně. Doporučuji proto prohlédnout si stránky UNIXové laboratoře na Malé Straně. Zmíním alespoň ty rozdíly, které mi připadají nejznatelnější:
- Domovské adresáře jsou umístěny AFS filesystému, kde nefungují standardní UNIXová práva (viz výše uvedená stránka, případně stránka o právech v u-labech)
- Pokud si tedy chcete zkoušet příkaz chmod a věci související se
standardním UNIXovým systémem práv, čiňte tak v adresáři
/tmp
na tom kterém stroji, tam fungují tím standardním způsobem. /etc/passwd
neobsahuje informace o vašich uživatelských účtech, protože ty jsou skladovány v dynamické databázi jinde a jinak, pokud potřebujete informace o uživatelských účtech ve formátu/etc/passwd
, dostanete je příkazemgetent
následovně:
getent passwd
případně můžete přidat parametr specifikující, co vás zajímá, viz téžgetent --help
.- Totéž platí i pro
/etc/group
agetent group
. - Příkaz
find
si s filesystémem afs (nejspíš stále) nerozumí, nepoužívejte jej proto raději na síťových discích. Hledat pomocífind
můžete v lokálních adresářích jako/tmp, /usr, /etc
a podobně, ale raději ne ve vašem domovském adresáři. Výsledek vyhledávání ve vašem domovském adresáři nelze zaručit.
Obsah cvičení
1. cvičení (21. února 2019)
Základní příkazy, ovládání shellu.
Trochu podrobněji:
- Editace příkazové řádky: Ctrl-a, Ctrl-e, Ctrl-h, Ctrl-r, kurzorové šipky i nahoru a dolů, Ctrl-d, Ctrl-k (smaže text od pozice kurzoru do konce řádku).
-
Příkazy:
man, ls, cd, pwd, cat, more, less
(není standardní), head, tail, wc, mkdir, rmdir, cp, mv, rm, echo.
- Shellová expanze: *, ?, [výčet], [!výčet], apostrofy a uvozovky, soubory s názvy začínajícími tečkou.
- Přesměrování a roury: <, >,
>>, 2>, 2>>, |,
/dev/null
.
Příklady
- Ve svém domovském adresáři vytvořte adresář ADR
- Do tohoto adresáře okopírujte soubory z adresáře /usr/include, jejichž názvy začínají znakem m, končí příponou .h a kromě toho v názvu obsahují číslici.
- V adresáři ADR vytvořte podadresář PODADRESAR.
- Prvních pět řádek z každého z okopírovaných souborů uložte do souboru ~/ADR/PODADRESAR/prvnichpet.
- Poslední řádky souborů v ~/ADR uložte do souboru ~/ADR/PODADRESAR/posledni.
- Soubory v ~/ADR/PODADRESAR spojte do jednoho souboru ~/ADR/PODADRESAR/prvniaposledni.
- Smažte soubory v ~/ADR/PODADRESAR kromě prvniaposledni.
- Do souboru ~/ADR/PODADRESAR/pocet uložte počet souborů a adresářů v ~/ADR.
- Vypište dlouhé informace o adresáři ~/ADR/PODADRESAR, ne jeho obsah.
- Vymažte obsah souboru ~/ADR/PODADRESAR/prvniaposledni bez toho, abyste smazali tento soubor.
- Do souboru ~/ADR/PODADRESAR/prvniaposledni přidejte řádku, jež obsahuje jen znak hvězdičky, tj *.
- Smažte ~/ADR i se všemi soubory a podadresáři v něm umístěnými.
-
(Ukázat řešení předchozích příkladů)
Fatal error: Uncaught Error: Call to undefined function create_function() in /home/kucerap/public_html/include/geshi.php:4698 Stack trace: #0 /home/kucerap/public_html/include/geshi.php(4621): GeSHi->_optimize_regexp_list_tokens_to_string() #1 /home/kucerap/public_html/include/geshi.php(1655): GeSHi->optimize_regexp_list() #2 /home/kucerap/public_html/include/geshi.php(2029): GeSHi->optimize_keyword_group() #3 /home/kucerap/public_html/include/geshi.php(2168): GeSHi->build_parse_cache() #4 /home/kucerap/public_html/include/geshi.php(4728): GeSHi->parse_code() #5 /home/kucerap/public_html/unix/index.php(249): geshi_highlight() #6 {main} thrown in /home/kucerap/public_html/include/geshi.php on line 4698