Správa procesů - manipulace s procesy, signály

Podobné dokumenty
PROGRAMOVÁNÍ V SHELLU

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

Ú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

Linux-příkazový řádek

Nastroje na zpracovani textu:

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

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

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

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.

Skripty - úvod. Linux - skripty 2

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

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

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

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

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

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

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

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

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

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

Computer Press Brno 2003

Numerické výpočty, komprese a archivace, návratový kód.

Základní příkazy OS UNIX

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

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

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

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

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

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

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.

UŽIVATEL, SKUPINA, PROCES

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

Tomáš Borland Valenta

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

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

Příkaz find, práce s procesy a úlohami, plánování úloh

LINUX přesměrování a roury

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.

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

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

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

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

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

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

1 Uživatelská dokumentace

Systém souborů (file system, FS)

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

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

FILTRY V GNU/LINUXU ZLÍNSKÝ KRAJ. Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště

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

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

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

Předmluva 23 1 Vítejte ve světě Linuxu 33. ČÁST 1 Operační systém Linux 49

Architektura systému GNU/Linux. Bohdan Milar

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

Speciální soubory. Editace příkazové řádky. $ fg mp3blaster $./skript.sh. [2]+ Stopped./skript.sh $ bg [2]+./skript.sh & $ fg 2./skript.

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

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

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

Část první: Tipy a triky pro práci se systémem 17

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

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

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

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

DUM 20 téma: Test dávky

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

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

Úvod, jednoduché příkazy

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

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

ÚVOD DO UNIXU. Metodický list č. 1

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Charakteristika operačního systému GNU/Linux

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

1 Webový server, instalace PHP a MySQL 13

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

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Popis programu EnicomD

Téma 2: Práce s commands. Téma 2: Práce s Commands

Základy PERLu snadno a rychle

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

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

ZOS CV1 Základy operačních systémů

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

ČÁST 1 ÚVOD. Instalace operačního systému 21 Aktualizace operačního systému 57 Příkazový řádek 77 Windows Script Host 103 ČÁST 2 ŘEŠENÍ

Algoritmizace. 1. Úvod. Algoritmus

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

Tabulkový procesor. Základní rysy

Služba ve Windows. Služba (service) je program

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Stručný návod k programu Octave

Univerzita Pardubice Fakulta elektrotechniky a informatiky ISOSY Matěj Trakal

Úvod do UNIXu. Jirka Boháč Gymnázium Jaroslava Seiferta 2003/2004

Instalace a základní správa herních serverů Counter Strike 1.6 na VPS serveru od Hostzona.cz Hosting

Mzdy Optimum základy ovládání

Vytvoření bootovatelného média

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

Algoritmizace a programování

Transkript:

Správa procesů - manipulace s procesy, signály Program - soubor na disku, který můžete spustit a on bude vykonávat nějakou činnost Proces program, který je spuštěn a běží. Synonymum = úloha (task) Linux víceúlohový systém -> může současně běžet více procesů V Linuxu (obecně i Unixu) sestává každý běžící program z nejméně jednoho procesu. Z hlediska operačního systému jsou jednotlivé procesy navzájem nezávislé. Procesy, které přestoupí svoji vymezenou oblast, jsou okamžitě ukončeny tato vlastnost vede k velké stabilitě unixových systémů

PID identifikační číslo procesu Na uživatelské úrovni jsou soubory identifikovány svým jménem, které odpovídá jménu spustitelného souboru Systém jednoznačně identifikuje procesy pomocí čísla - PID Každá úloha běžící v systému má svoje unikátní identifikační číslo procesu. Dva různí uživatelé mohou k odkazu na proces použít totéž identifikační číslo a pak mají jistotu, že se jedná o tentýž proces (samozřejmě za předpokladu, že jsou přihlášeni k témuž systému). Výpis příkazu top: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 13743 root 15 0 98.4m 21m 1660 S 12.3 8.5 1:52.07 X 14057 misak 15 0 61884 45m 19m S 4.3 9.0 0:59.27 konqueror 14047 misak 15 0 80420 36m 22m S 2.3 7.5 1:14.01 amarokapp

Příkaz ps vypsání běžících procesů příkazem ps je možno zobrazit přehled všech spuštěných procesů, včetně informací o jejich stavu, velikosti a jménu, využití CPU, doby běhu PID identfikační číslo procesu USER vlastník procesu %CPU Informace o velikosti oblasti CPU, kterou proces zabírá %MEM Informace o velikosti paměti, kterou proces zabírá TIME doba, po kterou byl proces zpracováván procesorem COMMAND Název procesu (programu)

