Programování v Linuxu. Ondřej Vondrouš

Rozměr: px
Začít zobrazení ze stránky:

Download "Programování v Linuxu. Ondřej Vondrouš"

Transkript

1 Programování v Linuxu Ondřej Vondrouš

2 Autor: Ondřej Vondrouš Název díla: Programování v Linuxu Zpracoval(a): České vysoké učení technické v Praze Fakulta elektrotechnická Kontaktní adresa: Technická 2, Praha 6 Inovace předmětů a studijních materiálů pro e-learningovou výuku v prezenční a kombinované formě studia Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

3 VYSVĚTLIVKY Definice Zajímavost Poznámka Příklad Shrnutí Výhody Nevýhody

4 ANOTACE Cílem tohoto modulu je seznámit čtenáře s možnostmi tvorby vlastních programů a skriptů v Operačním systému Linux. CÍLE Po přečtení tohoto modulu by čtenář měl být schopen rozlišit skripty a programy. Čtenář by se měl seznámit se seznamem základních linuxových nástrojů. Dále by si čtenář měl osvojit práci se standardním vstupem a výstupem a možnostmi jeho přesměrování, včetně využití rour ( pipe). V části zaměřené na programování, bude ukázána řada nástrojů, která slouží pro usnadnění práce s vývojem a distribucí vlastních programů. Zvláštní pozornost bude věnována balíku nástrojů GNU toolchain. LITERATURA [1] Michael, Randal. Mastering UNIX Shell Scripting. : WILEY, ISBN [2] Larry, Wall. Tom, Christiansen. Randal L., Schwartz. Programování v jazyce Perl. : Computer Press, 1997, 683. ISBN [3] Keir, Davis. John, W.,Turner. Nathan, Yocom. The Definitive Guide to Linux Network Programming.. : Apress, 2004, 374. ISBN [4] Peter,Norton. Harley, Hahn. Průvodce Unixem. : Unis Publishing, ISBN

5 Obsah 1 Programování v Linuxu Začínáme Motivace Skript vs. Program Skriptovací jazyky Programovací jazyky Vývojová prostředí Shrnutí Ověření znalostí Programování v Linuxu Skripty Úvod Nástroje SH/BASH AWK PERL Python Shrnutí Ověření znalostí Programování v Linuxu Programy Úvod Nástroje GNU toolchain Nástroje GCC Nástroje make Nástroje GNU Binutils Nástroje GDB Nástroje autotools Nástroje configure / make / make install Ověření znalostí Programování v Linuxu Co se jinam nevešlo Další možnosti ladění programů valgrind, a electric fence, Služby démoni Automatické spouštění a plánování Automatické spouštění a plánování - at Automatické spouštění a plánování - cron Shrnutí Ověření znalostí... 49

6 5 Přestávka Programování v Linuxu závěrečné cvičení Test... 51

7 1 Programování v Linuxu Začínáme 1.1 Motivace Tento modul si klade za cíl přiblížit čtenářům možnosti programování a psaní skriptů na platformě Linux. Hlavní motivací studentů pro zvládnutí látky obsažené v tomto modulu by měl být fakt, že řadu programátorských úkolů může být velmi snadné vyřešit, pokud se zvolí vhodný postup pro řešení konkrétní problematiky. Vhodný postup v tomto případě bude znamenat, udělat to správné rozhodnutí, kdy použít některého ze skriptovacích jazyků a kdy zase naopak použít programování ve vyšším programovacím jazyce s použitím vhodných podpůrných nástrojů. Zvolení správného přístupu k řešení problému má pozitivní vliv na zvládnutí jakéhokoliv problému. To co jednou metodou programování může být jen obtížně dosažitelné a kde řešení zabere programátorovi několik hodin, tak použitím odlišné metody může být daný problém vyřešen třeba během několika minut. Předpokládá se, že řada čtenářů se již setkala s programováním v jednom z klasických programovacích jazyků typu C/C++ a nebo JAVA. To, že se čtenář seznámí s možnostmi psaní skriptů a obecně možnostmi skriptovacích jazyků, může mít do budoucna velký vliv na urychlení vývoje při řešení specifických úkolů. A to vzhledem k faktu, že se mu rozšíří paleta použitelných technologií pro řešení programátorských problémů. Proč se zabývat programováním v Linuxu? Dalo by se jednoduše říci, že programování na platformě Linux se v ledasčem moc neliší od programování na jiných platformách a na druhou stranu v některých aspektech se liší zcela zásadně. To zásadní je především to, že platforma Linux je přímo jakoby stvořená pro programování. Pokud si nainstalujete některou z distribucí Linuxu, budete mít již v základu k dispozici potřebné kompilátory, debugery, iterpretery skriptů a vývojová prostředí. O čem tento modul je. Tento modul se snaží čtenáři vysvětlit rozdíly mezi skripty a programy. V modulu bude čtenář seznámen se základním přehledem skriptovacích jazyků používaných na platformě Linux a budou zde vysvětleny jejich přednosti a nedostatky. V sekci věnovanou programování ve vyšších programovacích jazycích bude čtenář seznámen s nástroji z balíku GNU toolchain. Budou také prezentovány některé techniky jako například jakým způsobem vytvořit daemona (službu) a jakým způsobem plánovat spouštění úloh v daný čas.

8 O čem tento modul není. Ačkoli by k tomu mohl svádět název modulu, tak tento modul není o programování jako takovém. Nebudou zde vysvětlovány žádné základy programování a algoritmizace. Naopak se předpokládá, že čtenář již alespoň částečně ovládá programování v některém z vyšších programovacích jazyků. Ukázky příkladů zde slouží především pro demonstraci konkrétních vlastností a ne jako ukázka nejlepšího možného postupu při řešení problému. Modul se také zcela záměrně vyhýbá tématice skriptovacích jazyků pro WWW, ale zaměřuje se na systémové skripty a to i přes to, že použité skriptovací jazyky jsou velmi univerzální a je možné se s nimi setkat velmi často i ve webových aplikacích. 8

