Unix – úvod

86
Unix – úvod Unix – úvod

description

Unix – úvod. Obsah přednášky. Literatura Úvod do práce s Unixem Formát příkazů v Unixu Systém souborů a adresářů Příkazy pro práci se soubory a adresáři Procesy a práce s nimi Systémové proměnné. Literatura. - PowerPoint PPT Presentation

Transcript of Unix – úvod

Page 1: Unix – úvod

Unix – úvodUnix – úvod

Page 2: Unix – úvod

2

Obsah přednáškyObsah přednášky

LiteraturaÚvod do práce s UnixemFormát příkazů v UnixuSystém souborů a adresářůPříkazy pro práci se soubory a adresářiProcesy a práce s nimiSystémové proměnné

Page 3: Unix – úvod

3

LiteraturaLiteratura

Hála, T.: Základy práce v Unixu. 3. vyd. Brno: Konvoj, 2002. 40 s. ISBN 80-7302-040-8.(Lze zakoupit na sekretariátu Ústavu informatiky za 20 Kč.)

Petrlík, L.: Jemný úvod do systému UNIX. 1. vyd. České Budějovice: Kopp 1995. 189 s. ISBN 80-85828-28-6.

Brandejs, M.: UNIX–Linux: praktický průvodce. 1. vyd. Praha: Grada, 1996. 344 s. ISBN 80-7169-170-4.

Herborth, Ch.: Unix a Linux – Názorný průvodce. 1. vyd. Brno: Computer Press, 2006. 288 s. ISBN 80-251-0978-X.

Liška, R.: Úvod do Unixu. [online] 28. 4. 2009. Dostupný z WWW: http://kfe.fjfi.cvut.cz/~liska/unix/index.html.

http://www.fi.muni.cz/usr/brandejs/unix/ http://www.abclinuxu.cz/ http://www.root.cz/ http://www.linux.cz/

Page 4: Unix – úvod

4

Úvod do UnixuÚvod do Unixu

Unix je víceuživatelský operační systém pro obecné použití, který vytváří shodné prostředí na různých hardwarových platformách

Vytvořila firma AT&TDenis Ritchie a Ken Thompson 1973Pro potřeby vývoje Unixu byl stejnými

autory vyvinut jazyk C

Page 5: Unix – úvod

5

Úvod do UnixuÚvod do Unixu

Firma AT&T byla v rámci antimonopolního řízení americké vlády nucena zříci se své počítačové divize a převedla UNIX za velmi výhodných podmínek na některé univerzity. Vznikla tak varianta BSD (Berkeley System Distribution).

V následujících letech pak vznikaly další verze Unixu, ať už založené na základech systému firmy AT&T nebo na BSD. Vznikl např. IBM AIX, HP-UX, SGI IRIX, Cray Unicos, Sun Solaris a další. Všechno to však byly operační systémy pro sálové počítače.

Page 6: Unix – úvod

6

Použitelnost UnixuPoužitelnost Unixu

Potřebujeme-li sdílet dataPropojujeme-li počítače do sítíPracujeme-li s rozlehlými databázemiPotřebujeme-li bezpečný a stabilní OSPracujeme-li na výkonnější technice,

než je PCPotřebujeme-li se orientovat na

otevřené systémy (tj. založené na standardech, snadno rozšiřitelné)

Page 7: Unix – úvod

7

Pravidla vývoje UnixuPravidla vývoje Unixu

Vývoj Unixu se od počátku řídil těmito pravidly: Psát programy, které budou dělat právě jednu

věc, a tu budou dělat dobře. Psát programy tak, aby mohly navzájem

spolupracovat. Psát programy tak, aby povely přijímaly hromadně

ze vstupu v textové podobě. Psát programy tak, aby výstupy produkovaly

v textové podobě a mohly být použity jako vstupy do programů dalších.

Page 8: Unix – úvod

8

Příčiny popularity UnixuPříčiny popularity Unixu

Systém je napsán programovacím jazykem vyšší úrovně.

Jsou dostupné zdrojové texty systému (u některých BSD variant).

Má jednoduché a zdokumentované uživatelské rozhraní.

Nabízí prostředky na budování komplexních programů z jednodušších.

Poskytuje jednoduché konzistentní rozhraní periferních zařízení.

Jednotný standard POSIX.

Page 9: Unix – úvod

9

Struktura UnixuStruktura Unixu

Vrstvy koordinující svoji činnostNejnižší – jádro (kernel) – také vrstvy:

