1. Základní pojmy a informace

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

Download "1. Základní pojmy a informace"

Transkript

1 Operační systémy materiály ke cvičení 2003 Ve cvičeních z Operačních systémů se studenti seznamují se základy práce v systému Unix/Linux (programování v shellu) a se základy komunikace procesů. S danými problémy se studenti seznamují prostřednictvím projektů, které během semestru řeší. Tento dokument má sloužit pro lepší orientaci a základní seznámení s prací v Unixu. 1. Základní pojmy a informace Unix - víceuživatelský (multiuser) a víceúlohový (multitask) OS xterm - emulátor znakového terminálu pro X terminál shell - interpret příkazů (v DOSu COMMAND.COM) - běží ve znakovém terminálu (xterm) - začátek práce - přihlášení: login: xnovak00 Password: /* zadáte heslo */ - po přihlášení můžete zadávat příkazy shellu nebo spouštět programy - příkazový řádek: $ - standardní prompt příkaz odešleme stiskem Return (Enter, CR) příkazy a názvy souborů jsou na rozdíl od DOSu case sensitivní (rozlišují se malá a velká písmena: echo, ECHO, Echo jsou tedy různé soubory (programy) příkazy a systémové programy jsou malými písmeny (ls, cp, copy) funkci příkazů a systémových programů modifikujeme pomocí parametrů (přepínačů, argumentů) (ls -l /) příkaz [-přepínače] [argumenty] příkazový řádek můžeme opravovat klávesou BackSpace (Ctrl-h) historie příkazů: zpět Ctrl-p, dopředu Ctrl-n editace příkazové řádky: úplné smazání: Ctrl-u pohyb doleva: Ctrl-b pohyb doprav: Ctrl-f na konec: Ctrl-e na začátek: Ctrl-a mazání znaku: Ctrl-d - nový xterm: myší nebo xterm & - ukončení shellu: příkaz exit nebo Ctrl-D - více verzí shellu: sh, ksh, bash, csh - manuálové stránky: chceme-li získat informace o některém příkazu, použijeme příkaz man. Např. man ls pohyb pouze dolů - Space předčasné ukončení - q vyhledávání příkazu podle klíčového slova - man -k concat

2 vyhledání výskytu slova v (již otevřené) manuálové stránce - man ls /file v manuálové stránce příkazu ls vyhledá výskyt slova file. Každý další výskyt - n Práce s myší 1. přesun okna, změna velikosti 2. zmenšení okna na ikonu 3. vyvolání menu (pravé tlačítko ve volném prostoru) 4. cut & paste označení textu: a) stisknout levé tlačítko a táhnout b) jedno slovo - dvakrát na něj kliknout c) celý řádek - třikrát kliknout umístění textu - prostřední tlačítko 1.2. Práce na vzdáleném počítači Pro práci na vzdáleném počítači si musíme k danému počítači přihlásit a spustit vzdáleně shell. Pro tuto operaci existuje např. nástroj ssh. ssh merlin.fit.vutbr.cz ssh implicitně předpokládá pro vzdálené přihlášení stejného uživatele, který spustí ssh. Změnu uživatele lze provést takto: ssh -l user merlin.fit.vutbr.cz nebo ssh user@merlin.fit.vutbr.cz Nástroj ssh (oproti nástroji telnet) používá zabezpečenou komunikaci. V současné době bývá na většině strojů služba telnet zakázána a lze použít pouze ssh. Kopírování souborů/adresářů Nástroj scp (používá ssh) - scp co kam Např. scp file user@merlin.fit.vutbr.cz:./data zkopíruje soubor file z lokálního počítače na počítač merlin.fit.vutbr.cz do domovského adresáře do podadresáře data scp -r user@merlin.fit.vutbr.cz:./data. zkopíruje rekurzívně adresář data (tj. celý adresář) z počítače merlin.fit.vutbr.cz na lokální počítač do pracovního adresáře

3 2. Systém souborů v OS Unix Soubory jsou organizovány v stromové hierarchii (/ - kořenový adresář (root), oddělovač adresářů). Př.: /home/vyuka/os1 Jako jméno souboru se chápou všechny znaky mimo /. Speciální znaky shellu \, $, ;,!, &, *,,?, %, #, ~, (, ), ) se nedoporučují. Rozlišujeme relativní a absolutní jméno souboru. Příklad relativního jména souboru (seznam1.txt,../seznam1) a absolutního jména souboru (/dokument/seznamy/seznam1.txt). Pracovní (aktuální) adresář je adresář, ve kterém se nacházíme (pwd). Domovský adresář - každý uživatel má svůj domovský adresář. Po přihlášení do systému se nachází v domovském adresáři. Může si v něm budovat vlastní adresářovou strukturu. Např.: /homes/xn/xnovak Příkazy pwd - výpis jména pracovního adresáře (Shell je nakonfigurován tak, že ukazuje jméno pracovního adresáře v promptu.) cd - změna pracovního adresáře (v DOSu také cd) relativní jména adresářů (./../) absolutní jména adresářů Př.: cd bez parametrů - pracovním adresářem bude domovský cd ~ to samé - znak tilda ~ zastupuje vždy domovský adresář cd - přechod do předchozího (ne nadřazeného!!!) adresáře cd texty přechod do adresáře texty ls - výpis obsahu adresáře (v DOSu dir) užitečné modifikace: ls -l úplný výpis ls -a vypíše i skryté soubory (.profile) Pozn. místo ls -l -a můžeme psát ls -la ls -F označí adresáře (/) a spustitelné soubory (*) ls -R vypíše rekurzívně i obsahy podadresářů mkdir - vytvoření adresáře (v DOSu mkdir, md) rmdir - zrušení prázdného adresáře rm - smazání souborů (v DOSu del, erase) užitečné modifikace: rm -rf texty smaže adresář texty, který nemusí být prázdný (tj. smaže rekurzívně všechny podadresáře a soubory)!!! Vždy si dobře rozmyslete co mažete. V Unixu není žádná možnost obnovit smazané soubory (v DOSu undelete)!!!

4 cp - kopírování soubrů (v DOSu copy) cp zdroj cíl Pokud je jako cíl zadán adresář, vytvoří se v něm kopie zdrojového souboru. Jméno souboru zůstane zachováno. Pokud je jako cíl zadáno jméno již existujícího souboru, bude nenávratně přepsán. mv - přemístění (přejmenování) souboru (v DOSu rename) Vše je stejné jako u cp, ale původní soubor se smaže (opět nenávratně). ln - další jméno souboru (link) (v DOSu nic takového není) Jeden fyzický soubor na disku může mít více jmen. ln původní_jméno nové_jméno Při mazání souboru s více jmény (rm), zůstává soubor fyzicky na disku dokud existuje aspoň jedno jeho jméno. - symbolický link ln -s původní_jméno symbolický_link chová se jako "ukazatel na soubor" => Pokud smažeme soubor pod původním jménem, smaže se fyzicky z disku a symbolický link bude ukazovat do neznámého souboru Atributy souboru Atributy zjistíme příkazem ls -l 1. Přístupová práva (drwxrwxrwx) znak 1: b = blokové zařízení (např. disk, viz. /dev) c = znakové zařízení (např. terminál, viz. /dev) d = adresář l = symbolický link - = obyčejný soubor 1. trojice rwx - práva vlastníka 2. trojice rwx - práva skupiny 3. trojice rwx - práva všech ostatních uživatelů obyčejný soubor adresář právo r - čtení vypisování obsahu w - zápis (mazání) vytváření a mazání souborů x - spustit jako příkaz procházení do podadresářů 2. Počet jmen (linků) obyčejného souboru. Počet podadresářů + 2 (./../) u adresáře. 3. Vlastník 4. Skupina do níž vlastník patří

