Cviceni ze zakladu UNIXu

Ve skolnim roce 2005/2006 vedu cviceni z predmetu Zaklady UNIXu (SWI095), najdete nas kazdou stredu od 17:20 v laboratori SU2. Tady najdete podminky pro zapocet, seznam domacich ukolu, a dle moznosti se budu snazit tvorit i nejake kratke zpravodajstvi ze cviceni.

Pokud ke mne chcete chodit na cviceni, musite se zapsat v grupicku _a_ zaroven mi poslat mail.

Podminkou k ziskani zapoctu je bud napsat zapoctak, nebo sesbirat (alespon) 8 bodu za domaci ukoly a napsat zapoctovou pisemku.

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 delat nejake trapne domaci ukoly - v posuzovani zapoctaku tedy budu relativne prisny. Na zapoctaku se se mnou domluvte predem, a to nejpozdeji do pulky semestru. Na cvicenich budete samozrejme stale vitani.

Cesta ditete: Domaci ukoly budou zadavany v prubehu semestru na cvicenich (typicky 1 az 2 ukoly per cviceni) a rovnez se budou objevovat na techto strankach. Ohodnoceni domaciho ukolu se bude dle rozsahu a obtiznosti pohybovat v rozmezi cca 1..3 bodu.

Domaci ukoly muzete resit behem 14 dni od cviceni, na kterem jsem je oznamil; vezmu je od Vas, pokud mi dojdou pred zacatkem cviceni, nacez vystavim na web nejhezci reseni (viz nize). Na konci semestru vypisu jeste dostatek dodatecnych domacich ukolu, za stejny pocet bodu ale budou ulozky o neco obtiznejsi.

Jak funguje bodovani? Samozrejme to trochu kolisa, ale v zasade by domaci ukoly za 1 bod mely byt trivialni, a pokud jste na cviceni poslouchali alespon jednim uchem, meli byste je dokazat dat dohromady z hlavy nebo jenom letmym nakouknutim do manualovych stranek. Pokud jste stihli dobre vstrebat to, co jsme procvicovali na cvicenich, domaci ukoly za 2 body by vam obvykle mely trvat nejdele tak 10 az 15 minut. Domaci ukoly za 3 body na druhou stranu vyzaduji nejakou chytrou myslenku nebo trochu vic prace (nebo oboji); bodovaci stupnice je logaritmicka, takze jsou tezsi nez jeden ukol za 2 body a jeden za 1 bod; doufam, ze budou zase o to zajimavejsi.

Pokud vubec netusite, jak jit na domaci ukol za 1 bod, je neco spatne. Bud jsem spatne uhodl jeho obtiznost (v tom pripade bych o tom ale mel vedet ;), nebo se nam nepodarilo na cviceni latku procvicit dost dukladne. Kazdopadne to znamena, ze i na dalsich cvicenich se budete chytat mene a mene, meli bychom s tim proto neco delat - zkuste se na to v takovem pripade znovu podivat, nebo mi nevahejte napsat nebo zustat po cviceni a spolecne se na to podivame - radeji to ale neodkladejte s tim, ze "se casem zase chytite".

Zapoctova pisemka se bude psat v labu na pocitaci, a to nekdy koncem semestru (pokud budete planovat predtermin, dejte mi vcas vedet, nejlepe alespon den 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. Program muze obtiznosti pripominat nektery z lehcich zkouskovych prikladu. ;-) Pokud se Vam nepovede, nezoufejte - budete mit dost dalsich sanci k naprave, ovsem se vzrustajici obtiznosti.

Domaci ukoly

[an error occurred while processing this directive]

Libovolny priklad muzete (v terminu) poslat vicekrat, vzdy plati nejvyssi dosazene skore (redukovany pocet bodu ale davam zridkakdy, obvykle Vam ulozku spise vratim s pripominkami). Pokud sami v mailu nenapisete opak, defaultni licence ukolu je GNU GPL a souhlasite s pripadnym vystavenim Vaseho dilka na webu.