9 1.2 Skript vs. Program V této části textu si vysvětlíme rozdíl mezi programem a skriptem. Rozdělení je možné pojmout z řady úhlů pohledu. Pokud se na danou problematiku podíváme z pohledu výkonu, budou většinou vítězit klasické programy překládané do spustitelné binární podoby. Pokud se na věc podíváme z pohledu rychlosti vývoje, zjistíme, že velkou řada problémů lze řešit velice elegantně a rychle na úrovni skriptů, byť za cenu pomalejšího zpracování. To ovšem bývá bohatě nahrazeno velkou rychlostí implementace Dále je nutné si uvědomit, že zatímco program se překládá pouze jednou a následně se provádí zkompilovaný kód programu, tak v případě skriptů je skript interpretován vždy znovu a znovu ve své zdrojové formě. To ovšem není vždy na překážku, u skriptů není nutné je po jejich změně rekompilovat, ale je možné je ihned spouštět. Pokud jde něco programem udělat velmi jednoduše, lze to samé v řadě případů udělat pomocí skriptu ještě jednodušeji a hlavně rychleji. Kdy zvolit ten který postup závisí na tom čeho je potřeba dosáhnout. A to by si měl každý velmi dobře uvědomovat již v době návrhu řešení. Špatný postup sice a priori nevede k selhání, ale bývá mnohem pracnější, složitější na implementaci. Z toho také vyplývá i větší náchylnost na výskyt chyb. Uvažujme vcelku standardní situaci, kterou musí řešit běžný administrátor serverů. Potřebujeme zjistit, kolikrát denně se nám někdo cizí pokouší připojit na náš poštovní server, intuitivně asi tušíte, že psát kvůli tomu program je příliš těžkopádné. Zvláště když si později ukážeme, že se tento problém dá vyřešit velice elegantně na několika řádcích skriptu a to zcela pomíjím fakt, že daný skript by se dal zapsat do jediného řádku! Ukázku takového skriptu si ukážeme v dalším textu a to hned v několika skriptovacích jazycích. Budeme-li uvažovat jiný problém a to realizaci nějaké síťové služby, kde bude zásadní výkon. Bude potřeba napsat efektivní a robustní program, bude asi nejlepší použít nějaký vyšší programovací jazyk. I když i zde jsou možnosti jak vytvářet síťově služby na úrovni skriptovacích jazyků. Pokud se podíváme na skripty a programy z dalšího úhlu, tak další velká rozdílnost spočívá ve formě použitých příkazu. Zatímco při programování převládá volání interních příkazů daného programovacího jazyka a systémová volání se používají minimálně, tak v případě psaní skriptů je situace v některých případech diametrálně odlišná. Jedná se typicky o případ psaní skriptů pro SHELL, kdy se z velké části využívají malé obslužné programy, které jsou součástí Linuxových distribucí. Značnou pozornost si také zaslouží způsob definice proměnných. Zde je rozdíl na první pohled velmi markantní. Na jedné straně stojí vyšší programovací jazyky se 9

10 silnou typovou kontrolou. Při deklaraci proměnných je třeba zvolit požadovaný typ proměnné a následný přístup k dané proměnné je tímto předurčen. Kdežto v případě skriptovacích jazyků je situace naprosto odlišná. Proměnné je sice třeba v některých skriptovacích jazycích deklarovat, ale datových typů bývá výrazně méně. Také vzhledem k absenci překladu dochází ke kontrole datových typů až během běhu programu. Některá jazyky třeba jako například PERL přistupují k proměnné dle toho, jak je na proměnnou odkazováno. Pokud se zaměříme například na práci s datovým typem pole v jazyce PERL, pak dostáváme následující výsledky. značí datový typ pole a symbol $ značí skalární proměnnou. Jak vidno PERL přistupuje k definici typů proměnných velmi benevolentně. A, B, C, D, E ); #přiřazení položek seznamu do pole. 2 #vytvoření pouze části pole. 3 #ve $var bude uložena velikost daného pole. 4 $var=$pole[2]; #ve $var bude uložena hodnota C. 5 my #do jednotlivých proměnných se uloží jednotlivé položky pole. Jak vidíte na uvedeném příkladu, možností jak pracovat s datovým typem pole je celá řada. Za povšimnutí stojí především třetí řádek, kde je pěkně vidět, že pokud má být výsledkem operace skalární hodnota, tak interpret jazyka změní přístup k datovému typu pole a do proměnné uloží jeho velikost, což je jediná skalární hodnota, kterou může daná operace vrátit. Stranou samozřejmě zůstává přímý přístup na položku pole, viz řádek číslo 4. To je samozřejmě také operace, která vrací skalární hodnotu, v tomto případě se ovšem neodkazujeme na datový typ pole, ale pouze na konkrétní položku daného pole. 10

11 1.3 Skriptovací jazyky Jazyků, které je možné použít k tvorbě skriptů na platformě Linux je celá řada. Při jejich výběru bude záležet především na tom, co bude vašim cílem a jak elegantně budeme chtít daného cíle dosáhnout. Mezi typické zástupce skriptovacích jazyků je možné zařadit: PERL, Python, PHP, Ruby, SHELLy SH/BASH, AWK, a případně celou řádku další interpretovaných jazyků. Je dobré si uvědomit, že skriptovací jazyky lze velmi dobře kombinovat. Při tvorbě skriptu můžete velmi jednoduše volat pro jednotlivé podúlohy jiné skripty psané jinými skriptovacími jazyky. Stejně tak jsou například SHELLové skripty založené na volání rozličných dílčích jednoúčelových programů. Jednotlivé skripty nebo programy je také možné řetězit do složitějších celků a to tak, že standardní výstup jednoho propojíme se standardním vstupem následujícího. Mějme situaci, kdy chceme otestovat internetové spojení, ale nemáme dostatek času čekat na výsledek. Tak spustíme test a necháme si výsledek poslat em. nohup ping c 5000 tail n 4 mail s Test nohup zajistí, aby program běžel i po ukončení terminálu ping program ping pro testování odezvy pomocí protokolu ICMP tail program který vypíše na výstup požadovaný počet řádku ze vstupu mail program který dokáže odeslat Jak si můžete všimnout, vše se dá vyřešit elegantně jedinou příkazovou řádkou. To, že je možné takovéto problémy řešit takto elegantně umožňuje ta skutečnost, že je možné přesměrovat standardní výstup jednoho programu na standardní vstup dalšího. To se v OS Unixového typu dělá pomocí operátoru PIPE (roura) v zápisu příkazu/skriptu se s ním setkáváme nejčastěji ve formě znaku Ve výše uvedeném příkladu můžete vidět kombinaci hned 4 různých programů, které ve formě jediného příkazového řádku splní vaše požadavky. V tomto případě se vlastně nejedná ani o skutečný skript. Nicméně na příkladu je krásně vidět celá filosofie psaní skriptů a to dělat věci co nejjednodušší a nejefektivnější. PIPE (roura) reprezentovaná znakem slouží k přesměrování stdout (standardního výstupu) na stdin (standardní vstup). Na české klávesnici je možné daný znak napsat stisknutím kombinace: pravý ALT + W. 11

12 Kromě rour existují i další možnosti přesměrování standardních vstupů a výstupu. K tomu slouží speciální znaky < a >. > umožňuje přesměrovat standardní výstup do souboru. >> umožňuje přesměrovat standardní výstup a připojit ho na konec souboru. < umožnuje přesměrování obsahu souboru na standardní vstup 2> umožňuje přesměrovat standardní chybový výstup do souboru. Je také možné přesměrovávat standardní výstupy stdout a stderr" vzájemně mezi sebou. A nyní si ukážeme několik příkladů na přesměrování Mějme situaci, kdy chceme jednoduše provést záznam o testu pomocí programu ping. Není nic jednoduššího než pomocí parametru navolit parametry testu ping a přesměrovat jeho výstup do námi zvoleného souboru. ping s 160 c 500 > ~/muj_test.txt Přesměrování standardního chybového výstupu na standardní výstup a následně do souboru /dev/null. To znamená, že veškerý výstup bude potlačen, respektive zahozen. $ muj_program 2>&1>/dev/null Toto řešení se používá u periodicky plánovaných akcí, kde nechceme být za žádnou cenu informování o průběhu nebo selhání daného programu. Nejprve přesměrujeme standardní chybový výstup na standardní výstup a ten následně přesměrujeme do speciálního zařízení /dev/null. Toto speciální zařízení nedělá nic jiného, než že zahodí veškerý standardní vstup. Občas se hodí i přesměrování vstupu ze souboru, viz následující skript. #!/bin/sh while read line; do echo $line; done <./muj_soubor_s_daty.txt V jedné z pozdějších částí textu si představíme několik typických zástupců skriptovacích jazyku s malou ukázkou jejich použití ve formě jednoduchých skriptů. 12

