Cviceni ze zakladu UNIXu

Ve skolnim roce 2009/2010 vedu cviceni z predmetu Uvod do UNIXu (NSWI095), najdete nas kazde pondeli od 14:00 v laboratori SU2. Tady najdete podminky pro zapocet, seznam domacich ukolu, a dle moznosti se budu snazit tvorit i nejake kratke zpravodajstvi ze cviceni. Cvicim skupinu c. 41, 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 pri posilani mailu je psat do subjectu [NSWI095].)

Podminkou k ziskani zapoctu je bud napsat zapoctak, nebo zapoctovou pisemku a nejaky ten domaci ukol.

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 25. 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!

Cesta ditete: Domaci ukoly budou fungovat jinak nez v minulych letech. Semestr je rozdelen na tri bloky po cca ctyrech tydnech, na konci kazdeho bloku dostanete ctyri domaci ulohy, 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 psat v labu na pocitaci na poslednim cviceni (pokud budete planovat predtermin, dejte mi vcas vedet, nejlepe pred poslednim predchazejicim cvicenim). Pisemka bude obnaset napsani nejakeho vyrazne netrivialniho programu (v tom spravnem jazyce, pochopitelne); uznam vam ji, pokud program bude fungovat nejak rozumne a nebudou v nem velke kiksy. Pokud se Vam nepovede, nezoufejte - budete mit dost (kolem nekonecna) dalsich sanci k naprave, ovsem opet se vzrustajici obtiznosti.

Domaci ukoly

Obecna poznamka: Zadani nejsou dokonale formulovana, podobne jako takova obvykle nepotkate ani v realnem zivote programatora; casto by to bylo pri zachovani srozumitelnosti a rozumneho zadani i dost obtizne, nektere predpoklady zustavaji nevyrcene a spoleham na Vas zdravy rozum. Pokud si dokazete vyrazne zjednodusit zivot tim, ze si zadani kreativne "priohnete" k obrazu svemu (ale tak, aby to davalo smysl, neslo to proti duchu zadani a dokazali jste si to obhajit), proti podobnym resenim nic nemam, ba naopak.

[an error occurred while processing this directive]

Pokud sami v mailu nenapisete opak, defaultni licence ukolu je BSD licence a souhlasite s pripadnym vystavenim Vaseho dilka na webu.

Novinky ze cviceni

  1. Motivace - co budeme studovat a proc, jemny uvod do shellu a adresaru, dokumentace, zakadni presmerovani a pajpy, "motivacni" ukazka slozitejsiho skriptu wcfq. Prikazy: cd, ls, cat, echo, mail, ssh.
  2. Slovo o portabilite. Opakovani pajp a presmerovani, viceuzivatelskost (id, who, finger, talk, ...), globy (*, ?, []) dukladne, escapovani (\) a quotovani ("", '').
  3. Kopirovani pres ssh+cat (ale lepsi je scp, rsync). head, tail, wc, tee, date (+%F), rada jednoduchych cviceni (getent passwd). k-ty radek, umazavani prvniho radku poprve. Jak vypada skript.
  4. Umazavani prvniho radku podruhe. SMS ulozka. Rozsireni ulozky "ruska ruleta" - nahodna SMS misto prvni. Aritmeticka expanze $((...)), prikazova substituce $(...) resp. `...`, velmi jemny uvod do promennych x=...; echo $x. Na zaver kompendium ulozek na cut, paste, tr, sort, uniq, ... - rozdelane dopriste.
  5. Pokracovani v ulozkach na cut, paste, tr, sort, uniq, trocha sedu, atd. atp.
  6. Diskuse nad domacimi ulozkami; jak na docasne soubory. Cviceni na sed, grep a jednoduche regularni vyrazy.
  7. Pomlazka. Pres velikonoce si rozmyslete:
  8. Diskuse nad procesy, ps (vykousavani sloupecku awkem), dulezite signaly. Cviceni na sed - pocitani radku, mazani shellovych komentaru, zmena //-komentaru na /**/-komentare (testovaci soubor), zpracovani mailu (jen hlavicka, jen telo, obsah hlavicky Subject) (testovaci soubor).
  9. Na zacatku jsme dodelali sedovani mailu. Opakovani cut, sort. Navratove kody a jejich testovani, && a ||. Diff, comm, join.
  10. Na zacatku dodelavka joinu z minule. Find: Hledani velkych souboru, -ls, -exec, xargs.
    Hadani cisel - while read, testy cisel, trap (rozlouceni na Ctrl-C), case (test korektniho vstupu, quit).
    Hledani bezpecnostni diry v pouziti evalu, prazdny prikaz :. Na zaver idiom na parsovani parametru:
    while [ -n "$1" ]; do
    	case "$1" in
    		-r) rep=1;;
    		-m) shift; max="$1";;
    		*) echo "Bad parameter: $1" >&2; exit 1;;
    	esac
    	shift
    done
  11. Reseni domacich uloh a diskuse nad nimi. Jednoduche zpracovani DNS zonefile korenove domeny. Vlastni implementace prikazu seq (v jeho trech parametrovych formach).
  12. Pisemka nanecisto - semafory pro koordinaci vypoctu.
  13. Zapoctova pisemka - data ze SISu.
[an error occurred while processing this directive]

Dalsi zdroje

Pomoc!

Potrebujete-li s necim poradit, udelate nejlepe, kdyz mi napisete mail. Preferuji, kdyz po me budete chtit poradit s nejakym konkretnim problemem; nebudete-li proti, muzeme to pak vyresit rovnou po mailu.

Pokud budete mit nejake obecnejsi nejasnosti, nezoufejte a napiste mi stejne, 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 by MJ.