5 5. Velikost souboru adresáře: 96, Datum poslední modifikace 7. Jméno souboru 2.3. Příkazy pro změnu práv chown - změna vlastníka chown nový_vlastník jméno_souboru chmod - změna přístupových práv 1. chmod [ugoa]{ + - }[rwx] file chmod 644 file -rw-r--r-- Př.: chmod a+rwx file = chmod 777 file 3. Práce v shellu Shell je interpret příkazů, lze na něj pohlížet jako na programovací jazyk (if - then, for, case, proměnné etc.) 3.1. Základní příkazy (pro demonstraci vlastností shellu) cat - výpis obsahu souboru cat file1 výpis obsahu souboru file1 cat file1 file2 file3 výpis obsahu souborů cut - výběr určitých polí (sloupců) souboru cut -f2 file1 vypiš druhý sloupec implicitním oddělovačem je tab cut -f1,3 -d" " file1 vypiš první a třetí sloupec oddělovačem je mezera head - zobrazení prvních několika řádků souboru head -n 2 file1 první dva řádky souboru file1 tail - zobrazení několika posledních řádků souboru tail -n 2 file1 poslední dva řádky souboru file1 tail -n +2 file1 od druhého řádku do konce souboru more - výpis po obrazovkách more file1 sort - setřídění souboru sort file1 grep - hledání řetězce v souboru grep xnovak00 seznam vypíše řádky souboru seznam, které obsahují řetězec xnovak00 wc - (word count) počítá slabiky, slova nebo řádky souboru wc -l file1 spočítá řádky souboru file1 wc file1 spočítá všechno

6 Všechny tyto příkazy mohou fungovat i jako filtry. Tzn., že implicitně čtou ze standardního vstupu a zapisují na standardní výstup a lze je tedy řadit do kolon pomocí roury (viz dále) Vstup, výstup, přesměrování Každý program otevírá aspoň 3 soubory: stdin (0), stdout (1) a stderr (2). Tyto soubory představují standardní vstup (klávesnice), standardní výstup a standardní chybový výstup (terminál). Tyto soubory lze přesměrovat na jiné soubory (např. std. výstup procesu na std. vstup jiného procesu, soubor na std. vstup procesu apod.) Přesměrování: stdin < cat file1 = cat <file1 = <file1 cat stdout >, >> cat <file1 >file2 = <file1 >file2 cat stderr 2>, 2>> rm neex_file 2>err Přklady: 1) cat file1 >file2 2>error Pokud file1 existuje, vypíše se do file2, pokud neexistuje, chybová hláška se zapíše do souboru error. 2) cat file1 >file2 2>&1 Standardní i chybový výstup do sterného souboru file2. Here document - umožňuje zapsat standardní vstup pro příkaz na příkazovou řádku (využívá se hlavně v dávkách) Př.: $ sort <<END > tento > text > bude > seřazen > podle > abecedy > END Vytvoření prázdného souboru: >file Zahození výstupu: program > /dev/null 3.3. Roury (kolony, pipe) Příklad: Zjistíme, zda je přihlášen uživatel xnovak00. 1) Bez použití roury (dočasný soubor). who >tmp grep xnovak00 tmp rm tmp

7 2) Pomocí roury. who grep xnovak00 tee - odbočka z kolony who wc -l kolik lidí je přihlášených who cut -f1 -d" " tee WHO wc -l kolik lidí je přihlášených a navíc bude jejich seznam v souboru WHO 3.4. Proměnné Promenné můžeme rozdělit na speciální a uživatelské, lokální a globální. Lokální proměnné se nepředávají do podřízených shellů, k docílení tohoto stavu je musíte exportovat (viz tabulka příkazů). Speciální (systémové): HOME absolutní cesta domovského adresáře PATH seznam cest, které se prohledávájí při hledání umístění programu DISPLAY adresa a číslo displeje pro směrování požadavků na X-server PS1 formát promptu shellu... a další... Příkazy pro práci s proměnnými env výpis speciálních proměnných set Výpis všech proměnných. unset Zruší proměnnou (nebude už definována) export exportuje proměnnou (stane se globální) a předává se do subshellů např. Export DISPLAY Proměnné definované uživatelem (měly by být malými psímeny). Nemají typ, zachází s nimi podle potřeby. a=123 Přiřazení hodnoty proměnné a (bez mezer). b=$a Přiřazení obsahu proměnné a do proměnné b (bez mezer). echo $b Zjištění obsahu proměnné b. Přiřazení výstupu programu do proměnné. c=`pwd`!!! zpětné apostrofy echo $c Proměnné se samy od sebe nepředávají do subshellů, musí se použít příkaz export. $ export DISPLAY