– ovladače zařízení (drivery) – práces periferiemi

– programy pro přidělování paměti, prostředků systému a diskového prostoru

– řízení procesůSystémové programy

Page 10: Unix – úvod

10

Struktura UnixuStruktura Unixu

Page 11: Unix – úvod

11

Funkce jádra UnixuFunkce jádra Unixu

Řízení provádění procesů (vytváření, ukončení, komunikace, přístup k periferiím, ...)

Správa systému souborů (alokace, uvolňování, ochrana, udržování konzistence, ...)

Přidělování paměti, ochrana paměti, odkládání dočasně nepoužívaných dat z paměti (swapping, resp. paging)

Plánování procesů pro sdílení času CPU (plánovací algoritmus, přidělování časových kvant, priority, ...)

Page 12: Unix – úvod

12

Charakteristické rysy UnixuCharakteristické rysy Unixu

Běžící program = proces Je víceúlohový – běží více procesů současně Základní proces – interpret příkazů shell (obecný

název) – spouští se pro každého uživatele zvlášť po jeho přihlášení

Pomocí shellu uživatel spouští další uživatelské procesy

Systémové procesy se spouští zpravidla při startu systému

Démon – typ systémového procesu (většinou čeká na výskyt události, kterou ošetřuje, probouzí se tedy na základě nějaké akce, příp. periodicky)

Page 13: Unix – úvod

13

Vlastnosti UnixuVlastnosti Unixu

Unix udržuje seznam uživatelů – mají svá omezení – přístupová práva

Superuživatel – bez omezení Současně může pracovat více uživatelů –

víceuživatelský Umí využívat víceprocesorovou architekturu Velmi propracované a silné prostředky pro práci

v sítích Jde o otevřený systém – může být doplňován

komponentami od různých výrobců

Page 14: Unix – úvod

14

Uživatelské účtyUživatelské účty

Zavedeny z důvodů ochrany systému a dat mezi uživateli

Jsou jimi definována přístupová právak prostředkům systému

Účet zřizuje administrátor Obnáší mj.: uživatelské jméno, heslo, plné

jméno, uživatelské číslo, domovský adresář, soubor .profile, volbu shellu a poštovní schránku

Page 15: Unix – úvod

15

Práce v OS UnixPráce v OS Unix

Je třeba mít vytvořený účet na počítači (serveru) s Unixem

Se systémem se pracuje na dálku, pomocí emulátoru terminálu (např. putty).

Pro přihlášení uživatele je třeba zadat adresu serveru, např. akela.mendelu.cz.

Page 16: Unix – úvod

16

Přihlášení do systémuPřihlášení do systému

Jde o identifikaci uživatelů systémuPrvní je výzva login: – zadáme

uživatelské jménoDalší dotaz je na heslo password:Heslo se neopisuje na obrazovkuJe-li přihlášení v souladu s tabulkou

oprávněných uživatelů – definuje se prostředí

Page 17: Unix – úvod

17

Změna heslaZměna hesla

Příkazem passwd

Na nejvýznamnějších Unixových serverech MENDELU jsou login a heslo synchronizovány s UIS, heslo se proto mění pomocí UIS:

– https://is.mendelu.cz/auth/system/zmena_hesla.pl

Page 18: Unix – úvod

18

Definice prostředí (po přihlášení)Definice prostředí (po přihlášení)

Stanovení domovského adresářeJeho nastavení jako aktuálníhoDefinice přístupových práv

k souborům, adresářům a ostatním prostředkům systému

Aktivace shellu – první je spuštění souborů /etc/.profile a .profile

Page 19: Unix – úvod

19

Příkazový interpret – shellPříkazový interpret – shell

Program, který zabezpečuje komunikacis uživatelem.

Vytváří příkazový řádek, kterému předchází systémová výzva (odezva, prompt).

Na příkaz. řádek píšeme příkazy včetně případných přepínačů a parametrů, odesíláme klávesou Enter.

Shell je buď schopen příkaz splnit sám (interní příkazy), nebo spustí jiný program (externí příkaz).

Page 20: Unix – úvod

20

Ukončení práceUkončení práce

Příkazem exitZměnou uživatelské identifikace

– příkazem login – dojde k ukončení činnosti a přechodu na jiného uživatelesyntaxe: login [username]

– příkazem su – spustí subshell s novým uživatelem, po jeho ukončení – návratk původnímu uživatelisyntaxe: su [-] [username]

Page 21: Unix – úvod

21

Volba hesla – zásadyVolba hesla – zásady