13 Skripty nejsou vázány na použitou platformu, ale pouze na interpret daného skriptu, a proto jsou skripty většinou dobře přenositelné mezi platformami, pro které je k dispozici interpret daného skriptovacího jazyka 13

14 1.4 Programovací jazyky Tak jako na ostatních OS je možné i v OS Linux tvořit programy v celé řadě programovacích jazyků. Mezi nejtypičtější představitele je možné zařadit jazyky C, C++, JAVA a podobně. Podpora programovacích jazyků znamená, že pro danou platformu existuje patřičný kompilátor a linker. Velkou výhodou programování právě na platformě Linux je to, že většina nejrozšířenějších distribucí obsahuje velkou řadu potřebných překladačů přímo ve svých repositářích. A jak je v Linuxu typické řada z nich je dostupná pod licencí GNU, nebo podobnou, která umožňuje téměř neomezené využití daných nástrojů a to zdarma. Asi nejpoužívanějším překladačem na platformě Linux je bezesporu překladač GNU GCC. Je třeba vyzdvihnout, že tento kompilátor je velmi kvalitní a podpora architektur je velmi rozsáhlá. GNU GCC podporuje cca 20 standardních architektur a celkově více než 60 architektur procesorů pokud zahrneme i méně běžné typy. V rodině překladačů GNU je dále možné nalézt překladač pro JAVU GNU Java a překladače pro, v dnešní době, méně obvyklé programovací jazyky, jakož jsou GNU Ada a GNU Fortran. Výhodou programovacích jazyků je skutečnost, že kompilátory provádějí značné optimalizace pro konkrétní platformy a tím dále zefektivňují vykonávání daných programů. Nevýhodou může být především užší provázání s konkrétní platformou a proto horší přenositelnost daného programu na jinou platformu. 14

15 1.5 Vývojová prostředí Další nespornou výhodou platformy Linux je dostupnost velké řady vývojových prostředí pro vývoj aplikací, skriptů a programů. Prostředím zde rozumíme, jak komplexní IDE (Integrated Development Enviroment), tak i editory, které dokážou ulehčit práci při vývoji, například barevným rozlišením syntaxe. Mezi IDE běžně dostupná v rámci repositářů jednotlivých distribucí Linuxu patří prostředí KDevelop, či Eclipse. Doporučit se dá také určitě Netbeans IDE, které je sice potřeba stáhnout ze stránek projektu, ale instalace je velmi jednoduchá a toto prostředí určitě patří k tomu nejlepšímu, co je možné získat zdarma. Jak můžete vidět na následujícím obrázku, možnosti IDE jsou značné a neomezují se pouze na zvýraznění syntaxe. Dobré IDE vám poskytne přehled o třídách objektů, umožní vám využívat versovací systémy a poskytne bohatou podporu při vývoji. NetBeans IDE Pokud zmiňujeme Linux, určitě se řadě čtenářů vybaví to, že OS Linux lze velmi dobře provozovat i bez grafické nadstavby. Ani v tomto případě nemusí být vývoj 15

16 na této platformě nikterak složitý nebo dokonce nekomfortní. Existuje velké množství editorů, které dokážou vývoj programů a skriptů velmi zpříjemnit, ať už uživatelsky přívětivým a intuitivním ovládáním v případě například editoru mcedit, nebo propracovaností ovládání, které je na první pohled složité, ale zato velmi efektivní při vývoji v případě editorů emacs, vim apod. V případě konzolových textových nástrojů nemůžeme ani opomenout kvalitní barevné rozlišení syntaxe. Viz následující obrázky, které zachycují barevné rozlišení syntaxe skriptu v PERLu v editoru mcedit. Barevné zvýraznění syntaxe samozřejmě dokážou poskytovat i další editory. Zvýraznění syntaxe v editoru mcedit 16

17 1.6 Shrnutí Skript vs. Program Script vs Program program nutná kompilace po každé úpravě kompilace pro každou platformu zvlášť, případně úprava platformě závislého kódu spouští se vlastní binární program složitější a delší kód většinou řádově výkonnější kód script nekompiluje se / rovnou se spouští stačí nainstalovaný interpret jazyka na dané platformě skript běží v interpretru jazyka velmi úsporný a jednoduchý kód většinou řádově menší výkon Vývojová prostředí Na platformě Linux je k dispozici velké množství vývojových prostředí a editorů s podporou syntaxe běžných jazyku. Tato prostředí jsou z velké části součástí většiny distribucí. K dispozici jsou jak prostředí pro textový režim ( vim, emacs, mcedit, nano, ), tak prostředí pro grafické nadstavby OS Linux ( KDevelop, Eclipse, ). Je možné doinstalovat i další vývojová prostředí, jako například velmi povedené a populární prostředí NetBeans IDE. 17

18 1.7 Ověření znalostí Zde vás čeká několik otázek, které vám pomohou ověřit vaše nově nabyté znalosti. ŘEŠENÍ 1. Jak se obecně liší programy a skripty z hlediska výkonu? 2. Co je třeba provést bezprostředně po úpravě programu před jeho spuštěním? 3. Co musí daný systém obsahovat, aby bylo možné spouštět skripty konkrétního programovacího jazyka? 4. Jaké editory znáte pro terminálové rozhraní OS Linux? 5. Jaká vývojová prostředí znáte pro grafické rozhraní OS Linux? 1. Programy bývají mnohem výkonnější, ale je většinou pracnější je napsat. 2. Program je třeba znovu zkompilovat a nainstalovat pomocí ( configure, make, make instar ). 3. OS musí obsahovat interper daného skriptovacího jazyka. 4. vi, vim, emacs, mcedit, nano,. 5. Eclipse, KDevelop, NetBeans,. 18

19 2 Programování v Linuxu Skripty 2.1 Úvod V této kapitole si nejprve představíme základní nástroje pro práci v OS Linux, ty se nám budou hodit pro pochopení a psaní skriptů v SHELLu. Kromě psaní skriptů v SHELLu, si dále představíme několik typických interpretrových jazyků, které jsou hojně využívány na platformě Linux. Skriptovací jazyky neslouží jen pro tvorbu běžných uživatelských skriptů, ale na těchto jazycích je založena velká řada systémových nástrojů. Tato kapitola by měla čtenáři, který se ještě nesetkal se skriptovacími jazyky, dát přehled o tom jaké základní skriptovací jazyky je možné použít a co je možné pomocí nich realizovat. 19