S je process status (stav konkrétního procesu) R = běžící S = spící T = traceovaný nebo zastavený Z = zombie PPID (parent process identification), PID rodičovského procesu. (číslo procesu, který aktuální proces spustil ) "řídící" proces, který vyvolal spuštění svého takzvaného dceřiného procesu procesy tvoří strom (hierarchie) ---> každý process má svého rodiče (parent) a potomky (child)

Proces init Prvním procesem, který je spuštěn a má pořadové číslo 1 je init. Všechny další procesy jsou jeho potomky a jeho zabití vede k ukončení celého systému. Další proces má přiřazeno číslo 2, 3,..., až po jisté číslo n. Jeho hodnota bývá nejčastěji 32768. Skutečná hodnota na vašem systému je uložena v souboru /proc/sys/kernel/pid_max. Pokud systém dosáhne maxima, začne přidělovat volná čísla zase od začátku.

Procesy nejčastější příkazy ps - výpis všech spuštěných programů ps aux - podrobný výpis procesů všech uživatelů top - interaktivní program, který slouží k výpisu procesů, které jsou řazeny podle určitého klíče např: CPU kill PID - ukončí (odstřelí, zabije) proces jednoznačně identifikovný PID kill -9 PID - ukončí proces bez varování spuštění procesu na pozadí # <příkaz> & bg přesun procesu na pozadí fg přesun procesu na popředí http://www.linuxsoft.cz/article.php?id_article=409

Procesy - signály Signál je jedním ze základních prostředků meziprocesové komunikace Poslání signálu běžícímu procesu vyvolá asynchronní reakci - proces přestane vykonávat běžný kód a přednostně reaguje na signál Nejčastější signály: SIGTERM - standardní ukončení programu SIGKILL - násilné ukončení programu SIGSTOP - pozastavení běhu procesu SIGCONT - znovuspuštění pozastaveného procesu SIGHUP - ukončování terminálu (odhlášení) SIGINT - přerušení programu klávesovou zkratkou Ctrl-C

démon (daemon) proces, který neustále běží na pozadí, kde průběžně vykonává nějakou činnost a není (za běžných okolností) ukončován. démon obvykle nijak nekomunikuje s uživatelem, pracuje samostatně proces, který běží v systému a poskytuje nějaké služby používá se také termín služba (service). běží nezávisle na tom, jestli je k systému někdo přihlášen nebo ne, spouští se obvykle hned po startu systému web server dns server dhcp server sendmail,...

Plánování procesů - cron, at Uživatelé i správci systému často potřebují spouštět některé programy pravidelně. Například administrátor systému, který musí sledovat zaplněnost disku, by mohl chtít pravidelně spouštět příkaz, jenž by vyčistil adresáře dočasných souborů (/tmp a /var/tmp). Program by odstranil starší dočasné soubory, které po sobě programy z různých důvodů korektně nesmazaly. Takovéto služby nabízí program cron. Každý uživatel má vlastní soubor crontab, jenž obsahuje seznam příkazů, které chce vlastník spustit, a časy, kdy se mají tyto příkazy provést. Démon cron má na starosti spouštění těchto příkazů v požadovaném čase. Služba at je podobná službě cron, provede se ale jenom jednou. Příkaz je vykonán v určeném čase, ale jeho spouštění se neopakuje. Podrobnější informace viz manuálové stránky cron(1), crontab(1), crontab(5), at(1) a atd(8). http://cs.wikibooks.org/wiki/plánování_spouštění_úloh

Programování v shellu skripty, spouštění scriptu, strukturované příkazy BASH není pouze příkazovou řádkou, ale zároveň také plnohodnotným skriptovacím jazykem rozdíl mezi skriptovacím a kompilovaným jazykem Skriptovací jazyky začínají psaním zdrojového kódu, ale nejsou kompilovány. Místo toho interpreter jazyka čte instrukce ze zdrojového kódu a podle obsahu tyto instrukce vykonává Shell umí interpretovat scripty ( textové příkazové soubory) Script se často používá v situacích, které se opakují a je výhodné je zautomatizovat - např. boot systému, přihlášení uživatele apod. Hlavní výhodou scriptu je jeho čitelnost a snadná úprava. Nevýhodou je pomalé zpracování. Script lze spustit stejně, jako binární program. Soubor by měl být umístěn v adresáři uvedeném v proměnné PATH, uživatel musí mít právo x http://docs.linux.cz/programming/interpreted/bashdoc-1.4/