Jako heslo nepoužívat login! Jako heslo nepoužívat žádné slovo, které by mělo

souvislost s Vaší osobou či s Vaší prací (křestní jména, zdrobněliny, název pracovního úkolu, telefonní číslo).

Nepoužívat smysluplná slova, vhodné je proto použít alespoň jeden nepísmenný znak.

Na různých počítačích u různých služeb používat různá hesla.

Heslo nezaznamenávat na papír, uživatel si je musí pamatovat.

Hesla přiměřeně často měnit.

Page 22: Unix – úvod

22

Volba hesla – zásadyVolba hesla – zásady

Nepoužívat písmena „y“ a „z“ Možné postupy vytvoření hesla:

– vybrat si nějakou říkanku a použít první (poslední) písmena slov, popř. doplnit o nějaký nepísmenný znak. Např. z písničky„Běží liška k Táboru, nese pytel zázvoru“ lze vytvořit heslo BlkTnpz

– z dvojice (trojice) souvisejících slov vybrat první (poslední) slabiky a spojit je nějakým nepísmenovým znakem. Např. ze spojení Hloupé počítače lze vytvořit heslo Hlou*po

– další…

Page 23: Unix – úvod

23

Nápověda v UnixuNápověda v Unixu

Sestává se z textových souborů popisujících jednotlivá hesla

Jsou v adresáři /usr/man (většinou)Zpřístupnění příkazem mansyntaxe: man [nastavení] [sekce] hesloNěkdy také příkazy toolman, usage, help

Page 24: Unix – úvod

24

Formát příkazů v UnixuFormát příkazů v Unixu

Jednoduchý příkaz – znamená provedení jedné specifikované akce

Syntaxe:

příkaz volby soubory přesměrování Volby (přepínače) většinou začínají znakem - Soubory (parametry) – jména souborů nebo

adresářů oddělená mezerou Každý příkaz vrací výstupní kód (0 = OK)

Page 25: Unix – úvod

25

Zástupné znakyZástupné znaky

Mohou se používat u jmen souborů, zpravidla když chceme najednou pojmenovat více souborů (např. za účelem jejich zkopírování, smazání apod.)

* zastupuje libovolné množství libovolných znaků (tzn. i žádný) ? zastupuje právě jeden libovolný znak Závorky [ ] reprezentují právě jeden znak z množiny

povolených. V závorkách uvádíme seznam povolených znaků – jsou buď zapsány za sebou, nebo odděleny pomlčkou, pak se berou všechny znaky mezi krajními hodnotami.– Např. d[0-9A-Za-z]_?.* reprezentuje všechny

soubory/adresáře, které mají v názvu první písmeno „d“, druhý znak je písmeno nebo číslice, třetí znak je podtržítko, čtvrtý znak je libovolný, pátý znak je tečka a zbytek názvu tvoří libovolné množství (včetně 0) libovolných znaků.

Použitím zástupných znaků vzniká tzv. maska názvu souboru.

Page 26: Unix – úvod

26

Zástupné znakyZástupné znaky

Příklad: které názvy souborů odpovídají masce u?*[ly].txt?1. ukol.txt

2. ukoly.txt

3. uzmenebavichoditdoskoly.text

4. uly.txt

5. kuly.txt

6. ully.txt

Řešení: 1, 2, 4, 6

Page 27: Unix – úvod

27

Zástupné znakyZástupné znaky

Příklad: které názvy souborů odpovídají masce [0-9a-f]?[0-9a-f]*?1. abcd

2. a_b_c_d

3. 9_Ab.pdf

4. 5:h.txt

5. c.c

Řešení: 1, 2, 5

Page 28: Unix – úvod

28

Zástupné znakyZástupné znaky

Příklad: kterým maskám odpovídá název souboru Moje_nove_auto.jpg?1. *_????*_*2. ?[a-nr-z]*.jpg3. ?*[a-nr-z]*.jpg4. *t?[:.,]*5. *.*6. *

Řešení: 1, 3, 4, 5, 6

Page 29: Unix – úvod

29

PřesměrováníPřesměrování

Ze standardního vstupu/výstupu jinam nežli na terminál

Přesměrování výstupu – >souborPokud soubor, do kterého provádíme

přesměrování neexistuje – vytvoří se, pokud existuje – přepíše se

S připojením na konec souboru, pokud existuje – >>soubor

Přesměrování vstupu – <soubor

Page 30: Unix – úvod

30

Složené příkazy 1/4Složené příkazy 1/4