8 Další přístupy a manipulace s proměnnými: $proměnná, ${proměnná} obsah proměnné ${#proměnná} délka obsahu proměnné ${proměnná:-náhrada} Pokud proměnná není definována, nebo obsahuje prázdný řetězec, tak se vypíše náhrada. Jinak se vypíše obsah proměnné. ${proměnná:=náhrada} Pokud proměnná není definována, nebo obsahuje prázdný řetězec, tak se do ní přiřadí náhrada a vypíše se. Jinak se vypíše obsah proměnné. ${proměnná:+náhrada} Pokud proměnná je definována, tak se vypíše náhrada. Jinak se neděje nic. ${proměnná#reg.výraz} ${proměnná##reg.výraz} Pokud začátek obsahu proměnné odpovídá regulárnímu výrazu, tak se vypíše bez tohoto začátku, jinak se vypíše celý obsah proměnné. # je pro nejmenší začátek odpvídající reg. výrazu, ## je pro největší. ${proměnná%reg.výraz} ${proměnná%%reg.výraz} Jako #, ##, ale na konec. typeset - nastavuje vlastnosti proměnných Př.: $ typeset -l a # proměnná bude převádět velká písmena na malá $ typeset +l a # zruší předchozí vlastnost $ typeset # vypíše vlastnosti všech proměnných vlastnosti: -L[n] - omezení velikosti obsahu na n znaků zleva -R[n] - omezení velikosti obsahu na n znaků zprava -Z[n] - omezení velikosti obsahu na n znaků zprava, pokud je prvním znakem číslice, tak se zleva doplní nuly tak, aby celková délka obsahu byla n -i - s proměnnou se zachází jako s číslem, pokud se do ní přiřadí nějaký text, převede se na 0 -l - převod na malá písmena -r proměnná bude read only (konstanta) -u - převod na velká písmena -x - proměnná se bude exportovat do subshellů

9 3.5. Procesy ps - výpis procesů $ ps -u xnovak00 vypiš všechny procesy uživatele xnovak00 kill - zaslání signálu procesu $ kill -s KILL = $ kill zabije proces $ man 5 signal seznam signálů Práce na pozadí Přkazy, které trvají dlouho, nebo grafické aplikace spouštěné z příkazové řádky spouštíme na pozadí. Shell pak bude opět schopen přijímat příkazy. Výstupy programu spuštěného na pozadí je vhodné přesměrovat do souborů, aby se nevypisovaly na terminál. Znak & se aplikuje na celou rouru, protože roura se považuje za nový příkaz. Příklad: find / -name bin -print >vysl 2>/dev/null & Vyhledá všechny soubory (adresáře) bin v systému souborů. Výsledek hledání zapíše do souboru vysl a chybová hlášení se zahodí (/dev/null). Proces se spustí na pozadí (&), takže je shell schopen přijímat další příkazy. Na obrazovku se vypíše číslo jobu a PID posledního procesu v přpadné rouře. [1] Job na popředí se dá pozastavit Ctrl-Z. jobs - výpis jobů bg - přenese pozastavený job na pozadí bg %1 fg - přenese pozastavený job na popředí fg %1 kill - ukončí job kill %1 Spouštění více příkazů z jedné příkazové řádky ; - odděluje příkazy stejně jako Enter $ date; ls; who & - spustí všechny příkazy paralelně na pozadí $ xterm & xterm & xterm & && - druhý přkaz se spustí, pokud první příkaz skončil úspěšně - druhý přkaz se spustí, pokud první příkaz skončil neúspěšně $ gcc -o myprog myprog.c && myprog Pokud skončí překlad programu myprog.c úspěšně, je spuštěn. $ gcc -o myprog myprog.c vi myprog.c Pokud skončí neúspěšně, spusť editor. Přkazy se mohou sdružovat pomocí závorek. Př.: $ date; ls >file1 $ (date; ls) >file1 Př.: $ (sleep 5; date) & date

10 4. Progamování v shellu 4.1. Dávky (scénáře, skripty) # Toto je poznámka ve skriptu. Znak "#" musí být na začátku řádku, nebo bla bla bla # musí být oddělený od příkazů mezerou. Spouštění dávky: $ sh dávka # spustí se kopie shellu $. dávka # spouští tento shell; vhodné pro nastavování proměnných $ dávka # musí být nastaveno právo x #! /bin/ksh standardní začátek skriptu. Určujeme tím, který shell má dávku interpretovat v případě, že bude spuštěna jako příkaz (tj. nebude spuštěna jako parametr shellu). Ladění scénářů: $ sh -x dávka $ sh -xv dávka 4.2. Zneplatnění zvláštního významu metaznaků '...' zneplatní vše "..." interpretuje $, `...`, \ \ zneplatňuje následující znak Př.: $ echo $HOME * \\a `pwd` $ echo "$HOME * \\a `pwd`" $ echo '$HOME * \\a `pwd`' 4.3. Argumenty skriptu Název programu: $0 Poziční parametry: $1, $2, $3,..., $9 Všechny arumenty: $* Počet argumentů: $# shift - posuv argumentů (použijeme, pokud je argumentů víc než 9) 4.4. Testování podmínek Každý program produkuje při svém ukončení a návratu do shellu exit status. $ echo $? zjistí exit status posledního příkazu Pokud je exit status 0, skončil program úspěšně, jinak došlo k nějaké chybě. Podmínka v shellu je pravdivá, pokud je 0.

11 Příkaz test - dvě formy zápisu 1) test -přepínač argument 2) [ -přepínač argument ] kolem závorek musí být na obou stranách mezery Příklady použití: test $a, [ $a ] je proměnná a definovaná? test -f file1, [ -f file1 ] existuje obyčejný soubor file1? test -r file1, [ -r file1 ] existuje soubor file1 a je čitelný? podobně -w, -x test -d file1, [ -d file1 ] existuje soubor file1 a je to adresář? test -s file1, [ -s file1 ] existuje soubor file1 a je větší než 0 Byte? test -h file1, [ -h file1 ] existuje soubor file1 a je to symbolický link? test -n str1, [ -n str1 ] je délka řetězce str1 větš než 0? test str1 = str2, [ str1 = str2 ] jsou řetězce str1 a str2 stejné?!=... různé test n1 -eq n2, [ n1 -eq n2 ] jsou čísla n1 a n2 shodná? další možnosti: -ne (různá), -gt (větší než), -ge (větší nebo rovno),... viz. man test!!! Pozor na rozdíl mezi porovnáváním řetězců (=) a čísel (-eq). Na podmínky se mohou aplikovat logické operátory AND (-a) a OR (-o). Př.: [ -f file1 -a $prom = "ahoj" ] 4.5. Programové konstrukce Podmíněný příkaz if if podmínka1 Př. $ if [ ""!= `who grep xnovak00` ] then příkaz1 > then echo xnovak00 je přihlášen elif podmínka2 > else echo xnovak00 není přihlášen then příkaz2 > fi... else příkazn fi Př. Test exit statusu programu (rm). $ if rm file1 2>/dev/null > then echo file1 byl smazán > else echo soubor file1 neexistuje > fi

12 Cyklus while a until while podmínka do příkazy done until podmínka do příkazy done Výběr varianty case slovo in vzor1) příkaz1;; vzor2) příkaz2;;... esac Ve vzorech lze použít regulární vyrazy (*,?, [a-z], [1,2,3]). Cyklus for for proměnná in seznam $ for i in do příkazy > do echo $i done > done Př.: Všem uživatelům systému zašli zprávu # zbytečně složité - pouze pro ilustraci for #stačilo by: mail `cat /etc/passwd cut -d: -f1` <message $ for i in `cat /etc/passwd cut -d: -f1` > do > mail $i <message > done Poznámka exit - předčasné ukončení scénáře read - načtení hodnoty z klávesnice do proměnné Jestliže se interpretuje výstup ze zpětných apostrofů (for i in `ls`), považuje se znak konec řádku za oddělovač slov.

13 Příklad na for, if a case Maže soubory v aktuálním adresáři. Před každým smazáním se pro jistotu zeptá. #! /bin/ksh for i in * # for i in `ls` přes všechny soubory do if [ -f $i ] # je-li to obyčejný soubor done then fi echo Smazat $i? read tak_co case $tak_co in y Y a A yes YES ano ANO) rm $i;; n N no NO ne NE) echo nemažu $i;; q Q quit QUIT) echo konec; exit;; esac Pro předčasné opuštění těla cyklu lze použít příkazy break a continue (stejně jako v C.) Další příkazy od - výpis obsahu (binárnho souboru) which - zjistí adresář, ve kterém se nachází spustitelný soubor file - zjistí typ souboru du - vypíše velikost adresáře df - zjistí volné místo na discích cmp, diff - porovnávání souborů 5. Filtry, regulární výrazy Nyní si popíšeme regulární výrazy, jejich vlastnosti a filtry, které stojí nad těmito výrazy (používají je k specifikaci řádků či podřetězců, se kterými se má manipulovat). Budeme se zabývat filtry sed, grep, awk a částečně perl Regulární výrazy Regulární výraz je univerzální pomocník při práci s textem. Používá jej celá řada programů v Unixu. Umožňují prohledávat soubory (grep, egrep), editovat je (sed, vi), analyzovat a vypočítávát zajímavé údaje (awk) či nabízejí plnohodnotný programovací jazyk, kde si můžete dělat, co vás napadne (Perl, Tk). Nejjednodušším regulárním výrazem je obyčejné písmeno - třeba r. Když se v textu hledá řetězec, který by tomuto regulárnímu výrazu vyhověl, hledá se jednoduše písmeno "r". Implicitně se (jak bývá v Unixu zvykem) rozlišují malá a velká písmena. Ve většině nástrojů můžete tuto vlastnost vypnout. Regulární výrazy lze řetězit. Použijete-li regulární výraz root, představuje vlastně zřetězení čtyř elementárních jednopísmenných regulárních výrazů. Výsledkem je chování, které byste očekávali - v textu se bude hledat slovo "root".