Proměnné Místa v paměti označená identifikátorem (názvem proměnné). V bash se proměnné deklarují např takto: #!/bin/bash x=5 echo "Hodnota proměnné x je $x" k proměnné se přistupuje pomocí znaku symbolu dolaru ($) uvedeného před názvem proměnné

Hlavní systémové proměnné $$ - obsahuje pid aktuálního procesu (ať víte co zabíjet :-) $0 - obsahuje jméno právě prováděného skriptu: mujskript.sh $1 - obsahuje první argument, předaný vašemu skriptu, na příkazové řádce: parametr1 $9 - obsahuje 9-tý argument z příkazové řádky: parametr9 $# - obsahuje počet argumentů z příkazové řádky mujskript.sh parametr1 parametr2 parametr3... parametr9

Vstup/výstup Skript může získat od uživatele data příkazem read promenna. Tímto se načte do proměnné promenna vše až do stisku klávesy enter. Pokud uvedeme více proměnných, uloží se do každé proměnné jedno slovo. read promenna1 promenna2... promennan výstup programu zajišťuje příkaz echo echo Ahoj, ja jsem bash skript a jmenuju se $0. Co jsi ty? echo -n Zadej svuj plat: read plat echo Nevypadas jako bys vydelaval $plat korun.

SHELL - Řídící struktury Řídící struktury můžou váš program řídit a tím ho udělat mnohem více užitečný a efektivnější. Velmi důležitá je například detekce chyb Řídící struktury jsou: if, case while, until, for, Každá tato struktura je tzv. párová. To znamená, že začíná jako "návěst" a končí taky "návěst". Například struktura podmínky začíná if a končí fi If... else... elif... fi Case... in... esac While... do... done Until... do... done For... in... do... done

IF struktura pro rizeni pomoci podminek if [ podminka ] then prikazy else prikazy fi Pokud je podminka splnena vykonaji se prikazy za slovem then, pokud podminka neni splnena provedou se prikazy za slovem else, fi urcuje konec

CASE case struktura podobná funkci if, ale zde můžeme testovat více hodnot case vyraz in hodnota1) prikazy;; hodnota2) prikazy;; hodnota3) prikazy;; esac Pokud je promenna vyraz rovna hodnote1, tak se vykonaji prikazy(ukoncene jsou ;;). Konec funkce se ukonci slovem esac.

WHILE while - cyklus se provádí dokud je podmínka splněna while [ logicky_vyraz ] do prikazy done

UNTIL until -příkaz je podobný přikazu while, ale je opačná podminka. cyklus trvá tak dlouho, dokud neni splněna podmínka until [ logicky_vyraz ] do prikazy done

#!/bin/bash x=0; # inicializuje hodnotu x na 0 while [ "$x" -le 10 ]; do echo "Aktualní hodnota x: $x" # zvyseni hodnoty x o 1 x=$[$x + 1] sleep 1 done

#!/bin/bash x=0 until [ "$x" -ge 10 ]; do echo "Aktualni hodnota x: $x" x=$[$x + 1] sleep 1 done

FOR tento cyklus je vhodny pro pripady, kdy vime, kolikrat se bude cyklus opakovat for promenna in seznam do prikazy done Příklad: for i in 'ls *.txt' do cp $i ${i}.bak done Program vyhleda v aktualnim adresari vsechny soubory s priponou *.txt a zalohuje je na soubory s priponiu *.bak.

Řízení cyklu break a continue yklus lze předčasně ukončit nebo vynutit jeho okamžitý další průběh (od jeho ačátku). Tyto operace narušují pravidla strukturovaného programování avšak bvykle se používají proto, že odstraňují nutnost vkládat do cyklu další odmínky. Jejich použití by proto mělo vést ke zpřehlednění a zjednodušení yklu (a ne naopak). Příkazy nemají vliv na právě zpracovávanou podmínku, ají vztah pouze k nadřízené smyčce. reak [n] ukončí n-tou úroveň cyklu for, while, until bez parametru ukončí nejbližší cyklus ontinue [n] zahájí další iteraci cyklu n-té úrovně bez parametru zahájí další průběh nejbližšího cyklu

