1. Základní pojmy a informace
|
|
- Bedřich Štěpánek
- před 8 lety
- Počet zobrazení:
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 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ícePř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íceA7B38UOS Ú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
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í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í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í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í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ícePromě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íceZá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í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ícePř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ů 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íceBASH. 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ů 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í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íceRegulá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í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í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íceSekvenč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íceCvič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íceC2110 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
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ícePSK3-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íce1. 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íceLINUX 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íce1. 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íceNastroje 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íceSkripty - ú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í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í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íceOperač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íceProgramovací 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ů 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 Abstrakt souborový systém, práce se shellem, přesměrování, job control, standardní unixové utility,...? Úvod do UNIXu
VíceMaturitní 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í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í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íceÚ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í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íceawk 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íceDomá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ícePř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íceLinux 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íceRegulá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 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í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í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íceÚ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ů 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ícePř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ícePRACUJEME 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íceRozšíř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íce8. 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íceIdentita 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ícePopis 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í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ícePro 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íceCvič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íceOperač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íceUŽ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íceOvlá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
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 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íce9.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ícePrá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ícePř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íceStruktura 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í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íceDSL 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íceProgramová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ícePř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íceProgram 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íceX36UNX. 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ů 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í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íceVISUAL 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ů 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íceZá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;
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
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ícePrá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ícefor (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íceFunkce, 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í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íce1.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íceZá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íceWSH 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íceSysté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: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
VíceEVROPSKÝ 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í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íceZá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íceAlgoritmizace 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ícePří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íceJazyk 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
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íceDUM 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í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í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íce