14 Základní prvky tvořící regulární výraz si uvedeme v následující tabulce: výraz vyhovuje ===== ======== znak odpovídající znak. libovolný znak, kromě znaku konec řádku [znaky] jeden z uvedených znaků [a-za-z] jeden ze znaků a-z nebo A-Z [abc] jeden ze znaků a b c [^znaky] libovolný znak kromě uvedených znaky "^" a "-" mají speciální význam jen v daném kontextu [.^az-] jeden ze znaků "." "^" "a" "z" "-" \x vyřadí/zapne speciální význam znaku x * opakování výrazu (nepovinné) A* libovolné opakování znaku "A", nebo se vůbec nevyskytuje [a-z]* libovolné opakování znaku jednoho ze znaků "a-z", nebo se vůbec nevyskytuje Srovnávání výrazů Pojmem srovnávání (matching) se označuje proces, při kterém program hledá, zda předložený řetězec odpovídá regulárnímu výrazu. Zároveň stanoví, které části řetězce odpovídají jednotlivým částem regulárního výrazu. Princip srovnávání je následující: začíná se od začátku řetězce. Každému prvku reg. Výrazu se snaží přiřadit co nejdelší posloupnost znaků z řetězce a pak postupuje dále srovnáváním dalších částí reg. výrazu. Pokud něco nevyjde, vrací se zpět a zkusí přiřazený podřetězec o jeden znak zkrátit. Pokud se nepodaří najít shodu ani po zkrácení na minimum, posune se na další znak zkoumaného řetězce a pokračuje znovu ve vyhledávání. Uvažujme následující 2 reg. výrazy nad řetězcem <a href="odkaz">text</a>: regulárnímu výrazu <.*> bude přiřazen celý řetězec <a href= odkaz >text</a> <.* > regulárnímu výrazu <[^>]*> bude přiřazen podřetězec <a href= odkaz > <a href= odkaz >text</a> < [^>]* > 5.2. Filtry sed, grep Proudový editor sed spouštění: a) sed 'seznam_příkazů' soubory b) sed 'seznam_příkazů' # čte stdin c) sed -f cmd_file # příkazy čte ze souboru cmd_file

15 Parametry sedu: -i nerozlišovat malá a velká písmena -w vybírat jen řádky, na nichž vzoru vyhovuje celé slovo -v negovat výsledek (vypisovat řádky, které nevyhovují vzoru) Příkazy odpovídají příkazům editoru ed. - bez uvedení rozsahu platí na každý řádek - nelze použít relativní definice rozsahu (-3,+5) - jeden průchod - vzory:., x*,.*, [abc], [^abc], [a-z], [^a-z], ^, $ - rozsah lze zadat dvojicí vzorů: $... sed '/BEGIN/,/^$/s/text1/text2/g'... # s - substituce nahradí všechny výskyty text1 za text2 na řádcích od prvního výskytu slova BEGIN do prvního následujícího prázdného řádku (^$) - implicitní vlastností sedu je výpis řádku, takže $ sed 10p soubor.txt výpíše celý soubor soubor.txt a 10. řádek tam bude dvakrát. - tuto vlastnost lze potlačit přepínačem -n: $ sed -n 10p soubor.txt vypíše jenom 10. řádek. - negace rozsahu - příkaz se provede pouze na řádcích, které neodpovídají vzoru: $ sed '10,20!s/ahoj/čau/g' soubor.txt provede substituce na všech řádcích vyjma od 10. do 20. další příkazy: q - ukončí sed: $ sed 10q soubor.txt vypíše prvních 10 řádků a pak skončí. y - náhrady jednotlivých znaků $ sed 'y/abcd/abcd/' soubor.txt nahradí písmena a,b,c,d odpovídajícími velkými písmeny. d - vymaže všechny řádky mezi řádky vyhovující intervalu daném reg. výrazy $ sed '/vzor1/,/vzor2/d' soubor.txt Příkaz (nástroj) tr - převod znaků - není vázaný tak jako sed na jednotlivé řádky, tj. nepředpokládá textový soubor. Mohou se nahrazovat (mazat) libovolné znaky. - pracuje jako čístý filtr => neumí si otevřít soubor. Př.: $ tr [a-z] [A-Z] <soubor.txt převede malá písmena v souboru soubor.txt na velká $ tr -d <soubor.txt smaže všechny číslice

16 Filtry grep, fgrep, egrep spouštění: a) grep 'vzor' soubory b) grep 'vzor' # čte stdin c) grep -f cmd_file # vzor čte ze souboru cmd_file - vybírá řádky, na kterých se vyskutují řetězce odpovídající vzoru - přepínač -y - ignoruje velká/malá - vzory grepu (jako sed):., x*,.*, [abc], [^abc], [a-z], [^a-z], ^, $ fgrep - stejně jako grep, navíc lze hledat více vzorů současně. V tomto případě ale musí být vzory zapsány v souboru cmd_file - každý vzor na samostatném řádku. egrep - regulární výrazy mohou navíc obsahovat: x+ ve významu xx* x? ve významu žádný nebo jeden výskyt znaku x () sdužování reg. výrazů alternativy (jako fgrep, ale nemusí to být v souboru - egrep je ale v tomto případé výrazně pomalejší 5.3. Programovatelný filtr awk Spuštění: awk 'program' soubory aplikuje program na soubory awk 'program' aplikuje program na datový tok (filtr) awk -f cmd_file program je uložen v souboru cmd_file Tvar programu: vzor { akce } vzor { akce }... Aplikuje akci na řádky, na kterých se vyskytuje řetězec odpovídající vzoru. Vzory odpovídají vzorům sedu (/reg_výr/; /reg_výr1/,/reg_výr2/), regulární výrazy odpovídají regulárním výrazům egrepu (.,.*, a*, a+, a?, [abc], [^abc], [a-z], [^a-z], (bez mezer), ^, $). Navíc lze jednotlivé vzory kombinovat pomocí logických operátorátorů!, &&, a určovat prioritu pomocí závorek (). Př.:!(/ahoj/ /čau/) { akce } # akci proveď na řádcích, kde se nevyskytuje ani slovo ahoj, ani slovo čau Vzory lze též pomocí znku ~ aplikovat pouze na jednotlivá pole. Př.: $2~/ahoj/ { akce } # provede akci na těch řadcích, které maj ve druhém poli obsažen řetězech ahoj

17 Negace:! na rozdíl od sedu je před vzorem!($2~/ahoj/) nebo $2!~/ahoj/ Pokud se neuvede vzor, je akce aplikována na všechny řádky. Speciální vzory: BEGIN, END (bez lomítek) - akce se provede před zpracováním prvního řádku, resp. posledního řádu. Místo vzoru lze použít i jiné testy, například s proměnnými: Př.: NR >= 3 && NR <= 6 { print $0 } # vytiskne třetí až šestý řádek awk rozděluje text na záznamy a záznamy na pole. Implicitním záznamem je jeden řádek, implicitním polem je slovo (posloupnost znaků mezi mezerami a tabelátory). Celý záznam je uložen v $0, jednotlivá pole v $1, $2,..., $10,... Nejčastější akcí je tisk: { print $0 } # vytiskne celý záznam (řádek) { print $3 $1 } # vytiskne třetí a první pole (slovo) { print $3, $1 } # vytiskne třetí a první pole (slovo); navíc k oddělování polí použije OFS (viz. dále) { print $3 "*" $1 } # vytiskne třetí a první pole (slovo) oddělené * Pokud funkce print nestačí, lze použít funkci printf známou z C. { printf("%s*%s\n", $3, $1) } # viz. předchozí příklad Zápis argumentů fukce printf je zde ale trochu volnější než v C, např.: { printf $3"*"$1"\n" } Lze použít speciální znaky (i ve funkci print) \a - bell, \b - BS, \n LF, \r - CR, \t - TAB, \nnn - znak zadaný oktalově. Pokud se neuvede akce, vypisuje se implicitně celý záznam (řádek). Vzor však musí být v tomto případě zadán. Proměnné: 1) vestavěné např.: FS - vstupní oddělovač polí (implicitně "[ \t]+") FS=":" FS="\t+" OFS - výstupní oddělovač polí (implicitně " ") RS - vstupní oddělovač záznamů (implicitně "\n") ORS - výstupní oddělovač záznamů (implicitně "\n") NF - počet polí právě zpracovávaného záznamu NR - číslo právě zpracovávaného záznamu FILENAME - jméno zpracovávaného souboru OFMT - výstupní formát čísel (implicitně "%.6g")

