Valitud ülesanne registreerida serveris madli.ut.ee failis /export/opt/local/info/tjkursus/tahvel (koos kasutatava keelega). Kõigile koostatavatele programmidele peaks olema sisse programmeeritud kasutamisjuhend juhtumiks, kui pöörduti valede parameetritega või erilise -help lipuga. 1. Koostada programm, mis dialoogrez'iimis käib läbi kogu etteantud kataloogist algava alampuu ja küsib ainult nende failide kohta, mida pole kasutatud juba üle kahe kuu (aja võiks saada ka lipuga ette anda), kas neid tohib kustutada. Tekstifailidel kuvada 5 esimest ja 5 viimast (peaks ka saama lipuga ette anda) rida. Kui saadakse jaatav vastus, siis fail hävitatakse. Variatsioon: hävitamise asemel anda võimalus lasta fail kokku pakkida. 2. Koostada programm, mis summeeriks etteantud kasutaja seansiajad etteantud ajavahemikus (näiteks ühe kuu jooksul). 3. Koostada programmid "taskuraamatu" hooldamiseks (nimed, telefoninumbrid, aadressid, e-maili aadressid jne.). Taskuraamat ise on tekstifail, millele tuleks peale ehitada päringud, sorteerimine, "aruande" genereerimine jne. 4. Koostada filter täpitähtede teisendamiseks: a) kujult a" o" o~ jne. nn. TeX-kujule \"a \"o \~o jne. b) 8-bitiselt esituselt a" o" o~ kujule c) ... (jne. uurida ise vastavaid RFC-sid standardite kohta! RFC 1341) 5. Kirjutada rekursiivne grep, st. shell-programm, mis töötaks rekursiivselt etteantud kataloogist alla (just nagu oleks grep-il -R lipp). Näidise leidumisel anda välja faili täisnimi. 6. Koostada programm, mis väljastaks standardväljundisse kataloogide puu alates etteantud kataloogist (allapoole). Puu trükikuju võiks olla näiteks taandridadega, sama taseme kataloogid servast ühekaugusel. 7. Koostada programm, mis valmistaks kahendfaili ette saatmiseks e-maili teel: pakkida, kodeerida ja lõigata (etteantud suurusega) tükkideks, märkides tükkide algusse ja lõppu lõikejooned ja mitmenda tükiga mitmest on tegemist. Variatsioon: pakkimisprogrammi saab parameetrina ette anda. 8. Koostada programm, mis genereeriks etteantud kataloogi failide kohta raporti, milles on kirjas: nimi, pikkus, omanik, õigused, loomisaeg, viimase muutmise aeg, viimase pöördumise aeg, linkide arv. Pöörata tähelepanu raporti vormile (loetavus, kompaktsus). 9. Koostada programm, mis filtreeriks etteantud tekstist välja seal esinevad e-maili aadressid, andes väljundisse 2 rida enne ja 2 rida peale vastavat kohta tekstis, kuid korduvalt samu ridu mitte. 10. Olgu tunniplaan antud kirjetena (ridadena), milles on viis välja: õppeaine, õppejõud, kursus, aeg, koht. Koostada programmid, mis väljastaksid antud õppejõu nädalakava, antud kursuse nädalakava, antud ruumi kasutusplaani ja kontrolliksid konfliktide olemasolu tunniplaanis (näiteks kaks loengut üheaegselt samas ruumis, õppejõud korraga kahes kohas jne.). 11. Koostada programm, mis teeb kindlaks kasutajad, kes viibivad klassis Liivi 2 - 107, s.t. kasutavad vahetult mõnda tööjaamadest või X-terminaalidest. telnet-kasutajad ning muudest arvutitest X-serverina kasutajad arvesse ei lähe, X-terminaalide korral tuleb arvesse võtta ka masinad, millega seanssi alustati. 12. Koostada programm miniraamatukogu "kataloogi" haldamiseks. Mõelda välja sobiv kirje (rea) formaat, et saaks otsida autori, pealkirja, võtmesõna järgi. 13. Koostada programm, mis fikseeriks etteantud kataloogi (ilma alam- kataloogideta) oleku (failid, nende pikkused, muutmisajad jne) mingis tööfailis ja teine programm, mis selle faili ning kataloogi uue seisu järgi väljastaks kõik kataloogis vahepeal toimunud muudatused (failide lisamine ja eemaldamine, pikkuse muutumine jne.). 14. Koostada prügikasti haldamise programmid. Teatavasti kaotab rm-käsk faili jäädavalt. Selle asemel võiks olla delete-skript, mis paneb faili prügikasti ning kuni prügikasti pole tühjendatud, võimaldab teha undelete operatsiooni. Prügikastis olevad failid võiks pakkida. Prügikasti tühjenda- misel võiks olla dialoogi pidamise lipp, sest siis kaovad failid tõesti. 15. Koostada programm, mis sorteeriks etteantud kataloogis olevad failid (etteantud) laiendite järgi alamkataloogidesse, jättes ülejäänud puutumata. Nii laiendid kui ka alamkataloogide nimed peaks saama paaridena ette anda. 16. Koostada programmid ajaplaani haldamiseks. Ajaplaanis on mingite sündmuste (kohtumised, sünnipäevad, üritused - mis iganes) toimumisajad - kuupäev, kellaaeg, info. Vajalikud operatsioonid on ajaplaani kirjete järjestamine aja järgi, etteantud aja lähimas ümbruses olevate sündmuste kuvamine, sündmuste otsimine võtmesõna järgi, antud ajavahemikus toimuvate sündmuste kuvamine jne. Võiks mõelda ka iganädalaste ja igapäevaste sündmuste registreerimisele (sünnipäev on, muide, kord aastas). Minevikku peaks saama unustada. 17. Koostada programm, mis summeeriks etteantud tabeli read ja veerud. Tabeli elementideks on arvud, igas reas ühepalju. Veergude ja ridade arv teha kindlaks tabelist, tulemusena väljastada lähtetabel koos summade lisaveeru ja reaga (soovitav kaunilt formaadituna). 18. Koostada programm, mis eraldaks etteantud tekstist välja kõik osad, mis on kodeeritud uuencode abil. Dekodeerida need osad failidesse, jättes vastavale kohale tekstis failinime. Leida lahendus probleemile, mis teha siis, kui vastav fail on juba olemas. 19. Koostada programm, mis vormistaks kõik jooksva päeva kohta käivad last-käsuga väljastatavad kirjed html-dokumendina. 20. Koostada programm, mis moodustaks etteantud tekstifaili põhjal selles esinevate sõnade sagedustabeli järgmiselt: lipuga etteantud arv (vaikimisi 15) kõige sagedamini esinenud sõnu järjestatud esinemiste arvu järgi kahanevasse järjekorda (võrdsed järjestatud alfabeetiliselt). 21. Koostada programm, mis s'ifreeriks (ja des'ifreeriks) etteantud teksti "nihkekoodiga" (nihke saab anda parameetriga). Kodeerimisele kuuluvad märgid koodivahemikust 32 - 255, kuid vahemik 128 - 255 kodeeritakse eraldi, s.t. 32-127 --> 32-127, 128-255 --> 128-255. 22. Koostada programm, mis näitaks etteantud kataloogi alampuus asuvaid etteantud arvu (vaikimisi 15) pikimaid faile, järjestatuna pikkuse kahanemise järjekorda. 23. Koostada programm, mis näitaks etteantud kataloogi alampuus asuvaid faile (täisnimega) järjestatuna muutmisaja järgi (vanemad eespool). 24. Koostada programm, mis väljastaks viimase 24 tunni jooksul seanssi pidanud kasutajate nimekirja perekonnanimede alfabeetilises järjestuses. 25. Koostada programm, mis teeks kindlaks kasutajad, kes pole seanssi pidanud enam kui 1 kuu. 26. Koostada programm, mis summeeriks etteantud kataloogis olevate etteantud regulaaravaldist rahuldavate nimedega failide pikkused baitides. 27. Filtreerida cal-programmi (kalendri trükk) väljundit nii, et nädalad algaksid esmaspäevaga, mitte pühapäevaga. 28. Koostada programm etteantud kuupäeva järgi nädalapäeva leidmiseks (võib toetuda cal-käsule, kuigi see teatud juhtudel ei tööta). 29. Koostada programm etteantud täisarvu teisendamiseks tekstikujule (eesti keeles). 30. Koostada programm etteantud täisarvu teisendamiseks etteantud alusega arvusüsteemi.