20 2.2 Nástroje Psaní skriptů především pro SHELLy se velmi často opírá a celou řádku programů, které jsou dostupné ve většině distribucí Linuxu. V následujícím textu se podíváme na nejdůležitější z nich, abyste snadněji porozuměli následujícím příkladům. Pokud byste zde čekali kompletní výpis parametrů daných příkladů a popis jejich použití, musím vás bohužel zklamat a odkázat vás na manuálové stránky daných programů. V řadě případů se jedná o velmi komplexní programy s mnoha desítkami parametrů. Nicméně následující přehled by měl sloužit, jako vodítko pro ty kdo se ještě s OS Linux ve větší míře nesetkali. příkaz / operátor cat tail head more less echo seq wc cp mv mkdir rm ls grep find použití / význam vypíše konec souboru nebo standardního vstupu na standardní výstup vypíše začátek souboru nebo standardního vstupu na standardní výstup skript běží v interpretru jazyka umožní postupný výpis souboru nebo standardního vstupu propracovanější verze programu more vypíše zadaný text na obrazovku vygeneruje posloupnost čísel program spočítá počet řádků, slov kopíruje soubor nebo adresář přesouvá soubor nebo adresář vytvoří adresář odstraní soubor nebo adresář výpis obsahu adresáře velmi pokročilý nástroj pro filtrování textu velmi pokročilý nástroj pro vyhledávání v systému souborů pipe (roura), přesměrování standardního výstupu na standardní výstup < přesměrování obsahu souboru na vstup 20

21 > přesměrování výstupu do souboru zabrání ukončení procesu při ukončení nohup rodičovského procesu (zavření terminálu) tar archivační nástroj 21

22 2.3 SH/BASH Jedná se o asi nejrozšířenější SHELLy na platformě linux. V případě SHELLu BASH se jedná o rozšíření původního SHELLu SH (Bourne SHell). Odtud vyplývá i jméno SHELLu BASH (Bourne Again SHell). Na Linuxové platformě můžete narazit i na další SHELLy, jakými jsou například: csh, ksh, zsh, atd. U řady čtenářů může na mysli vytanout otázka, co je to vlastně ten SHELL zač. SHELL je typicky UNIXové prostředí, které se chová jako interpret příkazového řádku. Nejčastěji se se SHELLem setkáváme jako s interpretem příkazového řádku, nenechte se ale zmást, v tomto případě se jedná o plnohodnotný skriptovací jazyk. Příkazy je možné jak zadávat na příkazovou řádku tak i zapsat do souboru a spouštět danou sadu příkazů jako skript. Samozřejmostí jsou řídící struktury, funkce a další programové konstrukce. Mějme jednoduchý úkol a to vytvoření 10 ti podadresářů v aktuálním adresáři. Vše se dá zvládnout elegantně na jediném řádku. Příkaz může vypadat třeba následovně: for i in `seq 1 10`; do mkdir./adresar_$i; done;ls -l; To samé lze samozřejmě zapsat přehledněji ve formě skriptu. Skript má dále tu výhodu, že je možné ho spouštět opakovaně. #!/bin/bash for in `seq 1 10` do mkdir./adresar_$i; done ls l Skriptům je samozřejmě možné předávat parametry a to tak, že ve skriptu se na ně odkážeme pomocí symbolu $ a pořadovým číslem parametru. Tzn. $1 je první parametr, $2 druhý, atd. Nyní můžeme předávat parametry. Náš skript nyní vytvoří libovolný počet podadresářů. Skript zavoláme jednoduše s požadovaným parametrem. $./mujscript.bash 10 Upravený skript (obsah souboru mujscript.sh ): #!/bin/bash for in `seq 1 $1` do mkdir./adresar_$i 22

23 done ls l Proměnné v SHELLu Proměnné je možné rozdělit na systémové a programové proměnné. Budeme se zde zabývat především definicí programových proměnných. To jsou ty, které budeme používat uvnitř skriptů. Je dobré si uvědomit, že je možné modifikovat obsah jakékoliv proměnné! Vytvoření proměnné moje_proměnná=moje_hodnota Přístup k proměnné echo $moje_proměnná Zrušení proměnné unset moje_proměnná Numerické operace s proměnnou $((moje_proměnná + 4)) Přesměrování standardního výstupu do proměnné moje_proměnná=`cat /etc/passwd grep root` 23

24 2.4 AWK AWK je typickým příkladem jazyka, který vznikl s jasným úmyslem. Tento jazyk / nástroj je zaměřen především na zpracování textových dat. Ať již ve formě textových souborů nebo proudů textových dat. Je dobré si uvědomit, že AWK můžeme používat buď jednoúčelově na příkazové řádce v kombinaci s dalšími programy, anebo můžeme napsat skript, který budeme využívat opakovaně. Pro AWK dokonce existuje překladač do jazyka C, což dává skriptům napsaným v AWK vysoký výkonový potenciál. Chceme získat statistiku nezdařených přihlášení k serveru, pod uživatelem root. Za pomocí skriptu v AWK je řešení více než elegantní. Typický záznam v logu /var/log/secure vypadá následovně: Apr 1 09:57:07 My_Linux sshd[15160]: pam_unix(sshd:auth): authentication \ failure; logname= uid=0 euid=0 tty=ssh ruser= rhost= user=root A nyní skript, který dokáže dané záznamy zpracovat a vyhodnotit. 1 #!/usr/bin/awk -f 2 3 /failure/{ 4 if( $14 == "user=root" ){ 5 split($13,pole,"="); 6 stat[pole[2]]++; 7 } 8 } 8 END{ 9 for(i in stat){ 10 print i, stat[i]; 11 } 12 } Spuštění skriptu a výsledek: skripty]#./root_logins.awk /var/log/secure Skript kontroluje, zda se v daném textu vyskytují řádky, které obsahují slovo failure viz řádek číslo 3. Dále se kontroluje, že na daném řádku je na čtrnácté pozici uvedeno user= root, což identifikuje pokus o přihlášení s uživatelským jménem root. Pokud tomu tak je, pak je extrahována adresa IP vzdálené strany z dat na pozici 13 a je inkrementováno počítadlo výskytů v asociativním poli. V sekci END, která se spouští až na konci skriptu, dojde k vypsání páru IP adresa a počet výskytů na standardní výstup. 24

25 2.5 PERL PERL dnes již určitě patří mezi jazyky, které jsou na ústupu. Ale to nikterak nesnižuje jeho významnost a důležitost. Na PERLu je založené velké množství systémových skriptů a nástrojů. Stejně tak napojení PERLu na repositáře CPAN, je třeba uvažovat jako velmi významnou součást celé filosofie tohoto programovacího jazyka. Hlavní myšlenka spočívá v tom dělat věci, co možná nejjednodušeji to jde a pokud možno velice efektivně. Smysl repositářů CPAN spočívá v tom, že to co už jednou bylo vymyšleno a sepsáno formou skriptů PERLu není třeba vymýšlet a programovat znovu. Za povšimnutí stojí, že například jeden z nejrozšířenějších antispamů, kterým je bezesporu Spamassassin, je z velké části napsán právě v jazyce PERL. Mějme stejný příklad jako v případě skriptovacího jazyka AWK. Výsledný skript může vypadat například následovně. Pro větší přehlednost díky zvýraznění syntaxe je daný skript uveden jako obrázek. Skript root_logins.pl 25