Logické výrazy K vyhodnocováni logických výrazů se používá Příkaz test nebo hranatá závorka [ výraz ] if test -f /etc/foo then # se dá také zapsat takto: if [ -f /etc/foo ] ; then If test -f /etc/foo then #Soubor existuje. Zkopíruj tedy soubor cp /etc/foo. echo "Hotovo!" else # Soubor neexistuje. Vypiš tedy chybu echo "Soubor neexistuje!" exit fi

Testování typu souboru: -b soubor soubor existuje a je blokovým speciálním souborem -c soubor soubor existuje a je znakovým speciálním souborem -d soubor soubor existuje a je adresářem -e soubor soubor existuje (pouze vestavěný příkaz test) -f soubor soubor existuje a je normálním souborem Testování přístupových práv viz -g soubor soubor existuje a má nastaven bit SGID -k soubor soubor existuje a má nastaven sticky bit -r soubor soubor existuje a lze jej číst -u soubor soubor existuje a má nastaven bit SUID -w soubor soubor existuje a lze do něj zapisovat -x soubor soubor existuje a je proveditelný man test

Testování řetězců -z řetězec Délka řetězce je nulová -n řetězec Délka řetězce je nenulová řetězec1 = řetězec2 řetězce jsou shodné řetězec1!= řetězec2 řetězce se neshodují Numerické testy číslo1 -eq číslo2 (rovnost čísel) číslo1 -ne číslo2 (nerovnost čísel) číslo1 -lt číslo1 (číslo1 < číslo2) číslo1 -le číslo2 (menší rovno) číslo1 -gt číslo2 (větší) číslo1 -ge číslo2 (větší rovno) viz man test Logické výrazy! výraz výraz je nepravdivý výraz1 -a výraz2 výraz1 a výraz2 jsou pravdivé výraz1 -o výraz2 výraz1 nebo výraz2 je pravdivý

Zachytávání signálů příkaz trap

Zachytávání signálů Signál je událost, kterou generuje systém UNIX (Linux) jako odpověď na nějakou podmínku a po jehož přijetí může proces (skript) provést nějakou akci. Signály generují některé chybové podmínky, například porušení segmentů paměti, chyby procesoru v plovoucí čárce nebo neplatné instrukce. Jsou generovány shellem a ovladači terminálu, které vyvolají přerušení. Ve skriptech je možné použít zabudovaný program trap, který dovede zachytávat signály trap akce signál Kde akce je to, co bude vykonáno při doručení signálu aplikaci. Signál je název signálu, který bude-li doručen, tak se vykoná příslušná akce.

Příklady # dojde-li signál, spustí funkci sorry() trap sorry INT # resetuje akci (nastavuje standardní chování SIGINT) trap INT #nastavuje signál tak, aby byl ignorován trap '' INT Seznam signálů: man 7 signal kill -L

#!/bin/bash trap sorry INT sorry() { echo "Sorry, to jsem nechtěl!" sleep 3 } for i in 10 9 8 7 6 5 4 3 2 1; do echo "$i sekund do selhání systému." sleep 1 done echo "Systém selhal!"

Nástroje pro práci s textem, význam textového formátu dat základní uživatelské rozhraní (ve smyslu komunikace uživatele se sytémem) je textové rozhraní a příkazový řádek grafické rozhraní je něco navíc, jenom jakási nadstavba cokoliv se v Linuxu prezentuje jako soubor, s kterými se na příkazovém řádku snadno pracuje Linux je založen na textových souborech, s kterými uživatel přímo pracuje (prohlížení,editace,další zpracování,...) Aplikace v Linuxu ukládají konfigurace do konfiguračních souborů jednoduchá editace jednoduchá záloha Propracované logování vše se zapisuje do logů možnost dohledat chyby, útoky,...

Textové editory nejrozšířenější textové editory v GNU/Linuxu Vim a Emacs další editory mcedit, joe používají regulární výrazy k vyhledávání textu a také k jeho nahrazování Editor Vim (vi) Spuštění - vi soubor Režimy - editační, příkazový, řádkový Základní příkazy Pohyb v textu Hledání vzorků

