Programování v unixovém shellu [ KMI/SHELL ]
Předmět se zabývá programováním v shellu na unixových operačních systémech (skriptování) a zpracování textu s využitím shellu.
Předmět volně navazuje na předmět Unixové systémy. V první části jsou stručně zopakovány základy unixového shellu, systémů souborů a procesů a zpracování textu na unixových operačních systémech. Hlavní náplní předmětu je pak programování v shellu (tzv. skriptování, primárně shell Bash) a jeho využití pro proudové zpracování textu pomocí základního softwarového vybavení unixového operačního systému a zejména nástrojů grep, sed a awk. V závěru jsou zmíněna i národní specifika (lokalizace) a specifika systémů Linux, GNU a Apple Mac OS X. Vše je intenzivně praktikováno na seminářích v operačním systému linux a shellu Bash.
Předpoklady: Dovednosti práce s unixovými operačními systémy v rozsahu předmětu Unixové systémy a programování v libovolném jazyce.
Zápočet
- požadováno získání alespoň 2/3 celkového počtu bodů z úkolů na seminářích
- při získání alespoň 1/2 možnost body doplnit z dodatečných úkolů
Materiály
Semináře
- Základní principy unixových operačních
systémů, úvod do shellu:
Příkazový řádek a interpret (shell), manuálové stránky a
nápověda shellu, soubory a adresáře, (tradiční unixová) přístupová
práva, procesy a manipulace s nimi. Řízení úloh v shellu, expanze jmen souborů a
adresářů, aliasy, vstup a výstup programu, roura.
úkoly, slajdy, záznam přednášky 19. 10. 2020, záznam přednášky 2. 11. 2020 - Základy zpracování textu:
Editace textu: editory Vi a Emacs, základní programy, regulární výrazy
a grep, základy sedu a awk.
úkoly, slajdy, záznam přednášky 2. 11. 2020, záznam přednášky 16. 11. 2020, záznam přednášky 30. 11. 2020, záznam přednášky 14. 12. 2020 - Programování v shellu (Bash):
Příkazy, proměnné (parametry),
podmínky, cykly, celočíselná aritmetika, seskupování příkazů, funkce,
skript.
úkoly 1-3, poznámky - Programování v shellu (Bash):
Spouštění shellu, kvótování,
speciální proměnné, pole, expanze ({}, proměnných a parametrů, slov,
cesty), substituce výstupu příkazu, další příkazy.
úkoly 4-5, úkoly 6-7, poznámky - Zpracování textu: proudový editor sed:
Průběh editace, editovací příkaz, funkce, použití proměnných shellu.
úkoly 8-9, úkoly 10-11, poznámky, záznam přednášky 14. 12. 2020 - Zpracování textu: programovací jazyk awk:
Pole řádku, vzorek a akce, proměnné, pole, operátory, podmínky, cykly, funkce.
úkoly 12-13, úkoly 14-15, poznámky - Národní prostředí (české):
Lokalizace a lokalizační proměnné shellu, kódování textu a konce řádků.
úkoly 16-17, poznámky - Specifika oproti Unixu (standardu POSIX):
Specifika Linuxu, GNU a Apple Mac OS X (desktop a terminál, příkazový řádek, nápověda, souborový systém, systém procesů, grep, Bash, sed, awk, lokalizace).
poznámky
Literatura
- Vychodil V.: Linux: Příručka českého uživatele. Computer Press, 2003. ISBN 80-7226-333-1
- Sobell M. G., Helmke M.: A Practical Guide to Linux Commands, Editors, and Shell Programming (4nd Edition). Addison-Wesley, 2017
- Albing C., Vossen JP: bash Cookbook: Solutions and Examples for Bash Users (2nd edition). O'Reilly Media, 2017. ISBN 978-1-491-97533-6
- Herold H.: awk & sed: Příručka pro dávkové zpracování textu. Coputer Press, 2004. ISBN 9788025103098
- Blum R., Bresnahan C.: Linux Command Line and Shell Scripting Bible, 3rd Edition. Wiley, 2015. ISBN 978-1-118-98384-3
- Michael R. K.: Mastering Unix Shell Scripting: Bash, Bourne, and Korn Shell Scripting for Programmers, System Administrators, and UNIX Gurus. Wiley, 2008. ISBN 978-0470183014
- Forst L.: Shell v příkladech aneb aby váš unix skvěle shell. Matfyzpress, 2010. ISBN 978-80-7378-152-1
- Cooper M.: Advanced Bash-Scripting Guide. Open Publication License, 2007
- Ray D. S., Ray Eric J.: Unix: podrobný průvodce. Grada, 2009. ISBN 978-80-247-2125-5
- Čada O.: Mac OS X Shell krok za krokem. Grafika Publishing s.r.o., ISBN 80-903152-2-4
- Cannon J.: Linux for Beginners: An Introduction to the Linux Operating System and Command Line. CreateSpace Independent Publishing, 2014
- Kameník P.: Příkazový řádek v Linuxu: praktická řešení. Computer Press, 2012. ISBN 978-80-251-2819-0
- Fox R.: Linux with operating system concepts. CRC Press, 2015. ISBN 978-1-4822-3589-0
- Sobell M. G.: Mistrovství v Linuxu: Příkazový řádek, shell, programování. Computer Press, 2007. ISBN 9788025117262
- kolektiv: Linux: Dokumentační projekt, 4. aktualizované vydání. Computer Press, 2008. ISBN 9788025115251