Differences between revisions 74 and 196 (spanning 122 versions)
Revision 74 as of 2010-03-29 15:35:56
Size: 5185
Editor: jenca
Comment:
Revision 196 as of 2020-12-18 07:49:41
Size: 5835
Editor: jenca
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
2008/09 -- LS == Repozitár programov písaných na prednáškach ==
Line 5: Line 5:
## == Downloady pre cvičenia ==
##
## [[attachment:gallery.tar.gz]]
##[[attachment:passwd.txt]]
## [[attachment:zadanie2.pdf]]
##[[attachment:zadanie_opr.pdf]]
https://github.com/gjenca/os2020
Line 12: Line 7:
== Skúšobné zadanie náhradné 1. cviko ==
Line 13: Line 9:
##== Uploady == https://github.com/gjenca/metar2
Line 15: Line 11:
##[[/Uploady]] <<Pozor>>
Skúšobné cvičenie z Pythonu bude 15.12.2020, domáce zadanie je [[ attachment:zadanie2_os_2020.pdf | tu ]].
<<Pohov>>
Line 17: Line 15:
== Vyučujúci == == Záznamy prednášok ==
Line 19: Line 17:
 * Gejza Jenča gejza.jenca@stuba.sk  * [[https://drive.google.com/file/d/1gHvLco4zgIO-fxyj3_3X42f6fRl9xB81/view?usp=sharing | 29.9.2020 8:00 procesy, správa pamäti,fork]]
 * [[https://drive.google.com/file/d/1Qfel2bPsgBCeht-RFTPds_bbZYnjBdvD/view?usp=sharing | 29.9.2020 12:00 wait, execl, súborové popisovače, presmerovanie cez dup2]]
 * [[https://drive.google.com/file/d/1wrRLgwmWvYPI8Ngrd4XqIm5FExAre9LR/view?usp=sharing | 6.10.2020 8:00 komunikácia cez rúry]]
 * [[https://drive.google.com/file/d/1qmBbeLvis5RXdszfZW8OQCYiMj54Uapr/view?usp=sharing | 6.10.2020 12:00 bc ako príklad podriadeného procesu]]
 * [[https://drive.google.com/file/d/1R0BDf8gKI10lZF5ydPydvX0x-lQ_BQcH/view?usp=sharing | 13.10.2020 8:00 súbory, adresáre, symbolické linky]]
 * [[https://drive.google.com/file/d/1R6fwrTD2MuCEj2ndl__MFpc3YK0GBiy8/view?usp=sharing | 13.10.2020 12:00 elementy príkazového riadku]]
 * [[https://drive.google.com/file/d/1-ctZ4YU2-gZYClCJEwKgX8DnUHjlBr9Q/view?usp=sharing | 20.10.2020 8:00 užívatelia, skupiny, prístupové práva]]
 * [[https://drive.google.com/file/d/1q1K5odDHygaCy88tI9iGXHYXFPVuJxxE/view?usp=sharing | 20.10.2020 12:00 setgid na adresár, programy pre prácu so súbormi, head, tail]]
 * [[https://drive.google.com/file/d/1aT8yMqump_Z_rbpcMgsyF-rN9YxiKwxg/view?usp=sharing | 27.10.2020 8:00 cut, paste, sort, uniq, seq, stat, ...]]
 * [[https://drive.google.com/file/d/1xuYGuk5oLkzpJHqFc5cGQb9w2WvSDjy1/view?usp=sharing | 27.10.2020 12:00 skripty, základy programovania v shelli ]]
 * [[https://drive.google.com/file/d/1UzbPdjt7loiHIMuTutDvwtsnZeKGDQZF/view?usp=sharing | 3.11.2020 8:00 regulárne výrazy, grep, sed ]]
 * [[https://drive.google.com/file/d/1ZWMUAdBfHedVlHQiPYOMfIcK85UIeyJl/view?usp=sharing | 3.11.2020 12:00 argumenty príkazového riadku v skriptoch ]]
 * [[https://drive.google.com/file/d/1YBx2nDam2HtM4_KtWzyomXzsGkztmozP/view?usp=sharing | 10.11.2020 8:00 príklad dvoch skriptov od začiatku do konca ]]
 * [[https://drive.google.com/file/d/1GV6F-JD2seVMs3Q0_WZ6ms440O08svR4/view?usp=sharing | 10.11.2020 12:00 Python -- úvod, čísla, reťazce, zoznamy]]
 * [[https://drive.google.com/file/d/1XjwBsLjhXBWuFYdZwBrI38Zi5XIGPPeX/view?usp=sharing | 24.11.2020 8:00 Python -- ďalšie typy, podmienky, cykly, funkcie]]
 * [[https://drive.google.com/file/d/1i3BJ5vAGzfVYLk6YQUmHu0veSNtJR5_Q/view?usp=sharing | 24.11.2020 12:00 Python -- techniky iterácie, skripty]]
 * [[https://drive.google.com/file/d/1rNyhUWeUN6ilyslskeKGJ9KgkB4K-CXH/view?usp=sharing | 1.12.2020 8:00 Python -- funkcie, argumenty]]
 * [[https://drive.google.com/file/d/1qy1eLJVx8x9vgsQyljlYSSXR7_qgVQjT/view?usp=sharing | 8.12.2020 8:00 Python -- moduly, triedy]]
 * [[https://drive.google.com/file/d/1hqDBtV7NXA_4S83eBUHlBj7CQ1yc1u38/view?usp=sharing | 8.12.2020 12:00 Python -- retazce, vydelenia zoznamov a iných objektov]]
 * [[https://drive.google.com/file/d/1L34yCI4F4LZt-bznC-UOgHjn8CeclJ6M/view?usp=sharing | 15.12.2020 8:00 Python -- špeciálne metódy, uzávery, dekorátory ]]
Line 21: Line 38:
== Konzultačné hodiny ==

V utorok 16:00-17:00. Radšej ale konzultuje priamo na cvičení.
Line 36: Line 50:
##== Výsledky ==
##
##[[/Výsledky]]
== Výsledky ==
Line 40: Line 52:
== Zadanie na prvé zápočtové cvičenie ==

<<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í.
<<Pohov>>

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`.
##[[/Vysledky]]
Line 104: Line 62:
 * [[attachment:prva.pdf|pdf k prvej prednáške]]
Line 109: Line 66:
##=== Pythonovské programy ===

## * [[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 123: Line 69:
 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
 1. ''Začínáme programovat v jazyce Python'', Daryl Harms, Kenneth !McDonald; Computer Press, 2003
Line 134: Line 79:
Line 138: Line 84:
 1. Mercurial SCM, http://mercurial.selenic.com/
 1. Python documentation, http://docs.python.org/
 1. A Guide to Python's Magic Methods, http://www.rafekettler.com/magicmethods.html
Line 147: Line 96:
== Výsledky == ## http://bitbucket.org/gjenca/csv2html2012

== Ostatné ==

## http://bitbucket.org/gjenca/vimrc

Operačné systémy

Repozitár programov písaných na prednáškach

https://github.com/gjenca/os2020

Skúšobné zadanie náhradné 1. cviko

https://github.com/gjenca/metar2

Skúšobné cvičenie z Pythonu bude 15.12.2020, domáce zadanie je tu.

Záznamy prednášok

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

Ďalšie cvičenia

Cvičenia zo shellu

Cvičenia z Pythonu

Materiály

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

  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

  9. A Byte of Python, Swaroop C H, http://www.swaroopch.com/notes/Python

  10. How to Think Like a Computer Scientist, Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/

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 Pythonu

  3. Mercurial SCM, http://mercurial.selenic.com/

  4. Python documentation, http://docs.python.org/

  5. A Guide to Python's Magic Methods, http://www.rafekettler.com/magicmethods.html

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

Ostatné

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