27.10.2011
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é
Unix – úvod
2
Literatura
Úvod do Unixu
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/
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&T Denis Ritchie a Ken Thompson 1973 Pro potřeby vývoje Unixu byl stejnými autory vyvinut jazyk C
3
Úvod do Unixu
4
Použitelnost 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. 5
Potřebujeme-li sdílet data Propojujeme-li počítače do sítí Pracujeme-li s rozlehlými databázemi Potřebujeme-li bezpečný a stabilní OS Pracujeme-li na výkonnější technice, než je PC Potřebujeme-li se orientovat na otevřené systémy (tj. založené na standardech, snadno rozšiřitelné) 6
1
27.10.2011
Pravidla vývoje Unixu
Příčiny popularity 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. 7
Struktura 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. 8
Struktura Unixu
Vrstvy koordinující svoji činnost Nejnižší – jádro (kernel) – také vrstvy: – ovladače zařízení (drivery) – práce s periferiemi – programy pro přidělování paměti, prostředků systému a diskového prostoru – řízení procesů
Systémové programy 9
Funkce jádra Unixu
10
Charakteristické rysy 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, ...) 11
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) 12
2
27.10.2011
Vlastnosti Unixu
Uživatelské účty
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ů
Zavedeny z důvodů ochrany systému a dat mezi uživateli Jsou jimi definována přístupová práva k 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
13
Práce v OS Unix
14
Přihlášení do systému
Je třeba mít vytvořený účet na počítači (serveru) s Unixem
Jde o identifikaci uživatelů systému První je výzva login: – zadáme uživatelské jméno
Se systémem se pracuje na dálku, pomocí emulátoru terminálu (např. putty).
Další dotaz je na heslo password:
Pro přihlášení uživatele je třeba zadat adresu serveru, např. akela.mendelu.cz.
Heslo se neopisuje na obrazovku Je-li přihlášení v souladu s tabulkou oprávněných uživatelů – definuje se prostředí
15
Změna hesla
16
Definice prostředí (po přihlášení)
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 17
Stanovení domovského adresáře Jeho nastavení jako aktuálního Definice 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 18
3
27.10.2011
Příkazový interpret – shell
Ukončení práce
Program, který zabezpečuje komunikaci s 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).
Příkazem exit Změnou uživatelské identifikace – příkazem login – dojde k ukončení činnosti a přechodu na jiného uživatele syntaxe: login [username] – příkazem su – spustí subshell s novým uživatelem, po jeho ukončení – návrat k původnímu uživateli syntaxe: su [-] [username]
19
Volba hesla – zásady
20
Volba 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.
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ší…
21
Nápověda v Unixu
22
Formát příkazů 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 man syntaxe: man [nastavení] [sekce] heslo Někdy také příkazy toolman, usage, help
23
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) 24
4
27.10.2011
Zástupné znaky
Zá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ů.
Příklad: které názvy souborů odpovídají masce u?*[ly].txt? 1. 2. 3. 4. 5. 6.
ukol.txt ukoly.txt uzmenebavichoditdoskoly.text uly.txt kuly.txt ully.txt
Řešení: 1, 2, 4, 6
Použitím zástupných znaků vzniká tzv. maska názvu souboru. 25
Zástupné znaky
26
Zástupné znaky
Příklad: které názvy souborů odpovídají masce [0-9a-f]?[0-9a-f]*?
Příklad: kterým maskám odpovídá název souboru Moje_nove_auto.jpg?
1. 2. 3. 4. 5.
1. 2. 3. 4. 5. 6.
abcd a_b_c_d 9_Ab.pdf 5:h.txt c.c
Řešení: 1, 2, 5
*_????*_* ?[a-nr-z]*.jpg ?*[a-nr-z]*.jpg *t?[:.,]* *.* *
Řešení: 1, 3, 4, 5, 6 27
Přesměrování
28
Složené příkazy 1/4
Ze standardního vstupu/výstupu jinam nežli na terminál Přesměrování výstupu – >soubor Pokud 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 29
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říkaz2 provede se příkaz1, po ukončení příkaz2 30
5
27.10.2011
Složené příkazy 2/4
Složené příkazy 3/4
& – paralelní běh syntaxe: 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
| – roura (programový kanál) syntaxe: příkaz1 | příkaz2 Oba 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).
31
Složené příkazy 4/4
32
Systém souborů 1/2
&&, || – konjunkce, disjunkce syntaxe: příkaz1 && příkaz2 Napřed je proveden příkaz1, skončí-li úspěchem, provede se i příkaz2 U disjunkce naopak
33
Systém souborů 2/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 34
Systém adresářů
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 35
Adresáře tvoří stromovou strukturu Koř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řene Relativní – od aktuálního adresáře 36
6
27.10.2011
Adresáře – pojmy
Práce s adresáři
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í /
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
37
Tvorba a rušení adresářů
38
Pří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 *
mkdir – vytvoření adresáře syntaxe: mkdir [-p] jméno rmdir – zrušení adresáře syntaxe: rmdir [-p] jméno Ruš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ářů 39
Podrobný výpis atributů souboru
40
Podrobný výpis atributů souboru 2
-rwxr-x--x 1 novak group 59 Jun 12 13:08 .profile
První znak udává typ souboru – d p l b
obyčejný soubor adresář pojmenovaná roura symbolický link 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 41
-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 42
7
27.10.2011
Podrobný výpis atributů souboru 3
Podrobný výpis atributů souboru 4
– 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
-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 43
Pojmenovaná roura
44
Příkazy pro práci se soubory
Vytvoření: mknod název typ, např. mknod abc p nebo mkfifo název, např. mkfifo abc Použití – vstup: ls > abc & Použití – výstup: sort < abc
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
45
Příkaz cp
46
Příkaz mv
cp – kopírování souborů syntaxe: cp soubor1 soubor2 cp soubor adresář cp – kopírování adresářů včetně podstruktury syntaxe: cp -r ZdrojAdr CílAdr
mv – přemístění a/nebo přejmenování souborů syntaxe: mv soubor1 soubor2 mv soubor cesta mv soubor1 adresář/soubor2
47
48
8
27.10.2011
Příkazy pg, more
Příkaz rm rm – odstranění souborů z adresáře syntaxe: 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
pg, more – výpis souborů po obrazovkách syntaxe: pg soubor příkaz | pg more soubor příkaz | more vždy vypíší obrazovku a čekají povel k akci (mezerník, Enter, q)
49
Příkaz find 1/4
50
Příkaz find 2/4 -group jméno
find – vyhledání souborů na disku syntaxe: find adresář… kritéria… kritéria
vyhledání souboru podle jména skupiny
-type [f|d|b|l|c] vyhledání souboru podle typu
-name jméno nalezení souboru dle jména, lze použít znaky *, ?, []
- newer soubor hledá soubory s časem poslední modifikace novějším, než má soubor
-user jméno hledá se soubor, jehož vlastníkem je uživatel jméno 51
Příkaz find 3/4
52
Příkaz find 4/4
-size [+/–] n[c] vyhledá soubory o velikosti (+ min., - max.) n bloků (512 B) nebo n bytů [c]
-links [+/–] n vyhledá soubory se specifikovaným počtem (+ min., – max.) linků (odkazů)
současné uvedení více kriterií – konjunkce kriterium1 -o kriterium2 vyjadřuje alternativu
-mtime [+/–] n vyhledá soubory, které byly před n dny (+ min., – max.) modifikovány 53
54
9
27.10.2011
Příkaz grep
Příkaz grep
grep – vyhledání řetězců v textu syntaxe: 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ů
vzor – 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 \
55
56
Tvrdý odkaz (hardlink)
Příkaz ln
Situace: vytvořili jsme soubor „jméno1“
ln – tvorba odkazu na soubor či adresář syntaxe: ln [-s] soubor link
ln jméno1 jméno3
-s
značí vytvoření symbolického linku soubor jméno souboru link jméno linku (vazby)
rm jméno1
57
Symbolický odkaz („symlink“)
58
Změna přístupových práv
Situace: máme soubor „jméno3“
chmod – definuje přístupová práva k souboru nebo adresáři syntaxe: chmod [u|g|o|a] [+|-|=] [r|w|x] soubor nebo: chmod ugo soubor kategorie uživatelů: u vlastník g skupina o ostatní a všichni
ln -s jméno3 jméno9
Symbolické odkazy umožňují: Odkazy na adresáře Odkazy do jiného systému souborů (diskového oddílu) 59
60
10
27.10.2011
chmod
chmod – příklady
operace: + přidání – odebrání = nastavení typ práva: r čtení w zápis x vykonávání
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ávo k zápisu do souboru log.txt: – chmod go–w log.txt 61
chmod – druhý způsob ugo – zadání přístupových práv v 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í
62
chmod – příklady Příkaz chmod 644 práva rw-r--r-Příkaz chmod 755 práva rwxr-xr-x Příkaz chmod 600 práva rw------Příkaz chmod 711 práva rwx--x--x 63
Procesy
soubor nastaví soubor nastaví soubor nastaví soubor nastaví 64
Procesy
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ů.
65
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. 66
11
27.10.2011
Procesy 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. 67
Vypisované údaje:
CMD
ps – vypsání stavu procesů syntaxe: ps [-aefl] volby: -a -e -f -l
vypíše procesy všech uživatelů v systému vypíše všechny procesy v systému podrobná forma výpisu jiný podrobný výpis 68
Signály, rušení procesů
ps UID PID PPID NI,PRI TIME
ps
uživatelský kód vlastníka procesu identifikační číslo procesu identifikační číslo rodiče procesu priorita čas procesoru spotřebovaný procesem příkaz, kterým byl proces aktivován 69
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 jednu z 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) 70
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:
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,
– ^C SIGINT procesu,
– 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,
obvykle se používá pro ukončení
– ^\ 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,
– SIGTSTP 18 zastavení procesu po signálu z klávesnice. Bližší informace: http://en.wikipedia.org/wiki/Signal_(computing)
71
72
12
27.10.2011
jobs, bg, fg
kill
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.
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
73
74
Priorita procesů
75
Příkaz nice
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žuje u běžících procesů, – výsledek: vybírá se proces s nejvyšší dynamickou prioritou. 76
Příkaz renice
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.
77
renice – změna statické priority běžícího procesu syntaxe: renice [číslo] PID číslo nová priorita
78
13
27.10.2011
Příkaz nohup
Příkaz time
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 &
time – zobrazí čas procesoru spotřebovaný procesem v 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 79
who
80
finger
who – seznam přihlášených uživatelů syntaxe: who who am I vypisuje 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)
finger – identifikace uživatelů pracujících na serveru syntaxe: finger finger uživatel finger @server finger uživatel@server Vypíše informaci o uživatelích na lokálním i vzdáleném uzlu
81
finger 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)
82
Elektronická 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
83
84
14
27.10.2011
Systémové proměnné 1/2
Systémové proměnné 2/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
– 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.)
85
86
15