18 2) uživatelské přiřazení: a=12.89, a=$1, a=length($2), a="ahoj" Proměnné nemají typ, zachází se s nimi podle potřeby. Numerické operace jsou jako v C: přiřazení: =, +=, -=, /=, %=, *=, ^= relace: ==,!=, <, >, <=, >= aritmetické operace: +, -, *, /, %, ^(mocnina), ++, -- programové konstrukce - jako v C: if,?:, while, do, for, break, continue!!!podmínky zase jako v C!!! (0 - false,!=0 - true) pole: for (i=0; i<10; i++) a[i] = 2*i Př.: tisk záznamů (řádků) v obráceném pořadí { line[nr] = $0 } END { for(i=nr; i>0; i--) print line[i] } k indexování pole lze použít libovolný řetězec: name[karel] = "novák" Př.: Jan 200 Karel 100 Jan chceme součet pro každé jméno: { sum[$1] += $2 } END { for (name in sum) print name, sum[name] } (jiný for - přes všechny indexy pole) exit - skočí na vzor END Funkce: řetězcové: length(string) # délka řetězce substr(string, pos, len) # vrátí podřetězec délky len od pozice pos index(string, substr) # vrátí pozici substr v řetězci string match(string, reg_expr) # hledá rag. výraz v řetězci a vrátí jeho pozici split(string, a, fs) # rozdělí řetězec string na jednotlivá pole, která uloží do a[1], a[2],... Oddělovačem polí je regulární výraz fs sub(for, repl, in) # nahradí první výskyt retězce vyhovujícímu regulárnímu výrazu for z řetězec repl v retězci in gsub(for, repl, in) #... všechny výskyty... aritmetické: sin, cos, exp, log, sqrt

19 6. Komunikace procesů 6.1. Identifikátory procesů Každý proces má unikátní nezáporné číslo -- identifikátor. Protože je tento identifikátor unikátní, často se využívá pro zaručení unikátnosti např. dočasných souborů. Kromě běžných procesů existují také procesy speciální. Proces 0 je např. plánovač, známý též jako swapper. S tímto procesem nekoresponduje žádný program na disku. Proces 1 je init -- tento proces je inicializován při startovací (bootstrap) proceduře. Tomuto procesu odpovídal v dřívějších verzích unixu soubor /etc/init, v novějších verzích /sbin/init. Procesy, které se spouštějí při inicializaci unixu, mají odpovídající soubory v /etc/rc* a jsou rozděleny podle jednotlivých stavů systému. Proces init nikdy neumírá. Je to normální proces (není uvnitř jádra jako např. swapper). Na některých implementacích unixu je přítomen ještě pagedaemon, který zajišťuje správu virtuální paměti. Tento proces číslo 2 je opět v jádře, jako swapper. Pro identifikátor procesu (PID) existuje početná skupina funkcí, např.: #include <sys/types.h> #include <unistd.h> pid_t getpid (void); Vrací: ID volajícího procesu pid_t getppid (void); Vrací: ID rodiče volajícího procesu 6.2. Funkce fork Jedinou cestou, jak v unixu vytvořit nový proces, je použití funkce fork. #include <sys/types.h> #include <unistd.h> pid_t fork (void); Vrací: v potomkovi 0, v rodiči PID potomka, -1 při chybě Nový proces vyprodukovaný fork se nazývá potomek (child). Funkce se volá jednou, ale vrací dvě hodnoty. Pomocí návratové hodnoty program určí svou totožnost. Vrátí-li fork -1, došlo k chybě -- pravděpodobně došlo k překročení počtu souběžně běžících procesů. Vrátí-li 0, je zřejmé, že kód, testující tuto hodnotu, je potomkem. Rodičovskému (parent) procesu vrátí fork identifikační číslo potomka. Rodič musí disponovat PID potomků pro synchronizaci činnosti. Rodič i potomek provádějí stejný kód po volání funkce fork. Je čistě věcí programu, jak rozdvojení procesů ošetří Funkce wait a waitpid V případě, že proces skončí normálně, zasílá jádro rodiči procesu signál SIGCHLD. Protože je zánik potomka asynchronní událostí, je i zaslání signálu asynchronní. Implicitní reakcí je ignorování tohoto signálu. Proces ale může na signál čekat pomocí funkce wait. Zpracování programu po volání wait může mít tři stavy: blokován -- potomci stále běží okamžitý návrat z wait -- potomek doběhl okamžitý návrat z wait -- žádný potomek neexistuje Volání wait má následující syntaxi:

20 #include <sys/types.h> #include <sys/wait.h> pid_t wait (int *statloc); pid_t waitpid (pid_t pid, int *statloc, int options); Hlavní rozdíly mezi funkcemi: Obě vrací: PID když OK, 0, -1 při chybě wait blokuje volajícího, dokud potomek nedoběhne, zatímco waitpid poskytuje nástroje zabraňující blokování waitpid nečeká na dokončení jen prvního potomka -- pomocí podmínek lze řídit, na který proces má čekat Argument statloc určuje status ukončení potomka. Pokud nás tento nezajímá, lze nastavit na NULL. pid u funkce waitpid může nabývat těchto hodnot: -1. Čeká na dokončení libovolného potomka. V tomto stavu je ekvivalentní funkci wait >0. Čeká na dokončení potomka s PID daným pid. ==0. Čeká na dokončení libovolného potomka, jehož skupinové ID je shodné s ID skupiny volajícího procesu. <-1. Čeká na dokončení potomka, jehož skupinové ID je shodné s absolutní hodnotou pid Signály Signály jsou vlastně softwarová přerušení. Každý netriviální program má co do činění se signály. Každý signál má své jméno. Jméno každého signálu začíná na SIG. Jména těchto signálů jsou definována v souboru <signal.h>. Žádný z těchto signálů nemá hodnotu 0, POSIX.1 totiž definuje signál null. Pro více informací viz man signal a man 7 signal. Signály může generovat terminál po stisku speciálních kláves (přerušení např. pomocí Control-C generuje signál SIGINT). Významy kláves, jako vysílačů signálů, jdou přemapovat. Hardwarová přerušení generují signály (dělení nulou,...). Funkce kill(2) Příkaz kill(1) Uživatelské programy mohou generovat signály (např. SIGPIPE, SIGALRM). Signály jsou klasickou asynchronní záležitostí. Reakce na ně mohou být následující: Ignorování signálu. Dva signály: SIGKILL a SIGSTOP nejdou ignorovat. Zachycení signálu a zpracování vlastní funkcí. Ponechání standardního zpracování signálu. Nejjednodušším prostředníkem k signálům je funkce signal. #include <signal.h> void (*signal (int signo, void (*func)(int)))(int); Vrací: předchozí obsluhu signálu

21 Za argument signo lze dosadit název signálu. Argument func může nabývat následujících hodnot: Příklad: Konstantu SIG_IGN -- ignorování signálu. Konstantu SIG_DFL -- nastavení standardní obsluhy. Adresu funkce pro zpracování signálu. #include <signal.h> static void sig_usr(int); /* one handler for both signals */ int main(void) { if (signal(sigusr1, sig_usr) == SIG_ERR) err_sys("can't catch SIGUSR1"); if (signal(sigusr2, sig_usr) == SIG_ERR) err_sys("can't catch SIGUSR2"); } for ( ; ; ) pause(); static void sig_usr(int signo) /* argument is signal number */ { if (signo == SIGUSR1) printf("received SIGUSR1\n"); else if (signo == SIGUSR2) printf("received SIGUSR2\n"); else err_dump("received signal %d\n", signo); return; } Pro práci se signály lze využít následující příkazi (pro bližší informace viz manuálové stránky): kill raise alarm pause