Vznikají kombinováním jednoduchých příkazů za pomoci operátorů

Výstupní kód je roven výstupnímu kódu posledního příkazu provedeného na popředí

oddělující znak ;syntaxe: příkaz1;příkaz2provede se příkaz1, po ukončení příkaz2

Page 31: Unix – úvod

31

Složené příkazy 2/4Složené příkazy 2/4

& – paralelní běhsyntaxe: příkaz1 & příkaz2

příkaz1 &Pokud je za některým příkazem

uveden &, je tento proces spuštěn na pozadí – shell nečeká na jeho dokončení a pokračuje příkazem 2

V druhé variantě se zobrazí prompt

Page 32: Unix – úvod

32

Složené příkazy 3/4Složené příkazy 3/4

| – roura (programový kanál)syntaxe: příkaz1 | příkaz2Oba příkazy jsou spuštěny paralelně

a příkaz1 předává standardní výstup na standardní vstup příkazu2

Tato roura je anonymní (viz snímek Pojmenovaná roura).

Page 33: Unix – úvod

33

Složené příkazy 4/4Složené příkazy 4/4

&&, || – konjunkce, disjunkcesyntaxe: příkaz1 && příkaz2Napřed je proveden příkaz1, skončí-li

úspěchem, provede se i příkaz2U disjunkce naopak

Page 34: Unix – úvod

34

Systém souborů 1/2Systém souborů 1/2

Soubor – datová struktura uložená na vnějším médiu

Jméno souboru – posloupnost znakůs výjimkou /

Nedoporučuje se používat znaky:

