Cviceni ze zakladu UNIXu

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.

Domaci ukoly

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.

[an error occurred while processing this directive]

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.

Novinky ze cviceni

  1. Motivace a jemny uvod do systemu. Editace prikazoveho radku, souborovy system, globy, dokumentace, pajpy; cd, ls, cat, echo, less, wc; ssh, who, write + mesg, talk.
  2. Opakovani pajp (rev, tac, head, tail, wc). mail. Presmerovani, escaping + quoting. Kratky navrat k ssh - spousteni prikazu vzdalene.
  3. Opakovani escapingu + quotingu, kopirovani pres ssh podruhe (scp, rsync). Umazavani prvniho radku. SMS ulozka. Aritmeticka expanze $((...)), prikazova substituce $(...) resp. `...`, velmi jemny uvod do promennych x=...; echo $x. Rozsireni "ruska ruleta" (nahodna SMS misto prvni).
  4. Kompendium ulozek na cut, diff+comm, sort, uniq, tr. Radio Relax (dokoncime priste). Plna uzivatelska databaze v ulabu: getent passwd. Idiom na nejcastejsi radky: sort | uniq -c | sort -n.
  5. Dokonceni radia Relax. Dalsi smrst ulozek; sort | uniq, tr, bc, dirname + basename, spetka sedu.
  6. Ulozky na sed (zpracovani mail-like dat, mazani komentaru), regularni vyrazy, detektivni uloha.
  7. Hromadne editace pomoci sedu, findu, xargs; tail recursion a dalsi drobnosti. Na zaver kratce o ps axu | awk '{print$1}'.
  8. Hadani cisel (podminky a cykly, while read, navratove kody, ...). Vlastni implementace seq.
  9. Signaly a 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
  10. Vseobecny mix ulozek.. Vcetne spetky awk.
  11. Domixovavani.
  12. Pisemka nanecisto - generovani fylogenetickych stromu (zadani, reseni).
  13. Pisemka nacisto - botnet client (zadani).
[an error occurred while processing this directive]

Dalsi zdroje

Pomoc!

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. ;-)

TOC

@TOC@
Edituje Petr Baudis. No counters, no frames, no syntax errors. Design borrowed from MJ.