4647
Comment:
|
5237
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from OperacneSystemy = Počítačové siete = |
= Operačné systémy = |
Line 4: | Line 3: |
2008/09 -- ZS | 2008/09 -- LS ## == Downloady pre cvičenia == ## ## [[attachment:gallery.tar.gz]] ##[[attachment:passwd.txt]] ## [[attachment:zadanie2.pdf]] ##[[attachment:zadanie_opr.pdf]] ##== Uploady == ##[[/Uploady]] |
Line 8: | Line 19: |
## Doplň vyučujúcich |
|
Line 12: | Line 21: |
== Konzultačné hodiny == V utorok 16:00-17:00. Radšej ale konzultuje priamo na cvičení. |
|
Line 22: | Line 34: |
* Textový editor vim | |
Line 24: | Line 35: |
* Základy internetových protokolov * Protokol http * Základy HTML |
|
Line 28: | Line 36: |
== Domáce zadania == | == Výsledky == |
Line 30: | Line 38: |
=== Cvičenia pre prípravu na prvé skúšobné cvičenie === | [[/Výsledky]] == Zadanie na prvé zápočtové cvičenie == |
Line 38: | Line 48: |
'''Skúšobné cvičenie bude vo štvrtok 30.10 -- nie v piatok, aby nás nezaskočilo prípadné voľno pred 1.11''' | Skúšobné cvičenie bude 13.4.2010 počas cvičenia. |
Line 41: | Line 51: |
Pripomínam, že príkaz {{{man}}} je vaším priateľom. | Pripomínam, že príkaz man je vaším priateľom. Pre komplexnejšie informácie odporúčam nahliadnuť do Advanced Bash Scripting Guide, link je nižšie. |
Line 45: | Line 55: |
Vytvorte v bashi skript {{{rename_pics}}}, ktorý premenuje všetky súbory v aktuálnom adresári, ktoré majú koncovku {{{JPG}}} na súbory s koncovkou {{{jpg}}}, napr. {{{obrazok1.JPG}}} premenuje na {{{obrazok1.jpg}}}. |
Vytvorte v bashi skript `rename_pics`, ktorý premenuje všetky súbory v aktuálnom adresári, ktoré majú koncovku `JPG` na súbory s koncovkou `jpg`, napr. `obrazok1.JPG` premenuje na `obrazok1.jpg`. |
Line 49: | Line 57: |
Pomôcka: pre transformáciu mena môžete použiť takéto niečo: {{{ NOVE_MENO=`echo $STARE_MENO | sed '...'`}}} Dávajte si pozor na to, aby ste premenovali iba koncovky, reťazec {{{JPG}}} sa môže vyskytovať aj uprostred mena súboru. Môžete prepokladať, že mená súborov neobsahujú žiadne biele znaky, napr. medzery. |
Pomôcka: pre transformáciu mena môžete použiť takéto niečo: {{{NOVE_MENO=`echo $STARE_MENO | sed '...'`}}} Dávajte si pozor na to, aby ste premenovali iba koncovky, reťazec JPG sa môže vyskytovať aj uprostred mena súboru. Môžete prepokladať, že mená súborov neobsahujú žiadne biele znaky, napr. medzery. |
Line 53: | Line 59: |
b) upravte skript z A) tak, aby premenoval aj súbory ako {{{obrazok1.jPG}}} a podobne. | b) upravte skript z a) tak, aby premenoval aj súbory ako `obrazok1.jPG` a podobne. |
Line 55: | Line 61: |
c) Vytvorte v bashi skript {{{showsize}}}, ktorý sčíta dĺžky súborov v aktuálnom adresári a výsledok vypíše. | Pomôcka: man sed. |
Line 57: | Line 63: |
Pomôcka: je niekoľko ciest ako to spraviť. Vyskúšajte prvú cestu a potom druhú: | c) a teraz to spravte všeobecne: |
Line 59: | Line 65: |
V prvom rade musíte nejako vyprodukovať stĺpec s dľžkami súborov. Buďto na to choďte cez | Napíšte skript, ktorý dostane v argumentoch zoznam mien súborov a premenuje ich tak, aby mali koncovky malými písmenami. Pomôcky: neurčitý počet argumentov je možné spracovať pomocou cyklu |
Line 61: | Line 70: |
ls | cut -c ... }}} alebo {{{ for FILE in *; do stat ... $FILE |
while true do ... spracovanie $1 ... if shift then break fi |
Line 69: | Line 79: |
(viď manuálová stránka {{{stat}}}) Teraz je viac ciest. 1. Naprogramujete to sčítanie v bashi sami, klasicky cez premenné s použitím bashovskej aritmetiky cez príkaz let. 2. Pomocou postupnosti príkazov prepojených do rúry vyrobíte z tých čísel výraz ako {{{12+1024+254}}} a ten potom pošlete na vstup príkazu bc cez rúru. Budete zrejme musieť nahradiť nové riadky plusom, to sa robí pomocou {{{ tr '\n' '+' }}} Kostra prvého spôsobu: |
alebo |
Line 77: | Line 81: |
SUM=0 for NUMBER in `... kód produkujúci zoznam dĺžok ...`; do ... sem prirátavanie NUMBER k SUM cez let ... |
while test "$*" != "" do ... spracovanie $1 ... shift |
Line 81: | Line 86: |
echo $SUM | }}} prípadne {{{ for ARG in "$@" do ... spracovanie $ARG ... done |
Line 84: | Line 95: |
Kostra druhého spôsobu: {{{ ... kód produkujúci zoznam dĺžok ... | tr '\n' '+' | bc }}} |
Pre transformáciu veľkých písmen na malé použite príkaz `tr`. |
Line 89: | Line 97: |
Poznamenávam, že tomu ešte niečo chýba, pretože ten {{{tr}}} vyrobí z posledného newline tiež plus, takže {{{bc}}} bude frfľať, že má nekorektný príkaz. Stačí však ešte jeden {{{sed 's...'}}} a je to; poraďte si sami. |
== Ďalšie cvičenia == [[ /CviceniaZoShellu | Cvičenia zo shellu]] [[attachment:python_zadania.pdf | Cvičenia z Pythonu]] |
Line 97: | Line 108: |
=== Pythonovské programy === | * [[attachment:tahak_python.pdf|Ťahák - Python (komplexný)]] * [[http://www.yukoncollege.yk.ca/~ttopper/COMP118/rCheatSheet.html|Ťahák - Python (jednoduchší)]] |
Line 99: | Line 111: |
* [[/Fork|fork(), wait(), SIGCHLD]] * [[/Pipe|pipe()]] * [[/Socket| UNIXové sockety]] |
##=== Pythonovské programy === |
Line 103: | Line 113: |
=== Skripty === |
## * [[PocitacoveSiete/Fork|fork(), wait(), SIGCHLD]] ## * [[PocitacoveSiete/Pipe|pipe()]] ## * [[PocitacoveSiete/Socket| UNIXové sockety]] ## * [[PocitacoveSiete/TCPSocket | Klient a server TCP]] ## * [[PocitacoveSiete/Sumator | TCP server pre scitanie cisel]] ## * [[PocitacoveSiete/ChatServer | Chatovací server - multithreading]] ## * [[PocitacoveSiete/Webserver | "Webovsky server" implementovaný na úrovni socketov]] ## * [[attachment:cgi-server.tar.gz | CGI server a skripty]] |
Line 110: | Line 125: |
1. ''Začínáme programovat v jazyce Python'', Daryl Harms, Kenneth !McDonald; Computer Press, 2003 (nie je nutné, stačí dokumentácia v systéme) | 1. ''Začínáme programovat v jazyce Python'', Daryl Harms, Kenneth !McDonald; Computer Press, 2003 1. ''Learning Python",, Mark Lutz, David Ascher; O'Reilly 2007, http://slav0nic.org.ua/static/books/python/OReilly.Learning.Python.3rd.Edition.Oct.2007.eBook-BBL.rar |
Line 117: | Line 133: |
1. ''A Byte of Python'', Swaroop C H, http://www.swaroopch.com/notes/Python 1. ''How to Think Like a Computer Scientist'', Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/ |
|
Line 121: | Line 139: |
1. http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu |
|
Line 124: | Line 144: |
20 bodov zo 40. Body sa budú udeľovať v rámci cvičení. | 15 bodov z 30. Body sa budú udeľovať v rámci cvičení. Budú 2 zápočtové cvičenia, jedno zo shell scriptov a jedno z Pythonu. |
Operačné systémy
2008/09 -- LS
Vyučujúci
Gejza Jenča gejza.jenca@stuba.sk
Konzultačné hodiny
V utorok 16:00-17:00. Radšej ale konzultuje priamo na cvičení.
Stručná osnova predmetu
- Princípy OS Unix/Linux
- Základy práce so systémom
- Súborový systém
- Užívatelia a skupiny
- Procesy, rúry
- Prehľad základných utilít
- Programovanie v shelli, skripty
- Programovací jazyk Python
Výsledky
Zadanie na prvé zápočtové cvičenie
Tieto zadania si vypracujte doma. Ak to zvládnete sami, nemali by ste mať na skúšobnom cvičení problém. Môžete si samozrejme navzájom pomáhať. Zadania nebudem zbierať. Na cvičení vám dám urobiť niečo podobné, takže si vypracované zadania doneste, pomôže vám to. Body dostanete za to, čo urobíte priamo na cvičení. Skúšobné cvičenie bude 13.4.2010 počas cvičenia. |
Pripomínam, že príkaz man je vaším priateľom. Pre komplexnejšie informácie odporúčam nahliadnuť do Advanced Bash Scripting Guide, link je nižšie.
a) premenovanie obrázkov
Vytvorte v bashi skript rename_pics, ktorý premenuje všetky súbory v aktuálnom adresári, ktoré majú koncovku JPG na súbory s koncovkou jpg, napr. obrazok1.JPG premenuje na obrazok1.jpg.
Pomôcka: pre transformáciu mena môžete použiť takéto niečo: NOVE_MENO=`echo $STARE_MENO | sed '...'` Dávajte si pozor na to, aby ste premenovali iba koncovky, reťazec JPG sa môže vyskytovať aj uprostred mena súboru. Môžete prepokladať, že mená súborov neobsahujú žiadne biele znaky, napr. medzery.
b) upravte skript z a) tak, aby premenoval aj súbory ako obrazok1.jPG a podobne.
Pomôcka: man sed.
c) a teraz to spravte všeobecne:
Napíšte skript, ktorý dostane v argumentoch zoznam mien súborov a premenuje ich tak, aby mali koncovky malými písmenami.
Pomôcky: neurčitý počet argumentov je možné spracovať pomocou cyklu
while true do ... spracovanie $1 ... if shift then break fi done
alebo
while test "$*" != "" do ... spracovanie $1 ... shift done
prípadne
for ARG in "$@" do ... spracovanie $ARG ... done
Pre transformáciu veľkých písmen na malé použite príkaz tr.
Ďalšie cvičenia
Materiály
Literatúra
Linux: Příručka českého uživatele, Vilém Vychodil; Computer Press 2003, Brno (je žiadúce, aby každý mal svoju kópiu)
Začínáme programovat v jazyce Python, Daryl Harms, Kenneth McDonald; Computer Press, 2003
Learning Python",, Mark Lutz, David Ascher; O'Reilly 2007, http://slav0nic.org.ua/static/books/python/OReilly.Learning.Python.3rd.Edition.Oct.2007.eBook-BBL.rar
The Art of Unix Programming, Eric S. Raymond, http://www.faqs.org/docs/artu/
Umění programování v Unixu, Eric S. Raymond, (český preklad horeuvedeného)
How To Ask Questions The Smart Way, Eric Steven Raymond, http://www.catb.org/~esr/faqs/smart-questions.html
Dive into Python, Mark Pilgrim, http://www.diveintopython.org/
Advanced Bash-Scripting Guide, Mendel Cooper, http://tldp.org/guides.html
GNU/Linux Command-Line Tools Summary, Gareth Anderson, http://tldp.org/guides.html
A Byte of Python, Swaroop C H, http://www.swaroopch.com/notes/Python
How to Think Like a Computer Scientist, Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/
Webové stránky
http://www.root.cz/clanky/regularni-vyrazy-1/ seriál o regulárnych výrazoch od P. Satrapu
http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu
Podmienky na zápočet
15 bodov z 30. Body sa budú udeľovať v rámci cvičení. Budú 2 zápočtové cvičenia, jedno zo shell scriptov a jedno z Pythonu.
Príklady a cvičenia