Unix – úvod
description
Transcript of Unix – úvod
Unix – úvodUnix – ú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é
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/
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
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.
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é)
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.
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.
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
10
Struktura UnixuStruktura Unixu
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, ...)
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)
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ů
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
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.
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í
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
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
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).
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]
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.
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ší…
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
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)
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.
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
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
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
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
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
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
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).
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
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
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
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
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í /
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
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ářů
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 *
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
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 -
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
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
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
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
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
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
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
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)
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
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
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
54
Příkaz find 4/4Příkaz find 4/4
současné uvedení více kriterií – konjunkce
kriterium1 -o kriterium2 vyjadřuje alternativu
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ů
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 \
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)
58
Tvrdý odkaz (hardlink)Tvrdý odkaz (hardlink)
Situace: vytvořili jsme soubor „jméno1“
ln jméno1 jméno3
rm jméno1
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)
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
61
chmodchmod
operace:+ přidání– odebrání= nastavení
typ práva:r čteníw zápisx vykonávání
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
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í
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
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ů.
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.
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.
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
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
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)
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)
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,
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.
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
75
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.
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.
78
Příkaz renicePříkaz renice
renice – změna statické priority běžícího procesu
syntaxe: renice [číslo] PID
číslo nová priorita
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 &
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
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)
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
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)
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
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
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.)