Programování v Linuxu. Ondřej Vondrouš
|
|
- Marian Jelínek
- před 8 lety
- Počet zobrazení:
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. #vytvoření pouze části pole. 3 $var=@pole; #ve $var bude uložena velikost daného pole. 4 $var=$pole[2]; #ve $var bude uložena hodnota C. 5 my ($var1,$var2,$var3)=@pole; #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 admin@example.org [mailto:admin@example.org] 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: [root@mylinux 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: [root@mylinux 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
Matematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
VíceC2110 Operační systém UNIX a základy programování
C2110 Operační systém UNIX a základy programování 6. lekce Petr Kulhánek, Jakub Štěpán kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta Masarykova univerzita, Kotlářská
VíceVývoj programů. ÚVOD DO OPERAČNÍCH SYSTÉMŮ
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Vývoj programů. Programovací nástroje. Aplikační programové rozhraní API. Standard POSIX. Vytvoření spustitelného souboru, použití kompilátoru a linkeru. Statické a dynamické
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceINOVACE 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íceInstalace a konfigurace web serveru. WA1 Martin Klíma
Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/
VíceÚvod do Linuxu. SŠSI Tábor 1
Úvod do Linuxu SŠSI Tábor 1 Trocha historie konec 60. let - AT&T vyvíjí MULTICS 1969 - AT&T Bell Labs - začátek OS Unix začátek 70.let - AT&T vývoj OS Unix kolem 1975 - University of California at Berkley
VíceS2. Vytvoření Windows balíku pro vývoj na STM32 architektuře
Projekt BROB - 2014 S2. Vytvoření Windows balíku pro vývoj na STM32 architektuře Autor práce: Jakub Žďárský, UAMT VUT FEKT Vedoucí práce: Ing. František Burian 1 Obsah Obsah... 2 Zadání... 3 Úvod... 3
VícePř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íceVÝ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íceIB111 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ČÁ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íceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
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
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ícePSK3-9. Základy skriptování. Hlavička
PSK3-9 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Základy skriptování v unixovém shellu Vzdělávací oblast: Informační a komunikační technologie
VíceDatabá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íceOperač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íceProgramová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íceVÝ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íceIB111 Úvod do programování skrze Python Přednáška 13
IB111 Úvod do programování skrze Python Přednáška 13 Programovací jazyky Nikola Beneš 14. prosinec 2016 IB111 přednáška 13: programovací jazyky 14. prosinec 2016 1 / 21 Osnova dnešní přednášky Programovací
VíceÚ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ícePSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů
Název školy: Autor: Anotace: Vzdělávací oblast: Předmět: PSK3-7 Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Správa sezení a plánované spouštění procesů Informační a komunikační
VíceUnix 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ícePHP 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ÚVOD DO UNIXU. Metodický list č. 1
ÚVOD DO UNIXU Metodický list č. 1 Účelem tohoto předmětu je naučit studenty pracovat s operačním systémem typu UNIX (orientováno hlavně na příkazovou řádku a shell) a porozumět jeho filosofii. Libovolnou
VíceInstalace 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íceVÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Čí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ícePrvní kroky s METEL IEC IDE
První kroky s poskytuje programování v IEC 61131-3 jazycích, podporuje jak grafickou tak textovou podobu. Umožňuje vytvářet, upravovat a ladit IEC 61131-3 (ST, LD, IL, FBD) programy pro řídicí jednotky
VícePřednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2
Přednáška 2 Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. 1 Systém souborů (FS) I 2 Systém souborů II Logický systém souborů pro běžného uživatele se jeví jako jediná homogenní struktura
VíceMasarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky
VíceSouč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íceAlgoritmizace- úvod. Ing. Tomáš Otáhal
Algoritmizace- úvod Ing. Tomáš táhal Historie 9. století perský matematik a astronom Mohammed Al-Chorezím v latinském přepise příjmení= algoritmus Nejstarší algoritmus Euklides řecký matematik, 4. století
VíceÚvod do Linuxu SŠSI Tábor 1
Úvod do Linuxu 9.10.2012 SŠSI Tábor 1 Historie Linux je obdoba operačního systému UNIX, vytvořená Linusem Torvaldsem. Na dalším vývoji systému i aplikací dnes pracuje řada dobrovolníků na celém světě.
Více1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
VíceMATURITNÍ 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ícePB071 Úvod do jazyka C
PB071 Úvod do jazyka C Překladové systémy Jiri Slaby Fakulta informatiky Masarykova univerzita 2. 5. 2016 Jiri Slaby (Fakulta informatiky, MU) PB071 Překlad 2. 5. 2016 1 / 23 Obsah přednášky 1 Úvod a motivace
Vícekonec š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ícePHP. 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íceVstupní 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íceALGORITMIZACE 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ícemore 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íce11. Přehled prog. jazyků
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
VíceObsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody
Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který
VíceStř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ícePHP 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íceAlgoritmy a algoritmizace
Otázka 21 Algoritmy a algoritmizace Počítačové programy (neboli software) umožňují počítačům, aby přestaly být pouhou stavebnicí elektronických a jiných součástek a staly se pomocníkem v mnoha lidských
VícePř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íceStřední odborná škola a Střední odborné učiliště, Hořovice
Kód DUM : VY_32_INOVACE_LIN.1.03 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 03 BASH rozbory a psaní skriptů DUM naučí psát elementární BASH skripty, ukáže zásady psaní cyklů a přepínačů Ing.
VíceVytvoř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íceFILTRY V GNU/LINUXU ZLÍNSKÝ KRAJ. Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště
FILTRY 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 Filtry v GNU/Linuxu Autor Martin Šimůnek Datum 6. 1.
VíceStř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Ú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íceTé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íceLinux 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ícePSK3-5. Přesměrování vstupu a výstupu. Vstup a výstup
PSK3-5 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Standardní vstup, výstup a jejich přesměrování Vzdělávací oblast: Informační a komunikační
VíceIntraVUE 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íceZOS 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íceLinux-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íceParalelní výpočty na clusteru KMD
Paralelní výpočty na clusteru KMD Jiří Hozman jiri.hozman@tul.cz Technická univerzita v Liberci Fakulta přírodovědně-humanitní a pedagogická Katedra matematiky a didaktiky matematiky Vytvoření a rozvoj
VíceProcesy a vlákna (Processes and Threads)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating
VíceZá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íce1 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íceZákladní příkazy OS UNIX
1 Základní příkazy OS UNIX Výpis obsahu adresáře ls [přepínače] [soubor]! výpis informací o zadaných souborech! pokud zadáme jméno adresáře, je vypsán obsah adresáře (seznam souborů, které jsou v adresáři
VíceMaturitní 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Úvod do Operačních Systémů
Úvod do Operačních Systémů 10. cvičení Uživatelský vstup, zpracování přepínačů, psaní a ladění skriptů, plánování úloh. 1 Obsah Skript pro logování informací o systému, uložení konfigurace, transformaci
VíceÚvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25
Programování v C# Úvodní slovo 1 / 25 Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25 Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci
VíceSystém souborů (file system, FS)
UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je
VícePřednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8
Přednáška 8 Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. 1 Proměnné Jména nových proměnných by neměly kolidovat se jmény předdefinovaných proměnných.
VíceLINUX přesměrování a roury
LINUX přesměrování a roury Trocha teorie: Veškerá komunikace uživatelů a jednotlivých procesů v LINUXu probíhá přes vstupně/výstupní (I/O) kanály. STDIN - standardní vstup (klávesnice) STDOUT - standardní
VíceINFORMAČ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íceModul 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íceTé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íceProjekt 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íceSezná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íceOperač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Úvod, jednoduché příkazy
A7B38UOS Úvod do operačních systémů cvičení LS 2012/13 1. Cvičení Úvod, jednoduché příkazy Přednášející Cvičící Kdo je kdo v UOS doc. Ing. Jaroslav Roztočil, CSc. Ing. Jan Koller, Ph.D. Ing. Radek Havlíček,
VíceWORKWATCH 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ícePROGRAMOVÁNÍ V SHELLU
PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který
VíceLekce 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íceTypy 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íceZÁ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íceINSTALACE 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íceMIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 1.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 06 Ver.1.10 J. Zděnek,
VíceÚvod do Operačních Systémů
Úvod do Operačních Systémů 9. cvičení Proměnné, složené příkazy, funkce, numerické výpočty. 1 Obsah Numerické výpočty v shellu externí příkazy Proměnné práce s proměnnými práce s pozičními parametry Bloky
VíceVlá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íce1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii
VíceZá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Úvod. Programovací paradigmata
.. Úvod. Programovací paradigmata Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Cíl: programování efektivně a bezpečně Programovací techniky
VíceNávod k práci s programem MMPI-2
Návod k práci s programem MMPI-2 Výchozím vstupním heslem je název programu psaný malými písmeny, tedy mmpi-2. Po zadání hesla stiskněte Enter nebo tlačítko Dále. Hlavní obrazovka programu zobrazuje přehled
VíceTé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íceADMINISTRACE 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íceStřední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Visual Studio Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 19,2 Číslo: V/5 Programování
VíceInstalace systému Docházka 3000 na operační systém ReactOS Zdarma dostupné kompatibilní alternativě k systému Windows
Instalace systému Docházka 3000 na operační systém ReactOS Zdarma dostupné kompatibilní alternativě k systému Windows Tento návod popisuje možnost provozovat Docházku 3000 pod zdarma dostupným operačním
VíceLINUX 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ícePostup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy
Postup přechodu na podporované prostředí Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy Obsah Zálohování BankKlienta... 3 Přihlášení do BankKlienta... 3 Kontrola verze
VíceRegistrač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íceObsah. 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íceProgramování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
Více