26 Výstup: skripty]#./root_logins.pl /var/log/secure IP: pocet pokusu: 8 IP: pocet pokusu: 1186 IP: pocet pokusu: 52 Ačkoli je PERL typickým zástupcem skriptovacích jazyků tak od verze 5 obsahuje podporu pro objektově orientované programování 26

27 2.6 Python Jedná se o moderní skriptovací jazyk, který je v dnešní době velice oblíbený. Do jisté míry nahrazuje programování v jazyce PERL. Python je dynamický moderní interpretovaný jazyk, který svými vlastnostmi přesahuje hranice pouhého skriptovacího jazyka. Jazyk Python totiž umožňuje vytváření plnohodnotných aplikací včetně grafického rozhraní. Za velkou výhodu jazyka Python bývá označována ta skutečnost, že je velice jednoduchý na naučení a produktivnost při psaní programů je na vysoké úrovni. S tím samozřejmě souvisí dostupnost velké škály knihoven. Mějme stejný příklad jako v případě skriptovacích jazyků AWK a PERL. Výsledný skript může vypadat například následovně. Pro větší přehlednost díky zvýraznění syntaxe je daný skript uveden opět jako obrázek. Skript root_logins.py Výstup: skripty]#./root_logins.py /var/log/secure IP: pocet pokusu: 8 IP: pocet pokusu: 52 IP: pocet pokusu:

28 2.7 Shrnutí Jak jste zajisté poznali, jsou skriptovací jazyky velmi vhodné pro hromadné zpracování dat. Typicky pro data ve formě různých záznamů o životě systému. Vděčí za to tomu, že původní myšlenkou bylo mimo jiné zpracování rozsáhlých finančních dat. Skripty se neomezují ovšem pouze na zpracování textů, ale obsahují i podporu pro interakci s uživatelem. Nejvýznamnější zaměření na interakci s uživatelem najdeme pravděpodobně u skriptovacího jazyka Python, který má v sobě zahrnutou podporu i pro vytváření GUI. SHELL Pokud se zaměříme na skripty v SHELLu typu SH/BASH, zjistíme, že jsou velice vhodné pro jednoduché úlohy a ideálně tam kde se kombinuje celá řádka různých nástrojů dohromady. Tam, kde budeme zpracovávat velké množství dat, začne SHELL ztrácet především na výkonu při práci se souborovým systémem. AWK AWK se výborně hodí pro zpracování textů a skripty AWK velmi dobře slouží i jako podprogramy pro SHELLové skripty. AWK nepodporuje složitější struktury, objekty a řízení programu. Stejně tak oproti ostatním jazykům má mnohem menší možnosti v oblasti práci s proměnnými a datové typy jsou mnohem více limitovány. PERL Vnikl jako rozšíření jazyka AWK proto aby odstranil jeho nedostatky, jedná se o jeden z nejrozšířenějších skriptovacích jazyků a proto je dobré, alespoň částečně tento jazyk ovládat. Jeho smyslem je dělat věci co nejjednodušeji a ve verzi 5 byl jazyk rozšířen i o podporu objektového programování. Dnes je na ústupu a je nahrazován jazykem Python. Pokud je kód napsaný v PERLu delší, bývá většinou značně složitý a nepřehledný. 28

29 Python Jedná se o moderní a oblíbený jazyk. Mluví se o něm jako o velmi snadno naučitelném jazyce. Je to velice komplexní jazyk pokud jde o otázku jeho upotřebitelnosti. Je v něm kladen velký důraz na přehlednost a snadnost údržby kódu. 29

30 2.8 Ověření znalostí Zde vás čeká dalších několik otázek, které vám pomohou ověřit vaše nově nabyté znalosti. ŘEŠENÍ 1. K čemu je v OS Linux dobrý symbol? Jak se jmenuje a jak se požívá? 2. Je třeba skripty před spuštěním kompilovat? 3. Jak zajistíte, aby váš skript, který standardně zapisuje chybová hlášení na standardní chybový výstup, zapsal tyto chybové zprávy do souboru? 4. Jaký skriptovací jazyk použije pro analýzu přístupů k vašemu poštovnímu serveru na platformě Linux? 5. Jaké vývojové prostředí použijete pro psaní skriptů v AWK a jaké v případě Pythonu? 1. Jedná se o rouru (pipe). Slouží k propojení standardního výstupu jednoho programu na standardní vstup druhého programu. Použití je například následující: cat /etc/passwd grep root 2. Ne není, je potřeba mít pouze nainstalovaný potřebný interpret daného jazyka. 3. Je třeba přesměrovat standardní chybový výstup do souboru. Standardní výstup bude i nadále váš terminál. $./muj_script.pl 2>~/muj_soubor_se_zaznamem.txt 4. Použít můžete samozřejmě jakýkoliv skriptovací jazyk, který vám bude vyhovovat, není na závadu mít kód o něco delší, ale zato rychleji napsaný a se stejnou funkcionalitou. 5. Stejně jako v předchozím případě, tato volba je jen na vás. Je dobré si uvědomit, že existuje celá řada vývojových prostředí, která se hodí pro rozličné jazyky buď více anebo méně, ale skript napíšete v kterémkoliv z nich. Nejdůležitější je, aby se vám v daném prostředí dobře pracovalo. 30

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice INOVACE PŘEDMĚTŮ ICT MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Zpracoval: Jaroslav Kotlán srpen 2009s Úvod Modul Programování

Více

IB111 Programování a algoritmizace. Programovací jazyky

IB111 Programování a algoritmizace. Programovací jazyky IB111 Programování a algoritmizace Programovací jazyky Programovací jazyky Programovací jazyk Prostředek pro zápis algoritmů, jež mohou být provedeny na počítači Program Zápis algoritmu v programovacím

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

ČÁST 1. Základy 32bitového programování ve Windows

ČÁST 1. Základy 32bitového programování ve Windows Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013 Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521

Více

Operační systémy. Cvičení 1: Seznámení s prostředím

Operační systémy. Cvičení 1: Seznámení s prostředím Operační systémy Cvičení 1: Seznámení s prostředím 1 Obsah cvičení Organizace cvičení Učebna K311 Unixová učebna K327 (Solárium) Přihlášení do Unixu Spouštění vzorových příkladů vzdáleně (Unix) lokálně

Více

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250

Více

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici Základní příkazy Úvod do Unixu man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp vypíše nápovědu o příkazu cp, manuálová stránka se ukončí stisknutím klávesy

Více

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9) Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon

Více

Unix je víceuživatelský a víceúlohový OS