22 6.5. Roury Roury (pipes) jsou nejstarším komunikačním prostředkem v unixu. Jsou podporovány všemi typy unixů za těchto omezujících podmínek: Jedná se o poloviční duplex. Data putují jen jedním směrem. Mohou být použity pouze v případě, že procesy mají společného předchůdce. Roura se vytvoří vyvoláním funkce pipe. #include <unistd.h> int pipe (int filedes[2]); Vrací: 0 když OK, -1 při chybě Funkce vrátí dva deskriptory pomocí argumentu filedes. Deskriptor filedes[0] je otevřen pro čtení a filedes[1] pro zápis. Když je jeden konec roury zavřený, děje se následující: Jestliže čteme z roury, jejíž vstup byl uzavřen, read vrátí 0. Jestliže zapisujeme do roury, kterou nikdo nečte, unix generuje SIGPIPE. Příklad: int main(void) { int n, fd[2]; pid_t pid; char line[maxline]; if (pipe(fd) < 0) err_sys("pipe error"); if ( (pid = fork()) < 0) err_sys("fork error"); else if (pid > 0) { /* parent */ close(fd[0]); write(fd[1], "hello world\n", 12); } else { /* child */ close(fd[1]); n = read(fd[0], line, MAXLINE); write(stdout_fileno, line, n); } } exit(0);