* ? “ ‘ ` \ { } # $ & | ; < > ( ) [ ]Není vhodné, aby jméno začínalo + - ~Rozlišují se velká a malá písmena

Page 35: Unix – úvod

35

Systém souborů 2/2Systém souborů 2/2

Soubory s názvem začínajícím tečkou jsou skryté, slouží zpravidla k uložení konfigurace určitých programů.

Je možné použít tečku v názvu souboru a oddělit příponu souboru pro specifikaci jeho typu – např. .c, .pdf, .java, .jpg, .avi

Adresáře – zvláštní soubory obsahující informace o jiných souborech

Page 36: Unix – úvod

36

Systém adresářůSystém adresářů

Adresáře tvoří stromovou strukturuKořen – adresář /Cesta – řetězec jmen adresářů ve

stromové struktuře, oddělené /Aktuální (pracovní) adresář – vždy

právě jeden, v něm se právě nacházíme

Absolutní cesta – od kořeneRelativní – od aktuálního adresáře

Page 37: Unix – úvod

37

Adresáře – pojmyAdresáře – pojmy

Pracovní adresář (working directory) = adresář, ve kterém se uživatel momentálně nachází, označuje se .

Rodičovský (nadřízený) adresář (parent directory): adresář o jednu úroveň výše směrem k pracovnímu adresáři, označuje se ..

Domovský adresář (home directory) – adresář nastavený uživatelům po přihlášení do systému, pro každého uživatele jeden s příslušnými přístupovými právy – značení ~

Kořenový adresář (root directory) = počátek struktury systému souborů, vrchol stromu, domovský adresář superuživatele (roota) – značení /

Page 38: Unix – úvod

38

Práce s adresářiPráce s adresáři

cd – příkaz pro změnu aktuálního adresáře

syntaxe: cd [adresář]bez parametru – nastaví domovský

adresář jako aktuálnípwd – výpis jména aktuálního

adresáře

Page 39: Unix – úvod

39

Tvorba a rušení adresářůTvorba a rušení adresářů

mkdir – vytvoření adresářesyntaxe: mkdir [-p] jménormdir – zrušení adresářesyntaxe: rmdir [-p] jménoRušený adresář musí být prázdný

– lze specifikovat i více jmen adresářů– -p znamená vytvoření (zrušení jsou-li

prázdné) mezilehlých adresářů

Page 40: Unix – úvod

40

Příkaz lsPříkaz ls

ls – vypsání obsahu adresáře syntaxe: ls [-laCRF] [adresář, soubor nebo

maska]

-l podrobný výpis atributů souboru

-a vypisuje i skryté soubory

-C výpis do sloupců

-R výpis i podadresářů

-F za jménem adresáře je uveden znak /, za spustitelným souborem *

Page 41: Unix – úvod

41

Podrobný výpis atributů souboru Podrobný výpis atributů souboru -rwxr-x--x 1 novak group 59 Jun 12 13:08 .profile První znak udává typ souboru

– obyčejný soubord adresářp pojmenovaná roural symbolický linkb speciální soubor blokového zařízení

• jsou charakterizovány náhodným přístupem k datům, určitou velikostí bloků přenášených dat, existencí vyrovnávacích pamětí v jádře OS pro práci s těmito zařízeními, příklady: příklad: HDD, FDD

c speciální soubor znakového zařízení• komunikace s těmito zařízeními probíhá po jednotlivých

znacích, bez použití vyrovnávacích pamětí, příkladem jsou terminály, tiskárny, modemy, klávesnice

Page 42: Unix – úvod

42

Podrobný výpis atributů souboru 2Podrobný výpis atributů souboru 2

-rwxr-x--x 1 novak group 59 Jun 12 13:08 .profile

Následují tři trojice přístupových práv – pro vlastníka, skupinu, ostatní uživatele– znaky v trojici

r čtení souboru povoleno (read)

w zápis do souboru povolen (write)

x spouštění souboru povoleno (execute)

– pokud není některé právo přiděleno, vyskytuje se -

Page 43: Unix – úvod

43

Podrobný výpis atributů souboru 3Podrobný výpis atributů souboru 3

– Pokud jde o adresář a ne soubor, znaky znamenají

r právo adresář číst a získat z něj informace o souborech

w právo tvořit a rušit soubory v adresáři

x právo procházet adresářem – dostat se na podadresáře

Page 44: Unix – úvod

44

Podrobný výpis atributů souboru 4Podrobný výpis atributů souboru 4

-rwxr-x--x 1 novak group 59 Jun 12 13:08 .profile

Druhá položka říká, kolik existuje vazeb na soubor (hardlinků)

Třetí a čtvrtá položka určují vlastníka a skupinu souboru

Pátá položka je velikost souboru ve slabikách (bajtech)

6. a 7. – datum a čas poslední změny 8. jméno souboru

Page 45: Unix – úvod

45

Pojmenovaná rouraPojmenovaná roura

Vytvoření:mknod název typ, např. mknod abc pnebomkfifo název, např. mkfifo abc

Použití – vstup: ls > abc &

Použití – výstup: sort < abc

Page 46: Unix – úvod

46

Příkazy pro práci se souboryPříkazy pro práci se soubory

file – vypisuje informaci o typu souboru syntaxe: file soubor

cat – spojování a výpis souborů syntaxe: cat [-svt] [-] [soubory] [>vystup]

-s nevypisuje chybová hlášení, pokud chybí soubory

-vt vypisuje netisknutelné znaky jako ^X

- bere znaky ze standardního vstupu

Page 47: Unix – úvod

47

Příkaz cpPříkaz cp

cp – kopírování souborůsyntaxe: cp soubor1 soubor2

cp soubor adresářcp – kopírování adresářů včetně

podstrukturysyntaxe: cp -r ZdrojAdr CílAdr

Page 48: Unix – úvod

48

Příkaz mvPříkaz mv

mv – přemístění a/nebo přejmenování souborů

syntaxe:mv soubor1 soubor2

mv soubor cesta

mv soubor1 adresář/soubor2

Page 49: Unix – úvod

49

Příkaz rmPříkaz rm

rm – odstranění souborů z adresářesyntaxe: rm [-irf] soubor…|adresář...

-i každé vymazání musí být potvrzeno uživatelem

-f potlačí dotazy při mazání

-r je-li parametrem adresář, je vymazán celý

podstrom

Page 50: Unix – úvod

50

Příkazy pg, morePříkazy pg, morepg, more – výpis souborů po

obrazovkáchsyntaxe: pg soubor

příkaz | pg

more soubor

příkaz | morevždy vypíší obrazovku a čekají povel

k akci (mezerník, Enter, q)

Page 51: Unix – úvod

51

Příkaz find 1/4Příkaz find 1/4

find – vyhledání souborů na diskusyntaxe: find adresář… kritéria…kritéria

-name jménonalezení souboru dle jména, lze použít znaky *, ?,

[]

-user jménohledá se soubor, jehož vlastníkem je uživatel

jméno

Page 52: Unix – úvod

52

Příkaz find 2/4Příkaz find 2/4

-group jménovyhledání souboru podle jména skupiny

-type [f|d|b|l|c]vyhledání souboru podle typu

- newer souborhledá soubory s časem poslední modifikace novějším, než má soubor

Page 53: Unix – úvod

53

Příkaz find 3/4Příkaz find 3/4

-size [+/–] n[c]vyhledá soubory o velikosti (+ min., - max.) n bloků (512 B) nebo n bytů [c]

-links [+/–] nvyhledá soubory se specifikovaným počtem(+ min., – max.) linků (odkazů)

-mtime [+/–] nvyhledá soubory, které byly před n dny(+ min., – max.) modifikovány

Page 54: Unix – úvod

54

Příkaz find 4/4Příkaz find 4/4

současné uvedení více kriterií – konjunkce

kriterium1 -o kriterium2 vyjadřuje alternativu

Page 55: Unix – úvod

55

Příkaz grepPříkaz grepgrep – vyhledání řetězců v textusyntaxe: grep [-in] „vzor“ soubor…

příkaz | grep [-in] „vzor“-i ignoruje rozdíl mezi velkými a malými

písmeny

-n vypisuje čísla řádků

Page 56: Unix – úvod

56

Příkaz grepPříkaz grepvzor – metaznaky

^ začátek řádku

$ konec řádku

. libovolný znak

* 0, 1, … opakování předchozího znaku

[abc] jeden z z uvedených znaků, je-li na začátku ^, pak negace

– pokud má být uveden metaznak jako součást řetězce – použijeme před ním \

Page 57: Unix – úvod

57

Příkaz lnPříkaz ln

ln – tvorba odkazu na soubor či adresář

syntaxe: ln [-s] soubor link-s značí vytvoření

symbolického linku

soubor jméno souboru

link jméno linku (vazby)

Page 58: Unix – úvod

58

Tvrdý odkaz (hardlink)Tvrdý odkaz (hardlink)

Situace: vytvořili jsme soubor „jméno1“

ln jméno1 jméno3

rm jméno1

Page 59: Unix – úvod

59

Symbolický odkaz („symlink“)Symbolický odkaz („symlink“) Situace: máme soubor „jméno3“

ln -s jméno3 jméno9

Symbolické odkazy umožňují:Odkazy na adresářeOdkazy do jiného systému souborů (diskového oddílu)

Page 60: Unix – úvod

60

Změna přístupových právZměna přístupových práv chmod – definuje přístupová práva

k souboru nebo adresáři syntaxe: chmod [u|g|o|a] [+|-|=] [r|w|x]

soubornebo: chmod ugo soubor

kategorie uživatelů:u vlastníkg skupinao ostatnía všichni

Page 61: Unix – úvod

61

chmodchmod

operace:+ přidání– odebrání= nastavení

typ práva:r čteníw zápisx vykonávání

Page 62: Unix – úvod

62

chmod – příkladychmod – příklady

Skupině přidáme právo ke čtení a spuštění souboru run:– chmod g+rx run

Uživateli (vlastníkovi) nastavíme práva ke čtení a zápisu k souboru kalkulace.pdf (pokud měl původně i právo x, bude odebráno):– chmod u=rw kalkulace.pdf

Skupině a ostatním odebereme právok zápisu do souboru log.txt:– chmod go–w log.txt

Page 63: Unix – úvod

63

chmod – druhý způsobchmod – druhý způsob

ugo – zadání přístupových právv oktalovém tvaru (3místným číslem)

u práva pro vlastníka

g práva pro skupinu

o práva pro ostatní– u práv znamená

4 čtení

2 zápis

1 vykonání

Page 64: Unix – úvod

64

chmod – příkladychmod – příklady

Příkaz chmod 644 soubor nastaví práva rw-r--r--

Příkaz chmod 755 soubor nastaví práva rwxr-xr-x

Příkaz chmod 600 soubor nastaví práva rw-------

Příkaz chmod 711 soubor nastaví práva rwx--x--x

Page 65: Unix – úvod

65

ProcesyProcesy Proces = běžící program Procesy jsou nezávislé a mohou probíhat paralelně (každý má

jednoznačné číslo – PID, definovaná práva podle toho, kdo jej spustil, a vlastní data)

Procesy mohou vzájemně komunikovat pomocí zasílání signálů (mají svá čísla – ty signály i ty procesy :-). Signály slouží dvěma hlavním účelům

– uvědomit proces, že nastala určitá událost,

– přinutit proces vykonat funkci na zpracování signálu (signal handler).

Proces může v případě potřeby vytvořit další podprocesy Jednojádrový procesor počítače může být samozřejmě

v daném okamžiku využíván jen jedním procesem, (pseudo)paralelní běh procesů je zajištěn střídáním přístupu k procesoru. Správu procesů zajišťuje speciální proces – správce procesů.

Page 66: Unix – úvod

66

ProcesyProcesy

Neustále dochází k předávání řízení mezi jádrem a běžícími procesy.

Jedním z procesů je příkazový interpret (shell), sloužící pro komunikaci uživatele se systémem.

Každý uživatelský proces může být spuštěn pouze z jiného procesu rodičovský a dceřinný proces.

Proces spuštěný z příkazového řádku je spuštěn shellem.

Každý proces je spuštěn s nějakou prioritou – předností při využívání procesoru.

Page 67: Unix – úvod

67

Procesy a programová vláknaProcesy a programová vlákna

Proces je spuštěný program– Každý proces má přidělené jednoznačné číslo PID

– Každý proces má svého rodiče a zná ho pod číslem PPID

Vlákno (Thread) je spuštěný podprogram v rámci procesu. Proces tvořený více vlákny může být vykonáván na více procesorech současně (klasický jednovláknový proces pouze na jednom).

Cílem rozdělení procesu do vláken je zkrácení doby zpracování procesu. Rozdělení provádí programátor při psaní programu výběrem částí, které jsou na sobě nezávislé a mohou tudíž pracovat současně. Je třeba použít programovací jazyk, který tvorbu vláken umožňuje – např. Java.

Vytvoření nového vlákna v procesu je mnohem rychlejší než vytvoření nového procesu.

Page 68: Unix – úvod

68

psps

ps – vypsání stavu procesůsyntaxe: ps [-aefl]volby:

-a vypíše procesy všech uživatelů v systému

-e vypíše všechny procesy v systému

-f podrobná forma výpisu

-l jiný podrobný výpis

Page 69: Unix – úvod

69

psps

Vypisované údaje:UID uživatelský kód vlastníka procesu

PID identifikační číslo procesu

PPID identifikační číslo rodiče procesu

NI,PRI priorita

TIME čas procesoru spotřebovaný procesem

CMD příkaz, kterým byl proces aktivován

Page 70: Unix – úvod

70

Signály, rušení procesůSignály, rušení procesů

Uživatel může pomocí příkazu kill předat některému svému procesu signál (specifické oznámení nebo požadavek).V okamžiku, kdy proces obdrží signál, přeruší provádění posloupnosti instrukcí a provede například jednuz následujících akcí:

– exit – zrušení procesu,

– core – zrušení procesu a uložení obsahu jeho paměti do souboru s názvem core (využívá se pro analyzování chyb),

– ignore – ignorování signálu,

– stop – pozastavení procesu,

– continue – pokračování pozastaveného procesu. Proces má definovánu vlastní funkci na zpracování signálu

(signal handler)

Page 71: Unix – úvod

71

Signály, rušení procesůSignály, rušení procesů

Speciální postavení má signál číslo 9 (SIGKILL), který vždy ukončí běh programu. Počet a význam jednotlivých signálů závisí na konkrétní implementaci Unixu. Nejčastější signály jsou následující:

– SIGHUP 1 většinou se procesy po tomto signálu restartují a znovu načtou konfigurační soubory,

– SIGINT 2 obvykle ukončení procesu,

– SIGQUIT 3 ukončení procesu včetně vypsání mapy paměti,

– SIGKILL 9 okamžité ukončení procesu, operaci nelze změnit,

– SIGTERM 15 standardní požadavek na ukončení procesu,

– SIGSTOP 17 zastavení (suspend) procesu, operaci nelze změnit,

– SIGTSTP 18 zastavení procesu po signálu z klávesnice. Bližší informace: http://en.wikipedia.org/wiki/Signal_(computing)

Page 72: Unix – úvod

72

Signály, rušení procesůSignály, rušení procesů

Signály nemusí být posílány pouze prostřednictvím jiného procesu (např. procesu kill), některé lze odeslat procesu na popředí následujícími kombinacemi kláves:

– ^C SIGINT obvykle se používá pro ukončení procesu,

– ^\ SIGQUIT obvykle se používá na ukončení procesu, vypíše se mapa paměti do souboru core,

– ^Z SIGTSTP suspend – pozastavení běhu procesu (obnovení běhu signál SIGCONT),

– ^Y SIGTSTP opožděný suspend – signál se pošle procesu až v okamžiku jeho požadavků o čteníz klávesnice,

Page 73: Unix – úvod

73

jobs, bg, fgjobs, bg, fg

jobs – příkaz pro výpis spuštěných úloh

Každá úloha má přidělené číslo, na které se lze odkazovat v příkazech bg a fg

Úlohu pozastavenou pomocí ^Z lze spustit na pozadí pomocí příkazu bg nebo na popředí příkazem fg.

Page 74: Unix – úvod

74

killkill

kill – příkaz k odeslání signálu zvolenému procesu. Používá se především k ukončení procesu.

syntaxe: kill [-sig] PID...-sig Signál posílaný procesu.

Buď číslo (9), nebo jménem (TERM).

PID číslo procesu (process identifier)

je-li zadáno číslo 0, pak je zaslán všem potomkům shellu

Page 75: Unix – úvod

75

Page 76: Unix – úvod

76

Priorita procesůPriorita procesů

Priorita procesu:

– celé číslo z pevně daného intervalu, které určuje přednost procesu v přístupu k prostředkům (např. CPU),

– je nastaveno systémem před spuštěním procesu, lze změnit i za běhu procesu,

– nižší číslo znamená vyšší prioritu. Priorita:

– statická: bývá obyčejně v průběhu běhu programu konstantní, stanoví se před zařazením procesu do fronty,

– dynamická: odvozena od statické, ale v průběhu běhu programu se mění, neboť plánovač procesů ji snižujeu běžících procesů,

– výsledek: vybírá se proces s nejvyšší dynamickou prioritou.

Page 77: Unix – úvod

77

Příkaz nicePříkaz nice

nice – změna statické priority procesu (při jeho spuštění)

syntaxe: nice [-číslo] příkaz

-číslo o kolik má být priorita snížena.

Superuživatel (root) může i zvýšit (zadá záporné číslo).

Interval změny: 0–39, implicitně 10.

Page 78: Unix – úvod

78

Příkaz renicePříkaz renice

renice – změna statické priority běžícího procesu

syntaxe: renice [číslo] PID

číslo nová priorita

Page 79: Unix – úvod

79

Příkaz nohupPříkaz nohup

nohup – vytvoří proces, který bude pokračovat v práci i po odhlášení uživatele (tzn. nebude zrušen po zrušení jeho rodičovského procesu)

syntaxe: nohup příkaz &

Page 80: Unix – úvod

80

Příkaz timePříkaz time

time – zobrazí čas procesoru spotřebovaný procesemv uživatelské fázi (instrukce programu), systémové fázi (služby jádra) a celkový (reálný) čas, po který byl příkaz zpracováván

syntaxe: time příkaz

Page 81: Unix – úvod

81

whowho

who – seznam přihlášených uživatelůsyntaxe: who

who am Ivypisuje jméno uživatele, terminál na

kterém se přihlásil a čas přihlášenílze vypsat i jiné údajeúdaje bere ze souboru /etc/utmp

(/etc/wtmp za delší dobu)

Page 82: Unix – úvod

82

fingerfinger

finger – identifikace uživatelů pracujících na serveru

syntaxe: fingerfinger uživatelfinger @serverfinger uživatel@server

Vypíše informaci o uživatelích na lokálním i vzdáleném uzlu

Page 83: Unix – úvod

83

fingerfinger

Vypisuje– uživatelské jméno– občanské jméno a příjmení– terminál– datum a čas přihlášení– informace ze souboru .plan (např.

adresa, telefon, ...)– informace ze souboru .project (na

čem uživatel pracuje)

Page 84: Unix – úvod

84

Elektronická poštaElektronická pošta

Přirozená součást UNIXu.Účet každého uživatele automaticky

zahrnuje e-mailovou adresu a schránku.

Programy (poštovní klienti): pine, elm, mutt

Page 85: Unix – úvod

85

Systémové proměnné 1/2Systémové proměnné 1/2

HOME – cesta do domovského adresáře

SHELL – cesta k příkazovému procesoru

USER – jméno uživatelova účtu

PATH – seznam adresářů, ve kterých se automaticky hledají programy ke spuštění

PWD – absolutní cesta do pracovního adresáře

OLDPWD – absolutní cesta do pracovního adresáře

Výpis obsahu proměnné: echo $proměnná

Například: echo $PATH

Page 86: Unix – úvod

86

Systémové proměnné 2/2Systémové proměnné 2/2

– Výpis obsahu všech proměnných najednou – příkaz env nebo set

– Nastavení obsahu proměnné:– set proměnná=obsah nebo– env proměnná=obsah nebo– setenv proměnná=obsah– (Konkrétní příkaz záleží na shellu.)