Unix je víceuživatelský a víceúlohový OS Unix je víceuživatelský a víceúlohový OS Mezi základní úkoly každého OS patří: - Správa hardwareových prostředků - Správa souborového systému - Správa procesů - U víceuživatelských systémů rovněž řízení

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé

Více

Instalace a první spuštění Programu Job Abacus Pro

Instalace a první spuštění Programu Job Abacus Pro Instalace a první spuštění Programu Job Abacus Pro Pro chod programu je nutné mít nainstalované databázové úložiště, které je připraveno v instalačním balíčku GAMP, který si stáhnete z našich webových

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

Téma 8: Konfigurace počítačů se systémem Windows 7 IV Téma 8: Konfigurace počítačů se systémem Windows 7 IV 1 Teoretické znalosti V tomto cvičení budete pracovat se správou vlastností systému, postupně projdete všechny karty tohoto nastavení a vyzkoušíte

Více

Střední odborná škola a Střední odborné učiliště, Hořovice

Střední odborná škola a Střední odborné učiliště, Hořovice Kód DUM : VY_32_INOVACE_LIN.1.02 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 02- Zásady psaní a řetězení příkazů, jednoduchý skript DUM naučí žáky zásady práce s příkazy shellu BASH, zásady psaní

Více

Úvod do programovacího jazyka Python

Úvod do programovacího jazyka Python Úvod do programovacího jazyka Python Co je to Python? Python je objektově-orientovaný programovací jazyk. Tento programovací jazyk je velice výkonný, čitelný a dá se snadno naučit. Jeho použití je velice

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Překladač a jeho struktura

Překladač a jeho struktura Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice

Více

Střední odborná škola a Střední odborné učiliště, Hořovice

Střední odborná škola a Střední odborné učiliště, Hořovice Kód DUM : VY_32_INOVACE_LIN.1.07 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 07- Síťové služby servery a klienty a úvod do souborového serveru DUM naučí žáky spouštět, diagnostikovat a konfigurovat

Více

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především

Více

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian 02 konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian Kernighan v r. 1973 přepsán do jazyka C Psát programy,

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

Modul Konfigurace. 2006... MTJ Service, s.r.o.

Modul Konfigurace. 2006... MTJ Service, s.r.o. Modul Konfigurace Modul Konfigurace Představení Menu konfigurace sdružuje všechny konfigurační příkazy k celému systému Soft-4-Sale. Dále konfigurace kopíruje jednotlivé moduly systému tzn. že existuje

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

plussystem Příručka k instalaci systému

plussystem Příručka k instalaci systému plussystem Příručka k instalaci systému Tato příručka je určena zejména prodejcům systému a případně koncovým uživatelům. Poskytuje návod, jak provést potřebná nastavení komponent. ITFutuRe s.r.o. 26.2.2015

Více

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již

Více

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu. GREP, AWK, SED a jiné filtry v LINUXu Vybrané filtry more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu. head [-n] tail [-n]

Více

PHP tutoriál (základy PHP snadno a rychle)

PHP tutoriál (základy PHP snadno a rychle) PHP tutoriál (základy PHP snadno a rychle) Druhá, vylepšená offline verze. Připravil Štěpán Mátl, http://khamos.wz.cz Chceš se naučit základy PHP? V tom případě si prostuduj tento rychlý průvodce. Nejdříve

Více

HP-2000E UŽIVATELSKÝ MANUÁL

HP-2000E UŽIVATELSKÝ MANUÁL HP-2000E UŽIVATELSKÝ MANUÁL Strana 1 / 7 Úvod AirLive konfigurační utilita pro OS Windows umožňuje uživatelům identifikovat HomePlug zařízení (HP1000E Sérii & HP2000E Sérii) v elektrické síti. Dále zobrazuje

Více

IntraVUE 2.0.3 Co je nového

IntraVUE 2.0.3 Co je nového IntraVUE 2.0.3 Co je nového Michal Tauchman Pantek (CS) s.r.o. Červen 2008 Strana 2/8 Úvod IntraVUE je diagnostický a podpůrný softwarový nástroj pro řešení komunikačních problémů, vizualizaci a dokumentaci

Více

Linux CryptoFS. Petr Novický

Linux CryptoFS. Petr Novický <P.Novicky@sh.cvut.cz> Linux CryptoFS Petr Novický Osnova přednášky Loop-AES Úvod Příprava, kompilace, instalace Použití Diskový oddíl Soubor Závěr Diskový oddíl s použitím semínka Loop-AES (úvod) - šifrovaný

Více

Linux-příkazový řádek

Linux-příkazový řádek Linux-příkazový řádek Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,

Více

Vytvoření bootovatelného média

Vytvoření bootovatelného média Vytvoření bootovatelného média Vytvoření bootovatelného média VY_32_INOVACE_05_01_01 Vytvořeno Červen 2013 Učební materiál slouží vyučujícímu k vysvětlení základních pojmů z oblasti OS GNU/Linux a seznamuje

Více

Uživatelská příručka

Uživatelská příručka www.rexcontrols.cz www.contlab.eu www.pidlab.com Ovladač systému REX pro 1-Wire (modul OwsDrv) Uživatelská příručka REX Controls s.r.o. Verze 2.10.7 (revize 2) Plzeň 16.12.2015 Obsah 1 Ovladač OwsDrv a

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Druhé laboratorní cvičení Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, 612 66 Brno Cvičící: Petr Veigend (iveigend@fit.vutbr.cz) Důležité