Novinky ze cviceni

  1. Uvodni povidani, zaklady ovladani shellu, dokumentace (man, help, info), adresarova struktura a cesty, metaznaky * a ?. Presmerovani <, >, | pipes (roury). Procvicene prikazy: cd, mkdir, rmdir, touch, ls, cp, mv, rm, echo, pwd, cat, less (more), wc, head, tail.
  2. Zaludna jmena souboru, pokrocilejsi presmerovani, `` resp. $(), $(()), date a jak si udelat skript. Vetsi ulozka.
  3. Dalsi velka ulozka. mail, wget, id, ssh podruhe, scp a nejake dalsi prikazy. O spravnem UNIXovem nastroji, $(()) vs. expr. Nejaka ulozka na prava. Na zaver .forward a program formail (na volitelne dostudovani doma, jeste se k .forward vratime priste). (Pozn.: Mirne jsem oproti cviceni upravil bodovani smskovych ukolu, abych ty body nedaval zase uplne zadarmo.)
  4. Jeste par slov k .forward, komunikace mezi uzivateli (write, talk, mesg, w, last). Pripomenuti /etc/passwd, diff a comm, cut'n'paste, sort a uniq, tr. Cvicici prosi ctene publikum, aby se pred cvicenim alespon mrklo na slajdy a on nemusel opakovat celou prednasku, ale spise latku na cviceni treba i procvicovat. ;-)
  5. Poradne jsme to rozjeli - sedm ulozek na cut, paste, sort, uniq, tr, grep a trosku sedu. A slo nam to docela hezky, co rikate? :-) Ulozky, ktere jsme resili (nevyresene byly zadany jako domaci ukoly).
  6. Find, grep, regularni vyrazy, otukavani sedu, drobnosti typu file, strucny uvod do promennych. Nejak jsme do toho zabredli a moc kupredu jsme se neposunuli. :-( Vetsi ulozky, ktere jsme resili.
  7. Hromadka prikladu na sed a xargs, promenne reprezentujici parametry skriptu, zaklady vi za 30 sekund. Resene priklady pribudou v utery. Ulozky, ktere jsme resili.
  8. Sed, nakonec jsme se jen tak placali kolem a poradne jsme toho moc neudelali. Ulozky, ktere jsme resili (je to teda hrozny).
  9. V komornim prostredi jsme si naposledy hrali se sedem: mrkli jsme se na hold space a cykly. &&, ||, navratove hodnoty programu, zminili jsme test a [ (s odkazem na slajdy, pocitam, ze si to tam prectete). Strucne pan tar a damy gzip a bzip2. Dohodli jsme se na datu pisemky - na poslednim cviceni, tedy 24.5. Pokud pujdete na predtermin, dejte mi vcas vedet, viz vyse. Vetsi ulozka, kterou jsme resili.
  10. Trap, job control. Prehlidka: if, while, for, case, funkce. seq, eval, read, test, sleep, true a false, atd. Hromadka malych prikladu. Ulozky, ktere jsme resili.
  11. Nejake random ulozky. Ulozky, ktere jsme resili.
  12. Pisemka nanecisto. Po tomto cviceni zacnu postupne vypisovat domaci ulozky vyssi obtiznosti pro opozdilce, ktere budou platne po cele zkouskove obdobi. Tady je zadani, a tady je reseni.
  13. Odpada, den rektoruv.
  14. Radny termin zapoctove pisemky. Posledni termin odevzdani "obycejnych" domacich ulozek. Vzorove reseni (ovsem moznych pristupu bylo mnoho). Zadani jiste uhadnete sami.
  15. Na pisemce ze ctvrtka 31. srpna 2006 bylo zadano naprogramovani prikazu printf(1) s podporou sekvenci %s, %d a dale length (%10d) a precision (%.5s). Vrele Vam doporucuji si to zkusit napsat. ;-)
  16. Jeste jedna hromadna zapoctova pisemka bude v patek 8. zari 2006 od 14:00 v SU2. Pokud se Vam to nehodi, napiste mi a nejak se domluvime.
[an error occurred while processing this directive]

Konkurence

Nebudu sem sam davat linky na ruzne dalsi zdroje, protoze tech najdete az az, kdyz se kouknete na stranky jinych cvicicich. Aneb jak to delaji jinde:

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 temer neomezene dlouhou dobu po cviceni, jinak se na MS vyskytuji nikoliv uplne pravidelne, lec kazdopadne velmi casto, v kancelari c. 322 (3. patro, naproti S3).


Edituje Petr Baudis. No counters, no frames, no syntax errors. Design by MJ.