V akademickem roce 2012/2013 vedu cviceni z predmetu Uvod do UNIXu (NSWI095), najdete nas v laboratori SU2 kazde utery od 14:00. Tady najdete podminky pro zapocet, seznam domacich ukolu, a dle moznosti se budu snazit tvorit i nejake kratke zpravodajstvi ze cviceni.
Cvicim skupiny c. 31 a 75, ovsem i studenti odjinud jsou vrele vitani!
Pokud ke mne chcete chodit na cviceni, musite se na cviceni zapsat v SISu
_a_ zaroven mi
poslat mail.
(Evolucne stabilni strategii je psat do subjectu [NSWI095]
.)
Cilem cviceni je seznamit Vas se zaklady praktickeho a efektivniho pouzivani UNIXu a jeho prikazove radky – shelloveho interpreteru. Radu uloh, at uz se tykaji automatizace Vasi prace ci Vaseho systemu, nebo treba zpracovani velkeho mnozstvi dat, ktere byste museli drive zdlouhave delat rucne nebo na ne psat specialni programy, po absolvovani cviceni zvladnete naskriptovat behem nekolika minut prostou kombinaci hrsti UNIXovych prikazu. Nestihneme sice procvicit uplne vsechny prikazy zminene na prednasce, duraz vsak polozime na to zasadni – reseni konkretnich praktickych uloh ze zivota.
Podminkou k ziskani zapoctu je odevzdat tri domaci ukoly behem semestru a v ramci zapoctove pisemky napsat slozitejsi skript. Studenti, kteri si jiz se shellem tykaji, mohou po individualni dohode vyuzit zkratku (zapoctovy program).
Semestr je rozdelen na tri checkpointy po cca ctyrech tydnech. Na kazdem checkpointu si vyberete (alespon) jeden z nekolika nabidnutych domacich ukolu, na jeho odladeni a finalni odevzdani pak budete mit 14 dni.
Ukoly poslete co nejdrive, abyste do zacatku dalsiho cviceni stihli jeste proiterovat pripadna opravena reseni, budu-li mit vyhrady (coz se stava dost casto). Propasle terminy je po individualni dohode vzdy mozne resit, ovsem za cenu rostouci obtiznosti uloh.
Zapoctova pisemka se bude programovat na poslednim cviceni (pokud budete planovat predtermin, dejte mi vcas vedet). Pisemka bude obnaset napsani (na pocitaci) nejakeho jemne netrivialniho programu vcetne jeho doladeni do funkcni podoby.
Primarni ucel pisemky je trenink na zkousku, tedy dat Vam moznost si na vetsi uloze vyzkouset, co Vas ceka pri zkousce a jake mate sance si s tim poradit; skript vsak ladime a hodnotime spolecne polointeraktivni formou a casu je stedre i pro loudavejsi. Pocet opravnych pokusu neni a priori omezen.
Obecna poznamka: Ulohy nejsou dokonale formulovane, s takovymi se obvykle nepotkate ani v realnem zivote programatora; soucasti zadani je tedy aplikace Vaseho zdraveho rozumu. Kreativni (ale chytre) interpretace a reseni vitana.
Predpokladam, ze souhlasite se zverejnenim sveho jmena a informaci o splnenych ukolech (a s malou pravdepodobnosti i svych reseni) na teto strance. Neni-li tomu tak, staci se o tom v mailu zminit.
#!/bin/sh
, chmod +x
a ./
. Vystup ls na terminal vs. do pipeline, rekurzivni ls a skryte soubory. Umazavani prvniho radku textoveho souboru. SMS ulozka. Prikaz wget. Docasne soubory. Expanze $$
, $RANDOM
, letmy uvod do promennych (x=blabla
, echo $x
). Aritmeticka expanze $((...))
, prikazova substituce $(...)
resp. `...`
.sort | uniq -c | sort -n
. join.awk '{print$1}'
). find, xargs. Druha varka domacich ukolu.while read
. Hadani cisel.seq
, trap
. Plny seq, hadani cisel s Ctrl-C, budik (sleep + date). Parsovani parametru; idiom: while [ -n "$1" ]; do case "$1" in -r) rep=1;; -m) shift; max="$1";; *) echo "Bad parameter: $1" >&2; exit 1;; esac shift done
${var%.txt}
, ${var#prefix}
. Opakovani date. eval
a hledani bezpecnostni diry (viz priklad c. 4 tady). Podmnozina vseobecneho mixu ulozek. Posledni varka domacich ukolu.Potrebujete-li s necim poradit, udelate nejlepe, kdyz mi napisete mail. Konkretni dotazy muzeme vyresit rovnou po mailu.
Pokud budete mit nejake obecnejsi nejasnosti, nezoufejte, domluvime se a nekdy se potkame. Idealni cas na konzultaci je v okoli cviceni, ale muzeme se domluvit i na jindy.