Více

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví www.c-media.cz. Nakladatelství a vydavatelství.

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví www.c-media.cz. Nakladatelství a vydavatelství. }else{ { if($b >$ c){ echo $max=$b; // vypí }else{ echo $max=$c; // vypí?> cas se }e B : se{ echo B ; default: ($b>$c){ echo C ; } $max=$b; }else{ $max=$c; PHP nejen pro začátečníky k;?> $c; echo { Martin

Více

Simluátor Trilobota. (projekt do předmětu ROB)

Simluátor Trilobota. (projekt do předmětu ROB) Simluátor Trilobota (projekt do předmětu ROB) Kamil Dudka Jakub Filák xdudka00 xfilak01 BRNO 2008 1 Úvod Jako školní týmový projekt jsme si zvolili simulátor trilobota 1 a jeho prostředí. Simulátor komunikuje

Více

Základní příkazy UNIXu (Linuxu)

Základní příkazy UNIXu (Linuxu) Základní příkazy UNIXu (Linuxu) Ostatní clear smazání obrazovky man nápověda k příkazům (zkus man man) Ovládání příkazu man PgUp, b stránka vzhůru PgDn, mezerník stránka dolů šipky nahoru a dolů pohyb

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0185. Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Registrační číslo projektu: CZ.1.07/1.5.00/34.0185. Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce: STŘEDNÍ ODBORNÁ ŠKOLA A STŘEDNÍ ODBORNÉ UČILIŠTĚ NERATOVICE Školní 664, 277 11 Neratovice, tel.: 315 682 314, IČO: 683 834 95, IZO: 110 450 639 Ředitelství školy: Spojovací 632, 277 11 Neratovice tel.:

Více

Úvod do programování

Úvod do programování Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal

Více

Instrukce pro vzdálené připojení do učebny 39d

Instrukce pro vzdálené připojení do učebny 39d Instrukce pro vzdálené připojení do učebny 39d Každá skupina má k dispozici jedno sdílené připojení, prostřednictvím kterého se může vzdáleně připojit do učebny 39d a pracovat na svých semestrálních projektech

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 UML unifikovaný modelovací jazyk Zkratka tohoto

Více

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Trochu teorie Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces

Více

Informace o poštovním provozu na serveru mail.ktkadan.cz a stručný návod na použití OpenWebMailu

Informace o poštovním provozu na serveru mail.ktkadan.cz a stručný návod na použití OpenWebMailu Informace o poštovním provozu na serveru mail.ktkadan.cz a stručný návod na použití OpenWebMailu 1. Obecné informace Příchozí zprávy se ukládají do vaší schránky na serveru mail.ktkadan.cz. Tuto schránku

Více

ZOS OPAKOVÁNÍ. L. Pešička

ZOS OPAKOVÁNÍ. L. Pešička ZOS OPAKOVÁNÍ L. Pešička ZÁKLADNÍ PRAVIDLO Důležité je znát nejen fakta, ale porozumět jim a zasadit je do kontextu celého OS Př. algoritmus Second Chance využívá bitu Referenced tak, že (fakta) a kdy

Více

MAXScript výukový kurz

MAXScript výukový kurz MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...

Více

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko. Od CGI k FastCGI Ondřej Caletka 5. října 2013 Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko. Ondřej Caletka (CESNET, z.s.p.o.) Od CGI k FastCGI 5. října 2013 1 / 18 Obsah 1 Common

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT

Více

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2 Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2 Sada Fiery Extended Applications Package (FEA) v4.2 obsahuje aplikace Fiery pro provádění úloh souvisejících se serverem

Více

František Hudek. červen ročník

František Hudek. červen ročník VY_32_INOVACE_FH17_WIN Jméno autora výukového materiálu Datum (období), ve kterém byl VM vytvořen Ročník, pro který je VM určen Vzdělávací oblast, obor, okruh, téma Anotace František Hudek červen 2013

Více

Projekt implementace OS Linux do výuky informačních technologií

Projekt implementace OS Linux do výuky informačních technologií Projekt implementace OS Linux do výuky informačních technologií Projekt v rámci SIPVZ Implementace operačního systému Linux do výuky informačních technologií Evidenční číslo: 0722P2006 Poskytoval dotace:

Více

Rozklad na prvočinitele. 3. prosince 2010

Rozklad na prvočinitele. 3. prosince 2010 Rozklad na prvočinitele Ondřej Slavíček 3. prosince 2010 1 Obsah 1 Příručka k programu 3 1.1 funkce main()............................. 3 1.2 funkce hlavnifunkce()........................ 3 1.3 funkce

Více

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V LINUX ADRESÁŘOVÁ STRUKTURA Co to, hrome, je? V této lekci se budeme brouzdat adresáři. KOŘENOVÝ ADRESÁŘ kořen = root tak se mu říká Ve skutečnosti se jmenuje / (lomítko, slash). Vše ostatní je v ubuntu

Více

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS 1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS Pro přístup do administrace služby GTS Bezpečný Internet používejte zákaznický WebCare GTS Czech, který je přístupny přes webové

Více

Cisco IOS TCL skriptování využití SMTP knihovny

Cisco IOS TCL skriptování využití SMTP knihovny Cisco IOS TCL skriptování využití SMTP knihovny Bc. Petr Hanták (han377), Bc. Vít Klimenko (kli307) Abstrakt: Úkolem tohoto projektu bylo zmapovat SMTP knihovnu pro odesílání emailových zpráv z Cisco směrovačů

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

Lekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Lekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská

Více

Úvod do programovacího jazyka Python

Úvod do programovacího jazyka Python Úvod do programovacího jazyka Python Co je to Python? Python je objektově orientovaný programovací jazyk, který se může využít v mnoha oblastech vývoje softwaru. Nabízí významnou podporu k integraci s

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 2+2.1 3/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 2+2.1 3/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 2+2.1 3/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 Programování na PC Při programování na PC musíme

Více

Operační systém osobního počítače

Operační systém osobního počítače Operační systém osobního počítače Studijní materiál pro žáky SŠ Začlenění dle RVP G Vzdělávací obsah: Očekávaný výstup: Digitální technologie ovládá, propojuje a aplikuje dostupné prostředky ICT využívá

Více

Jazz Server osobní nastavení uživatele

Jazz Server osobní nastavení uživatele Jazz Server osobní nastavení uživatele Změněno kým Datum RTC verze Verze dokumentu Popis Jan Boháč 10. 2. 2010 2.0.0 1.0 Vytvoření dokumentu Tento dokument popisuje činnosti, které musí každý uživatel

Více

ADMINISTRACE UNIXU A SÍTÍ - AUS Metodický list č. 1

ADMINISTRACE UNIXU A SÍTÍ - AUS Metodický list č. 1 Metodický list č. 1 Cílem předmětu je seznámit posluchače s problematikou správy systémů typu UNIX a základním nastavením počítačových sítí. Zaměření kurzu je především na získání celkového přehledu a

Více

1.5.1 Číselné soustavy

1.5.1 Číselné soustavy .. Číselné soustavy Předpoklady: základní početní operace Pedagogická poznámka: Tato hodina není součástí klasické gymnaziální sady. Upřímně řečeno nevím proč. Jednak se všichni studenti určitě setkávají

Více

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9 Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce českého

Více

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_01_RAR_P1 Číslo projektu: CZ 1.07/1.5.00/34.1077

Více

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina Program LibTex Uživatelská příručka 1 Obsah Program Textilní Design... 1 Uživatelská příručka... 1 1 Obsah... 2 2 Rejstřík obrázků... 2 3 Technické požadavky... 3 3.1 Hardware... 3 3.1.1 Procesor... 3

Více

Semestrální projekt do předmětu SPS

Semestrální projekt do předmětu SPS Semestrální projekt do předmětu SPS Název projektu: Instalace a provoz protokolu IPv6 v nových verzích MS Windows (XP). Ověření proti routerům Cisco a Linux. Cíl projektu: Autoři: Cílem tohoto projektu

Více

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti.

Více

Seznámení s prostředím dot.net Framework

Seznámení s prostředím dot.net Framework Základy programování v jazyce C# Seznámení s prostředím dot.net Framework PL-Prostředí dot.net - NET Framework Je základním stavebním prvkem, na kterém lze vytvářet software. Jeho součásti a jádro je založené

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického počítače...2 Výběr aplikace na virtualizaci počítače...2

Více

2 Postup při programování, úvod do programovacího jazyka Java

2 Postup při programování, úvod do programovacího jazyka Java 2 Postup při programování, úvod do programovacího jazyka Java Studijní cíl V tomto bloku bude věnována pozornost správnému postupu při programování, budou detailně vysvětleny jednotlivé etapy programování

Více

BRICSCAD V15. Licencování

BRICSCAD V15. Licencování BRICSCAD V15 Licencování Protea spol. s r.o. Makovského 1339/16 236 00 Praha 6 - Řepy tel.: 235 316 232, 235 316 237 fax: 235 316 038 e-mail: obchod@protea.cz web: www.protea.cz Copyright Protea spol.

Více

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal Aplikační vrstva Úvod do Php Ing. Martin Dostal Co to je PHP? php soubory se nekompilují, interpret je spouští přímo bez překladu php běží na serveru php soubor je.txt soubor obsahující php kód: Zkrácený

Více

INSTALACE SW V GNU/LINUXU

INSTALACE SW V GNU/LINUXU INSTALACE SW V GNU/LINUXU Název školy Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště Název DUMu Instalace SW v GNU/Linuxu Autor Martin Šimůnek

Více

SMTPServer - Příručka

SMTPServer - Příručka Obsah Požadavky na systém... 2 Použití... 2 Proč vlastní SMTPServer... 2 Koncepce tohoto SMTPServeru... 2 Instalace SMTPServeru... 2 Odinstalování SMTPServeru... 6 Jak tento SMTPServer pracuje... 7 Stavy

Více

P D S - 5 P. Psychologický diagnostický systém. Instalační manuál. Popis instalace a odinstalace programu Popis instalace USB driverů

P D S - 5 P. Psychologický diagnostický systém. Instalační manuál. Popis instalace a odinstalace programu Popis instalace USB driverů P D S - 5 P Psychologický diagnostický systém Instalační manuál Popis instalace a odinstalace programu Popis instalace USB driverů GETA Centrum s.r.o. 04 / 2012 GETA Centrum s.r.o. Nad Spádem 9/206, 147

Více

schopni vysvětlit, co znamená protokol NFS a k čemu se používá; umět rozpoznat autorské dílo a znát autorská práva;

schopni vysvětlit, co znamená protokol NFS a k čemu se používá; umět rozpoznat autorské dílo a znát autorská práva; POKYNY KE STUDIU 1 Rozšiřující data na Internetu Pracovní materiály Doprovodné obrázky a videa na Internetu Rejstřík pojmů 7 SDÍLENÍ DAT Čas ke studiu: 1,5 hodiny Cíl: Po prostudování této kapitoly budete:

Více

Programátorská příručka

Programátorská příručka KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro

Více

OBJEDNÁVACÍ A INFORMAČNÍ SYSTÉMY

OBJEDNÁVACÍ A INFORMAČNÍ SYSTÉMY OBJEDNÁVACÍ A INFORMAČNÍ SYSTÉMY STAkis-W STAkis-S Již dnes k dispozici všem zákazníkům společnosti Stahlgruber bez výjimky! www.stahlgruber.cz STAkis-W OBJEDNÁVACÍ SYSTÉM BEZ NUTNOSTI INSTALACE Jako výchozí

Více

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop Téma 1: Práce s Desktop 1 Teoretické znalosti V této kapitole zjistíte, co skrývají pojmy jako Desktop, GNOME, KDE, Metacity Window Manager, Nautilus a Konqueror. Desktop neboli pracovní plocha patří mezi

Více

PSK3-11. Instalace software a nastavení sítě. Instalace software

PSK3-11. Instalace software a nastavení sítě. Instalace software PSK3-11 Název školy: Autor: Anotace: Vzdělávací oblast: Předmět: Tematická oblast: Výsledky vzdělávání: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka První kroky v OS Debian

Více

Instalace a první spuštění programu. www.zoner.cz

Instalace a první spuštění programu. www.zoner.cz Instalace a první spuštění programu www.zoner.cz CZ Průvodce instalací Z nabídky instalačního CD vyberte Zoner Photo Studio 13 v požadované jazykové verzi * a klikněte na položku Instalace programu. Pokud

Více

Operační systémy Linux, Mac OS X a jejich srovnání

Operační systémy Linux, Mac OS X a jejich srovnání 5 5.1 Operační systémy Linux, Mac OS X a jejich srovnání Popište výhody programů OpenSource, čím se vyznačují OpenSource programy se vyznačují tím, že se dodávají i se zdrojovým kódem. S tímto kódem může

Více

Téma 4: Práce s CentOS. Instalace softwarových balíčků pomocí yum

Téma 4: Práce s CentOS. Instalace softwarových balíčků pomocí yum Téma 4: Práce s CentOS Instalace softwarových balíčků pomocí yum 1 Teoretické znalosti V této kapitole zjistíte, jak probíhá v prostředí CentOS instalace nových programů, co to jsou balíčky, a jak pracovat

Více

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání

Více

Tvorba kurzu v LMS Moodle

Tvorba kurzu v LMS Moodle Tvorba kurzu v LMS Moodle Před počátkem práce na tvorbě základního kurzu znovu připomínám, že pro vytvoření kurzu musí být profil uživatele nastaven administrátorem systému minimálně na hodnotu tvůrce

Více

Administrace služby - GTS Network Storage

Administrace služby - GTS Network Storage 1. Návod k ovládání programu Cisco VPN Client (IP SECový tunel pro přístup GTS Network Storage) Program Cisco VPN client lze bezplatně stáhnout z webových stránek GTS pod odkazem: Software ke stažení http://www.gts.cz/cs/zakaznicka-podpora/technicka-podpora/gtspremium-net-vpn-client/software-ke-stazeni.shtml

Více

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie, 6.12.2012

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie, 6.12.2012 Vývoj SW pro mobilní zařízení s ios Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie, 6.12.2012 Perspektiva 3 roky zkušeností s vývojem aplikací pro ios 1 rok vývoj pro Android desítky aplikací Obsah

Více

Kerio IMAP Migration Tool

Kerio IMAP Migration Tool Kerio IMAP Migration Tool 2011 Kerio Technologies s.r.o. Všechna práva vyhrazena. Verze: 7.2 1 Úvod Tato příručka slouží jako průvodce migrací uživatelských účtů a dat z libovolného IMAP serveru do úložiště

Více

www.cdc-monitoring.cz

www.cdc-monitoring.cz Monitoring sítí a serverů Dnešní požadavky na výkon ethernetových, wifi nebo jiných sítí, jejich serverů a aktivních prvků jsou velmi striktně nastaveny. Síť musí být koncipována tak, aby byla zaručena

Více

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6 APS mini.ed programová nadstavba pro základní vyhodnocení docházky Příručka uživatele verze 2.2.0.6 APS mini.ed Příručka uživatele Obsah Obsah... 2 Instalace a konfigurace programu... 3 Popis programu...

Více

Operační systémy. Cvičení 3: Programování v C pod Unixem

Operační systémy. Cvičení 3: Programování v C pod Unixem Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené

Více

Programové vybavení počítačů operační systémy

Programové vybavení počítačů operační systémy Programové vybavení počítačů operační systémy Operační systém Základní program, který oživuje hardware a poskytuje prostředí pro ostatní programy Řídí využití procesoru, síťovou komunikaci, tisk, ovládá

Více