Differences between revisions 19 and 39 (spanning 20 versions)
Revision 19 as of 2008-10-15 11:30:22
Size: 4580
Editor: 147
Comment:
Revision 39 as of 2009-02-19 21:31:41
Size: 2724
Editor: 92
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
= Počítové siete = = Operné systémy =
Line 4: Line 4:
2008/09 -- ZS 2008/09 -- LS
Line 11: Line 11:
Line 22: Line 21:
 * Textový editor vim
Line 24: Line 22:
 * Základy internetových protokolov
 * Protokol http
 * Základy HTML
   == Výsledky ==
Line 30: Line 28:
=== Cvičenia pre prípravu na prvé skúšobné cvičenie === [[attachment:python_zadania.pdf]]
Line 32: Line 30:
<<Pozor>>
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í.
Line 38: Line 31:
'''Skúšobné cvičenie bude vo štvrtok 30.10 -- nie v piatok, aby nás nezaskočilo prípadné voľno pred 1.11'''
<<Pohov>>
##=== Cvičenia z pythonu ===
Line 41: Line 33:
a) premenovanie obrázkov ## 1. Napíšte program, ktorý zostrojí a vypíše zoznam prvočísiel < 100
## 1. Napíšte funkciu, ktorá transponuje maticu. Matica je daná ako zoznam zoznamov čísel.
## 1. Napíšte funkciu {{{permutuj(zoz)}}}, ktorá vráti všetky permutácie zoznamu {{{zoz}}}
Line 43: Line 37:
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.

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: je niekoľko ciest ako to spraviť. Vyskúšajte prvú cestu a potom druhú:

V prvom rade musíte nejako vyprodukovať stĺpec s dľžkami súborov. Buďto na to choďte cez
{{{
ls | cut -c ...
}}}
alebo
{{{
for FILE in *; do
stat ... $FILE
}}}
(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:
{{{
SUM=0
for NUMBER in `... kód produkujúci zoznam dĺžok ...`; do
... sem prirátavanie NUMBER k SUM cez let ...
done
echo $SUM
}}}

Kostra druhého spôsobu:
{{{
... kód produkujúci zoznam dĺžok ... | tr '\n' '+' | bc
}}}

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.
Line 94: Line 42:
Line 96: Line 45:
 * [[/Fork|fork(), wait(), SIGCHLD]]
 * [[/Pipe|pipe()]]
 * [[/Socket| UNIXové sockety]]

=== 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 118: Line 68:
 1. http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám

Operačné systémy

2008/09 -- LS

Vyučujúci

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

Domáce zadania

python_zadania.pdf

Materiály

Pythonovské programy

Literatúra

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

  2. Začínáme programovat v jazyce Python, Daryl Harms, Kenneth McDonald; Computer Press, 2003 (nie je nutné, stačí dokumentácia v systéme)

  3. The Art of Unix Programming, Eric S. Raymond, http://www.faqs.org/docs/artu/

  4. Umění programování v Unixu, Eric S. Raymond, (český preklad horeuvedeného)

  5. How To Ask Questions The Smart Way, Eric Steven Raymond, http://www.catb.org/~esr/faqs/smart-questions.html

  6. Dive into Python, Mark Pilgrim, http://www.diveintopython.org/

  7. Advanced Bash-Scripting Guide, Mendel Cooper, http://tldp.org/guides.html

  8. GNU/Linux Command-Line Tools Summary, Gareth Anderson, http://tldp.org/guides.html

Webové stránky

  1. http://www.root.cz/clanky/regularni-vyrazy-1/ seriál o regulárnych výrazoch od P. Satrapu

  2. http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám

Podmienky na zápočet

20 bodov zo 40. Body sa budú udeľovať v rámci cvičení.

Príklady a cvičenia

Výsledky

KMaDGWiki: OperacneSystemy (last edited 2024-09-17 13:58:44 by jenca)