Ve skolnim roce 2010/2011 vedu cviceni z predmetu Uvod do UNIXu (NSWI095), najdete nas v laboratori SU2 kazde utery od 15:40. Tady najdete podminky pro zapocet, seznam domacich ukolu, a dle moznosti se budu snazit tvorit i nejake kratke zpravodajstvi ze cviceni. Cvicim skupinu c. 33, ovsem i studenti odjinud jsou vrele vitani!
Pokud ke mne chcete chodit na cviceni, musite se zapsat
v grupicku _a_ zaroven mi
poslat mail.
(Evolucne stabilni strategii je psat do subjectu [NSWI095]
.)
Cilem cviceni je seznamit Vas se zaklady praktickeho a efektniho pouzivani UNIXu a jeho prikazove radky a 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. Podminkou k ziskani zapoctu je bud napsat zapoctovou pisemku a nejaky ten domaci ukol, nebo odevzdat zapoctak.
Cesta ditete: Semestr je rozdelen na tri bloky po cca ctyrech tydnech, na konci kazdeho bloku dostanete ctyri domaci ukoly, na jejich odladeni a finalni odevzdani budete mit 14 dni. Z kazdeho bloku byste pritom meli odevzdat alespon jednu ulohu; pokud nejaky blok propasnete, muzete si ulohu nahradit, ale jen ulozkou z dalsiho bloku. (Ovsem s prubehem semestru se slozitost zadani bude samozrejme zvysovat. ;-) Ukoly poslete co nejdrive, abyste do zacatku dalsiho cviceni stihli jeste proiterovat pripadna opravena reseni, budu-li mit vyhrady (coz se stava dost casto).
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 (v tom spravnem jazyce, pochopitelne. Primarni ucel pisemky je dat Vam moznost si na vetsi uloze vyzkouset, co Vas ceka pri zkousce a jake mate sance si s tim poradit. Pocet opravnych pokusu neni omezen, ovsem obtiznost zadani roste.
Cesta lva: Zapoctovy program by mel byt v rozsahu minimalne dvojnasobku zkouskove pisemky, a to v libovolne kombinaci shellu, sedu a awku. Tato moznost je v zasade urcena pro ty, kteri se jiz s UNIXem dobre kamaradi, neco velkeho uz napsali a ted je nebavi chodit na cviceni a otravovat se s nejakou pisemkou - v posuzovani zapoctaku tedy budu relativne prisny. Na zapoctaku se se mnou pokud mozno domluvte predem a to do nejake trochu rozumne doby (pokud mozno ne 24. zari vecer). Na cvicenich budete samozrejme stale vitani. (Nemate-li zadny napad, co psat, zkuste bych se podivat na stranky cviceni z minulych let a vybrat si nektery z nejtezsich domacich ukolu: napada mne shop, nejaka lehce rozsirena verze jednoho z stur, rall, cprp, seex, shvm, find... Ovsem fantazii se meze nekladou!
Heuristika: Napiste one-liner, ktery jednoduse spocita vzdalenost dvou znaku v abecede. Zvladnete-li to bez potizi behem minuty, s UNIXem si asi celkem dobre rozumite.
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.
Ukoly poslane od nedele 22. 5. 2011 probereme interaktivne spolu s resenim zapoctove pisemky.
Pokud sami v mailu nenapisete opak, souhlasite s pripadnym vystavenim Vaseho dilka na webu.
$((...))
,
prikazova substituce $(...)
resp. `...`
,
velmi jemny uvod do promennych x=...; echo $x
.
Rozsireni "ruska ruleta" (nahodna SMS misto prvni).getent passwd
.
Idiom na nejcastejsi radky: sort | uniq -c | sort -n
.ps axu | awk '{print$1}'
.while read
, navratove kody, ...). Vlastni implementace seq.trap
. eval
a hledani bezpecnostni diry. 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
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 (na MS byvam temer kazdy den). Cas mivam obvykle po cviceni, jinak se na MS vyskytuji nikoliv uplne pravidelne, lec kazdopadne velmi casto, v kancelari c. 322 (3. patro, naproti S3) nebo v malostranskem Starbucks. ;-)