23 7. Příklady, úkoly 1. Vytvořte skript "mymail", který bude zpracovávat informace o mailech. Skript vytvořte v shellu bez pomoci vyšších nástrojů (awk, perl, apod.) a jakéhokoli kompilovaného jazyka. Skript bude tvořen jediným souborem. Skript čte informace o mailech, uložených v souboru "inbox", a tiskne na standardní výstup informace o mailech ve formátu html. Soubor "inbox" je uložen v adresáři "mail", který je uložen v pracovním adresáři skriptu. 2. Vytvořte skript "users", který vygeneruje seznam aktuálně přihlášených uživatelů na aktuální server. Seznam bude obsahovat informace o uživateli, jeho poštovní schránce a počet přihlášení uživatele na server. 3. Vytvořte program checkword na kontrolu slov v anglickém textu podle slovníku. Program může tvořit více skriptů (např. v shellu a v perlu), základní skript se bude jmenovat checkword a tento se bude spouštět z příkazové řádky. Jednotlivá slova jsou v slovníku uložena na zvláštních řádcích. Při průchodu si dejte pozor na interpunkční a jiné znaky (,.;?!"'\()<>[]) a na velikost písmen (program při hledání slov nesmí rozlišovat malá a velká písmena)! Syntax použití skriptu a jeho chování je následující: checkword [-n -v] [-d {dictionary}] {file directory} {dictionary}... soubor se slovníkem (nepovinný, pokud není zadán je implicitním souborem soubor s jménem dictionary.txt) {file dictionary}... kontrolovaný soubor nebo adresář. 4. Vytvořte skript "users", který zpracovává informace o uživatelích. Skript vytvořte v shellu bez pomoci vyšších nástrojů (awk, perl, apod.) a jakéhokoli kompilovaného jazyka. Skript bude tvořen jediným souborem. Použití dočasných souborů je zakázáno. Skript má neomezený počet vstupních parametrů. Každý parametr se chápe jako počáteční znak (znaky) loginu. Skript zpracovává soubor "/etc/passwd" a tiskne na standardní výstup počet uživatelů, jejichž login začíná na uvedený znak (znaky). 5. Implementujte v jazyku C komunikaci dvou procesů pomocí roury. Program po spuštění vytvoří synovský proces. Otec čte znaky ze standardního vstupu a posílá je prostřednictvím roury synovskému procesu. Ten přijatá data tiskne na standardní výstup. Po ukončení přenosu dat otec čeká na ukončení syna a poté se sám ukončí. 6. Implementujte v jazyku C komunikaci procesů pomocí signálů. Program periodicky vypisuje na std. Výstup svoje PID každé 2 sekundy. Ošetřuje signály SIGINT (číslo 2) a SIGQUIT (číslo 3). 7. Napište program (v jazyku C), který otestuje synchronizaci rodič-potomek. Proces vytvoří soubor a zapíše do něj číslo 0. Potom zavolá fork a rodič a potomek střídavě inkrementují počítadlo v souboru. Pokaždé, když je počítadlo zvětšeno, tiskněte, který proces to provedl (rodič nebo potomek).

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

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu

Více

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk A7B38UOS Úvod do operačních systémů 6. Cvičení Příkazy sed a awk sed sed [přepínače] 'příkaz' [soubory] sed [přepínače] -f skript [soubory] Stream editor - edituje neinteraktivně jeden nebo více souborů.

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

Základní příkazy OS UNIX

Zá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íce

Úvod do Operačních Systémů

Ú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íce

PROGRAMOVÁNÍ V SHELLU

PROGRAMOVÁ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íce

Př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. Ú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íce

Proměnné a parametry. predn_08.odt :00:38 1

Proměnné a parametry. predn_08.odt :00:38 1 Proměnné a parametry predn_08.odt 16.04.2007 14:00:38 1 Proměnné a parametry Jméno proměnné - identifikátor [a-za-z_][a-za-z_0-9]* Hodnota proměnné textový řetězec celočíselná hodnota - ne v sh Přesun

Více

Základní příkazy pro práci se soubory

Základní příkazy pro práci se soubory A7B38UOS Úvod do operačních systémů 3. Cvičení Základní příkazy pro práci se soubory Obsah cvičení Informace o souborech a adresářích Informace o obsahu souborů Vytváření souborů a adresářů Manipulace

Více

Př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. Ú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íce

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4 1 Přednáška 4 Regulární výrazy. Filtry grep, sed a awk. 2 grep grep [přepínače] vzor [soubory] Implicitně vypíše na standardní výstup řádky, které obsahují zadaný vzor. Vzor může být definován základním

Více

Úvod do Operačních Systémů

Úvod do Operačních Systémů Úvod do Operačních Systémů 8. cvičení Práce s procesy a úlohami, příkaz test 1 Obsah Práce s procesy ps, ptree, pgrep, time kill, trap nice, stty, truss (strace) vmstat, top Práce s úlohami test nohup,

Více

BASH. Kouzla s příkazovou řádkou. Petr Koloros

BASH. Kouzla s příkazovou řádkou. Petr Koloros BASH Kouzla s příkazovou řádkou Petr Koloros Obsah příkazová řádka proměnné prsaté závorky {hot! hot!} manipulace se soubory vstup, výstup, přesměrování hlídače regularní výrazy filtry skriptování pitfalls

Více

Úvod do Operačních Systémů

Úvod do Operačních Systémů Úvod do Operačních Systémů 3. cvičení Základní příkazy pro práci se soubory 1 Obsah Zjištění informací o souborech a FS pwd, ls, du, df, quota Zjištění informací o obsahu souborů file, cat, strings, od,

Více

PSK3-9. Základy skriptování. Hlavička

PSK3-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íce

Regulární výrazy. Filtry grep, sed a awk.

Regulární výrazy. Filtry grep, sed a awk. Přednáška 5 Regulární výrazy. Filtry grep, sed a awk. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2011 Příprava studijního programu Informatika je podporována projektem

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

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

Sekvenční a podmíněné provádění

Sekvenční a podmíněné provádění Programování v Bourne shellu Sekvenční a podmíněné provádění Sekvenční provádění znamená vykonávání jednoho příkazu za druhým bez ohledu na okolnosti. Pro oddělení příkazů při sekvenčním provádění se používá

Více

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích Cvičení 2 Přesměrování vstupu a výstupu Příkaz > abc výstup příkazu jde do souboru abc. Pokud soubor neexistuje je vytvořen. Pokud existuje je přepsán. Příkaz >> abc výstup příkazu jde do souboru abc.

Více

C2110 Operační systém UNIX a základy programování

C2110 Operační systém UNIX a základy programování C2110 Operační systém UNIX a základy programování 5. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém

Více

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese https://service.felk.cvut.cz/heslo

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese https://service.felk.cvut.cz/heslo Domácí příprava k předmětu YD38UOS Úloha 1 vzdálené připojení připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese https://service.felk.cvut.cz/heslo pro připojení použijte protokol ssh (pokud

Více

PSK3-3. Základní příkazy. Zápis cesty

PSK3-3. Základní příkazy. Zápis cesty PSK3-3 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Přehled základních příkazů systému Unix Vzdělávací oblast: Informační a komunikační technologie

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

LINUX SOUBORY. Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. SPŠ Teplice - 3.

LINUX SOUBORY. Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. SPŠ Teplice - 3. LINUX SOUBORY Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. Dlouhý výpis příkazu ls Zadejte příkaz ls s parametrem l. Před každou položkou (souborem

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Nastroje na zpracovani textu:

Nastroje na zpracovani textu: Nastroje na zpracovani textu: head - vypise prvnich x radku, standartne x=10 tail vypise poslednich x radku, standartne x=10 nl vypise a ocisluje radky v souboru a vysledek posle na STDOUT, soubor se nemeni

Více

Skripty - úvod. Linux - skripty 2

Skripty - úvod. Linux - skripty 2 Linux - skripty 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

LINUX přesměrování a roury

LINUX 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í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

Operační systém UNIX

Operační systém UNIX UNIX z pohledu uživatele 1 Operační systém UNIX Nejzákladnější komponenty:! jádro (kernel)! shell! utility Jádro operačního systému! v podstatě představuje vlastní operační systém! fyzicky je to jediný

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Úvod do Operačních Systémů

Ú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 do UNIXu. Jirka Boháč Gymnázium Jaroslava Seiferta j.bohac@gymjs.net 2003/2004

Úvod do UNIXu. Jirka Boháč Gymnázium Jaroslava Seiferta j.bohac@gymjs.net 2003/2004 Úvod do UNIXu Jirka Boháč Gymnázium Jaroslava Seiferta j.bohac@gymjs.net 2003/2004 Abstrakt souborový systém, práce se shellem, přesměrování, job control, standardní unixové utility,...? Úvod do UNIXu

Více

Maturitní téma: Operační MS-DOS

Maturitní téma: Operační MS-DOS Maturitní téma: Operační MS-DOS OS - základní softwarové vybavení každého, počítače. DOS byl diskový operační systém určený pro práci na počítačích kompaktabilních s počítači IBM PC. MSDOS poskytoval uživateli

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

Úvod do Linuxu. SŠSI Tábor 1

Ú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íce

Úvod do UNIXu. Okruh č. 4 - vi, regulární výrazy, grep a sed. Jakub Galgonek. verze r2. inspirováno materiály Davida Hokszy

Úvod do UNIXu. Okruh č. 4 - vi, regulární výrazy, grep a sed. Jakub Galgonek. verze r2. inspirováno materiály Davida Hokszy Okruh č.4 Okruh č. 4 - vi, regulární výrazy, grep a sed verze 1.0.0-r2 inspirováno materiály Davida Hokszy Textové editory Okruh č.4 vi(m) prastarý textový editor (1976) dostupný v podstatě na každém UNIXovém

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

awk programovatelný filtr

awk programovatelný filtr awk programovatelný filtr Spouštění: Awk vzor {akce} nebo awk f prg_soubor [ soubory ] čte řádky ze zadaných souborů, nebo ze standardního vstupu výstup směřuje na standardní výstup Struktura programu:

Více

Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování

Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování nastudujte si programy find, chmod, ls nastudujte si problematiku přidělování práv v unixových systémech (práva pro uživatele,

Více

Přednáška 1. Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů. SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů.

Přednáška 1. Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů. SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů. Přednáška 1 Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů. 1 Hodnocení studentů III Klasifikace 90 100 bodů A (výborně)

Více

Linux Teorie operačních systémů a realita

Linux Teorie operačních systémů a realita ÚVOD DO OPERAČNÍCH SYSTÉMŮ Linux Teorie operačních systémů a realita České vysoké učení technické Fakulta elektrotechnická Ver.1.00 2010 Historie Unixu a Linuxu MULTICS 50. - 60. léta minulého století,

Více

Regulární výrazy. Vzory

Regulární výrazy. Vzory Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO

Více

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

ŘÍDÍCÍ STRUKTURY - PODMÍNKY ŘÍDÍCÍ STRUKTURY - PODMÍNKY Pokusíme se rozvětvit sktipt v Bashi ŘÍDÍCÍ STRUKTURY - PODMÍNKY V této lekci budeme probírat podmínkové, tj., které nám pomohou rozvětvit skript a provádět určité pouze při

Více

C2110 Operační systém UNIX a základy programování

C2110 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íce

Systém souborů (file system, FS)

Systé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íce

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Úvod do Operačních Systémů

Úvod do Operačních Systémů Úvod do Operačních Systémů 1. cvičení Úvod, práce v grafickém prostředí, jednoduché příkazy. 1 Obsah Organizace cvičení Seznámení s učebnou Přihlašování a odhlašování Práce v grafickém prostředí Příkazová

Více

Přednáška 1. Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů.

Přednáška 1. Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů. Přednáška 1 Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů. Úvod Informace a materiály k předmětu http://edux.felk.cvut.cz

Více

PRACUJEME S SHELLEM Ať žije BASH.

PRACUJEME S SHELLEM Ať žije BASH. PRACUJEME S SHELLEM Ať žije BASH. V této lekci nakoukneme do základů shellu Bash. Trocha nudné teorie. Název je akronym pro Bourne again shell, což poukazuje na jeho základ v dříve nejpoužívanějším unixovém

Více

Rozšíření ksh vůči sh při práci s proměnnými

Rozšíření ksh vůči sh při práci s proměnnými Rozšíření ksh vůči sh při práci s proměnnými (X36UNX, Jan Skalický, 2006) Pole homogenní lineární struktura implicitn ě s číselným rozsahem index ů 0...1023 (někde 4095) implicitn ě řetězcov ě orientovaná

Více

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

Identita uživatelů, přístupová práva. Linux

Identita uživatelů, přístupová práva. Linux Identita uživatelů, přístupová práva Linux Uživatel Při přihlášení do systému musí uživatel: identifikovat systém, na který se chce přihlásit fyzické umístění (lokální přihlášení) jméno systému/ IP adresa

Více

Popis programu EnicomD

Popis programu EnicomD Popis programu EnicomD Pomocí programu ENICOM D lze konfigurovat výstup RS 232 přijímačů Rx1 DIN/DATA a Rx1 DATA (přidělovat textové řetězce k jednotlivým vysílačům resp. tlačítkům a nastavovat parametry

Více

PSK3-5. Přesměrování vstupu a výstupu. Vstup a výstup

PSK3-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íce

Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde. find adresář -name "maska_souboru" [-print] [-exec proces {} \;]

Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde. find adresář -name maska_souboru [-print] [-exec proces {} \;] 1 Základní příkazy UNIXu Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde pouze upozorníme na nejčastě používané přepínače. Dohledání jejich významu je na každém uživateli. 1.1

Více

Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x

Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x Cvičení 3. ZOS 2005, L. Pešička Plán procesy, jobs Find Wildcards Příklad uživatelé Procesy eryx4> ps x PID TTY STAT TIME COMMAND 15055 pts/6 S 0:00 -tcsh 15256 pts/6 R 0:00 ps x eryx4> top & [1] 15260

Více

Operační systémy. Cvičení 5: Volání jádra, procesy, vlákna.

Operační systémy. Cvičení 5: Volání jádra, procesy, vlákna. Operační systémy Cvičení 5: Volání jádra, procesy, vlákna. 1 Obsah cvičení Systémová volání Knihovní funkce jazyka C Procesy informace o procesech vytváření, ukončování procesů, signály POSIX vlákna vytváření,

Více

UŽIVATEL, SKUPINA, PROCES

UŽIVATEL, SKUPINA, PROCES UŽIVATEL, SKUPINA, PROCES Systém bez uživatele je jedině Matrix? Uživatelé se seskupují a řídí práci. Group = skupina uživatelů Trocha teorie: LINUX je systémem víceuživatelským. Tzn. Že k dané instanci

Více

Ovládání programu DAE a zápis překladu do znakované češtiny 1. Instalace programu 2. První spuštění 3. Ovládání programu 4. Překlad dialog Translation Instalace programu Pro instalaci programu stačí spustit

Více

Úvod, jednoduché příkazy

Ú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íce

Úvod. unx-predn_01-uvod.odt 25.02.2008 16:13:43 1

Úvod. unx-predn_01-uvod.odt 25.02.2008 16:13:43 1 Úvod unx-predn_01-uvod.odt 25.02.2008 16:13:43 1 Operační systém UNIX Přednášky Jan Zajic, zajic@fel.cvut.cz, K226 Web service.felk.cvut.cz/courses Cíl předmětu pokročilý uživatel začínající administrátor

Více

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

Práce se soubory. Úvod do programování 2 Tomáš Kühr

Práce se soubory. Úvod do programování 2 Tomáš Kühr Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C u Soubor chápeme jako posloupnost bytů uložených na disku u Datový proud (anglicky stream) u Ještě obecnější přístup u Sjednocuje

Více

Přednáška 5. Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. Úvod do Operačních Systémů Přednáška 5

Přednáška 5. Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. Úvod do Operačních Systémů Přednáška 5 Přednáška 5 Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. 1 Uživatel Při přihlášení do systému musí uživatel: identifikovat systém, na který se chce přihlásit fyzické umístění

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

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

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru Textové řetězce V jazyce C neexistuje typ proměnné, který by byl určen výhradně pro ukládání textu V jazyce C používáme

Více

Přednáška 6. Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. Úvod do Operačních Systémů Přednáška 6

Přednáška 6. Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. Úvod do Operačních Systémů Přednáška 6 Přednáška 6 Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. 1 Procesy I Proces je spuštěný program. Každý proces má v rámci systému přiřazeno jednoznačné číslo

Více

Program grep. predn_05.doc

Program grep. predn_05.doc Program grep je filtr, který předává na výstup řádky obsahující resp. neobsahující zadaný vzor. Název grep je zkratka pro skupinu příkazů ex editoru: globally search for regular expression and print result

Více

X36UNX. UNIX - signály. jejich význam a použití. Martin Plicka -

X36UNX. UNIX - signály. jejich význam a použití. Martin Plicka - X36UNX UNIX - signály jejich význam a použití Martin Plicka - plickm1@fel.cvut.cz Co jsou signály? Softwarová přerušení zaslaná procesu jiným procesem, terminal driverem, jádrem Druhy signálů jsou očíslovány

Více

Úvod do Operačních Systémů

Úvod do Operačních Systémů Úvod do Operačních Systémů 4. cvičení Standardní vstup a výstupy procesu, filtry. 1 Obsah Přesměrování vstupu a výstupů Filtry tee cat, split head, tail cut, paste sort, uniq diff, patch cmp, comm 2 Standardní

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

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

Úvod do Operačních Systémů

Úvod do Operačních Systémů Úvod do Operačních Systémů 2. cvičení Seznámení se shellem, editor vi 1 Obsah Zpracování příkazové řádky Práce se znaky se speciálním významem Práce s proměnnými, prompt Aliasy Historie Editor vi 2 Formátování

Více

Základy operačního systému LINUX část III

Základy operačního systému LINUX část III Základy operačního systému LINUX část III Přesměrování standardního vstupu a výstupu Přídavná zařízení jsou v systému reprezentována svými řídícími soubory. Řídící soubory umožňují procesům pracovat s

Více

- jak udělat konstantu long int: L long velka = 78L;

- jak udělat konstantu long int: L long velka = 78L; Konstanty (konstatní hodnoty) Např.: - desítkové: 25, 45, 567, 45.678 - osmičkové: 045, 023, 03 vždy začínají 0 - šestnáctkové: 0x12, 0xF2, 0Xcd, 0xff, 0xFF - jak udělat konstantu long int: 245566553L

Více

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu Vytěžování dat, cvičení 1: Úvod do Matlabu Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 24 Úvod do Matlabu Proč proboha Matlab? Matlab je SW pro

Více

Práce se soubory. Základy programování 2 Tomáš Kühr

Práce se soubory. Základy programování 2 Tomáš Kühr Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

Programování v C++, 2. cvičení

Programová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

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové

Více

Systém souborů (File System)

Systém souborů (File System) (File System) Základní pojmy Běžný uživatel vidí logický systém souborů jako jeden strom. Kořen stromu je kořenový adresář ( / = Root Directory ). Uzly stromu jsou adresáře (d = Directory). Listy stromu

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

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

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

Západočeská univerzita v Plzni. Správce virtuálních strojů

Západočeská univerzita v Plzni. Správce virtuálních strojů Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Správce virtuálních strojů Týmová semestrální práce z předmětu Operační systémy Kontakt na tým: kalwi@students.zcu.cz

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Příkazová řádka. predn_02.odt :55:55 1

Příkazová řádka. predn_02.odt :55:55 1 Příkazová řádka predn_02.odt 28.03.2007 14:55:55 1 Zpracování příkazové řádky shellem Shell je interpret příkazů programovacíhojazyka. Zpracovává příkazy nebo přiřazení hodnot poměnným. Vstupem shellu

Více

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16 Jazyk C práce se soubory 1 Soubory Použití souborů pro vstup většího množství dat do programu (uživatel nezadává z klávesnice ručně tisíce údajů...) pro uložení většího množství výsledků, např. k pozdějšímu

Více

Úvod do UNIXu. Okruh č. 1 - přihlášení, historie, práce se soubory. Jakub Galgonek. verze r1. inspirováno materiály Davida Hokszy

Úvod do UNIXu. Okruh č. 1 - přihlášení, historie, práce se soubory. Jakub Galgonek. verze r1. inspirováno materiály Davida Hokszy Okruh č. 1 - přihlášení, historie, práce se soubory verze 1.0.1-r1 inspirováno materiály Davida Hokszy Obsah Práce se soubory Textové editory Uživatelé a práva Regulární výrazy Programování v shellu Administrace

Více

DUM 06 téma: Tvorba makra pomocí VBA

DUM 06 téma: Tvorba makra pomocí VBA DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie

Více

PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů

PSK3-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íce

Paralelní výpočty na clusteru KMD

Paralelní 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íce