Filtry jsou to programy, které jako vstup přijímají text, provedou s nim nějaké operace a pak upravený text vypíšou na obrazovku cat - tento příkaz čte data ze standardního vstupu a zobrazuje je na standardním výstupu (načte text a zobrazí jej) more - používá se k dokonalejšímu vypsání souborů, interaktivní less - vylepšení příkazu more sort - příkaz načte vstupní soubor a setřídí ho cut - vypíše na obrazovku zadané sloupce ze vstupních souboru head - příkaz zobrazí prvních 10 řádků ze souboru (počet řádků lze měnit pomocí parametru) tail - příkaz zobrazí posledních 10 řádků ze souboru (počet řádků lze měnit pomocí parametru) grep

Příkaz grep Příkaz grep čte data (text) ze standardního vstupu a na výstup vypisuje řádky odpovídající jistému vzoru. Příkaz ls -l /dev grep petera vezme z výstupu příkazu ls pouze řádky se soubory, na nichž se vyskytuje slovo 'petera', což budou pravděpodobně soubory, jejichž vlastníkem je uživatel 'petera'. Pokud lze předpokládat, že řádku bude mnoho, lze ještě použít filtr more, např: ls -l /dev grep root more

GREP a spol. slouží k vyhledávání v souborech Typické použití: hledáme určitý identifikátor ve zdrojových kódech nebo chceme zjistit, odkud se spouští určitý program. Spuštění: grep vzor seznam_souborů Vzorem je regulární výraz. Výstup programu tvoří řádky, které vyhovují zadanému vzoru Pokud program zkoumá více než jeden soubor, vypíše zároveň před každý řádek název souboru, ze kterého pochází. grep, egrep, fgrep

Regulární výrazy zkráceně označovaný regexp či regex je to předpis pro porovnávání textových řetězců podle určitých vzorků univerzální pomocník při práci s textem sestávají z "normálních" znaků a z metaznaků Jejich prostřednictvím můžete: vytahovat z textových dat údaje, které vás zajímají přetvářet je do podoby, kterou potřebujete vyhledávat a nahrazovat v textových editorech a dalších programech regulární výrazy wikipedia http://www.root.cz/serialy/regularni-vyrazy/ http://www.regularnivyrazy.info/

Regulární výrazy Je to předpis pro porovnávání textových řetězců podle určitých vzorů sestávajících z "normálních" znaků a z metaznaků - znaků majících zvláštní význam, viz dále. Rozlišují se malá a velká písmena (většina implementací umožňuje jejich rozlišení potlačit, pokud je to žádoucí). Regulární výrazy jsou "žravé". To znamená, že se každá část výrazu snaží vždy "spolknout" co nejvíce vyhovujících znaků, teprve pak se pokračuje ve zkoumání dalších částí výrazu. Mají paměť - můžete si zapamatovat část vyhovujícího řetězce a použít ji později. Používají se mj. v textových editorech (vi, ed,..), skriptovacích programech (awk, perl, Tcl,..), prostředcích pro práci s textem (grep, sed,..). Knihovnou pro práci s regulárními výrazy dnes disponuje řada programovacích jazyků.

Regulární výrazy - použití Používá 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).

GREP a spol. slouží k vyhledávání v souborech Typické použití: hledáme určitý identifikátor ve zdrojových kódech nebo chceme zjistit, odkud se spouští určitý program. Spuštění: grep vzor seznam_souborů Vzorem je regulární výraz. Výstup programu tvoří řádky, které vyhovují zadanému vzoru Pokud program zkoumá více než jeden soubor, vypíše zároveň před každý řádek název souboru, ze kterého pochází. grep, egrep, fgrep

SED Program sed je neinteraktivní editor Zadáte mu sadu příkazů a on podle nich zpracuje vstupní text Regulární výrazy se v sedu vyskytují hned ve dvojí roli: Lze je použít k vyhledání řádků, na které se má vztahovat určitý příkaz. Druhým místem výskytu regulárních výrazů je příkaz pro nahrazování, který má tvar s/vzor/náhrada/. Vyhledává regulárním výrazem zadaný vzor a pokud jej najde, vloží na jeho místo náhradu

AWK Program awk realizuje specializovaný programovací jazyk, který umožňuje zpracovávat textové soubory s pevnou strukturou (např. /etc/passwd, výstup příkazu ls -l a podobně). Regulární výrazy opět vystupují ve dvou známých rolích: určují řádky, kterých se operace týká, a vyskytují se v nahrazování. Základním problémem awku je jeho jednostrannost. Syntaktický tvar programů je velmi nezvyklý a držet jej v hlavě kvůli úzce vymezené skupině úloh, které dokáže řešit, se podle mého soudu nevyplatí. http://cs.wikipedia.org/wiki/awk http://www.ucw.cz/~hubicka/skolicky/skolicka20.html http://www.ics.muni.cz/zpravodaj/articles/33.html

Základy práce v systému - základní příkazy, archivace, vyhledávání souborů, instalace a aktualizace SW ls vypíše obsah aktuálního nebo zadaného adresáře cd [ADRESÁŘ] změní aktuální adresář pwd zobrazí aktuální adresář cp zkopíruje soubor do jiného souboru, nebo zkopíruje několik souborů do zadaného adresáře mv přesouvá soubory do jiného adresáře, nebo je přejmenuje mkdir vytvoří nový adresář rmdir zruší prázdný adresář rm smaže jeden nebo více souborů chmod mění atributy souborů

Základní příkazy OS Linux - pokračování cat, less vypíše obsah souboru na obrazovku df zobrazí kapacitu, obsazení a volné místo všech připojených jednotek (pevné disky, CD-ROMy) du zobrazí velikosti adresářů free zobrazí kolik je obsazené a volné paměti ram a místa v odkládacím prostoru (swap) passwd změna hesla

Archivace - program tar K archivaci dat slouží program tar (tape archiver) Původně byl určen k archivaci na magnetickou pásku Vytvoření archivu znamená, že několik souborů spojíme do jednoho a jsme schopni tento celistvý soubor zase následně rozdělit do původních souborů anebo přidat/ubrat soubory do/z tohoto archivu Program tar pracuje ve čtyřech různých módech, x - rozbalení existujícího archivu (extract), c - vytvoření nového(create), t - výpis obsahu r - přidání souboru do archivu. Vytvoření archivu: tar cvf home.tar /home/kmartin f (file) - říká, že tar má zapisovat do souboru, v - verbose Rozbalení archivu: tar xvf home.tar

Komprimace Komprimace - zmenšení velikosti souboru V GNU/Linuxu nemůžeme vzít adresář a ten celý zkomprimovat do jednoho souboru. Nejprve si vytvoříme archiv, který bude tyto soubory obsahovat a ten následně zkomprimujeme. gzip - používá pro kompresi kompresní metodu LZ77 Defaultní přípona gzip archivu je.gz. Balení (komprimace): gzip jmeno_souboru... Rozbalování (dekomprimace): gzip -d jmeno_gzip_archivu Bzip2 - komprimuje pomocí Burrows-Wheeler block sorting text compression algorithm Defaultní přípona bzip2 archivu je.bz2. Balení (komprimace): bzip2 jmeno_souboru... Rozbalování (dekomprimace): bzip2 -d jmeno_bzip2_archivu compress, uncompress přípona.z (starší, už se nepužívají)

Shrnutí - archivace Archivace + komprimace tar cf archiv.tar soubory ; bzip2 archiv.tar tar cf - soubory bzip2 > archiv.tar.bz2 tar cfz archiv.tar.gz soubory Dekomprimace bzip2 -d archiv.tar.bz2 ; tar xf archiv.tar bzip2 -cd archiv.tar.bz2 tar xf - tar xfz archiv.tar.gz souborový manažer Midnight Commander zvládá rozbalování archivů tar, gz, bz2, tar.gz, tar.bz2... Na takovém archivu jen stačí zmáčknout [enter], tím se z archivu stane readonly adresář a zabalené soubory lze prohlížet a vybalovat (kopírovat z archivu).

Vyhledávání souborů which - prohledává jen adresáře uvedené "v cestě" PATH a jako výsledek vrací první výskyt hledaného souboru a adresářovou cestu k němu whereis - pracuje podobně jako which, ale navíc může vyhledávat manuálové stránky a zdrojové soubory find - příkaz find umí hledat cokoliv a kdekoliv Práce příkazu find trvá trochu déle, protože musí prohledat celý adresářový strom. Navíc, pokud jej spouštíte jako normální uživatel, obdržíte nejspíš spoustu chybových hlášení o odmítnutém přístupu do adresářů, které smí prohlížet jenom root locate - příkaz prohledává celý souborový systém stejně, jako to dělá příkaz find, ale namísto skutečného souborového systéu prohledává svoji databázi. Databáze je nastavena tak, aby se automaticky updatovala