Obsah přednášky Unix úvod 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é 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/ 3 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 4 Ú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. 5 Použitelnost Unixu 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
Pravidla 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. 7 Příč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. 8 Struktura Unixu 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 10 Funkce jádra Unixu 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
Vlastnosti 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ů 13 Uživatelské účty 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 14 Prá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. 15 Přihlášení do systému Jde o identifikaci uživatelů systému První je výzva login: zadáme uživatelské jméno Další dotaz je na heslo password: Heslo se neopisuje na obrazovku Je-li přihlášení v souladu s tabulkou oprávněných uživatelů definuje se prostředí 16 Změ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 Definice prostředí (po přihlášení) 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 17 18 3
Příkazový interpret shell 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). 19 Ukončení práce 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] 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. 21 Volba 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ší 22 Ná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 man syntaxe: man [nastavení] [sekce] heslo Někdy také příkazy toolman, usage, help 23 Formá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) 24 4
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ů. Použitím zástupných znaků vzniká tzv. maska názvu souboru. 25 Zá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 26 Zá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 27 Zástupné znaky Příklad: kterým maskám odpovídá název souboru Moje_nove_auto.jpg? 1. *_????*_* 2.?[a-nr-z]*.jpg 3.?*[a-nr-z]*.jpg 4. *t?[:.,]* 5. *.* 6. * Řešení: 1, 3, 4, 5, 6 28 Přesměrování 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 Slož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říkaz2 provede se příkaz1, po ukončení příkaz2 30 5
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 31 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). 32 Složené příkazy 4/4 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 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 souborů 2/2 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
Adresář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í / 37 Prá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 38 Tvorba a rušení adresářů Příkaz ls 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 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 * 40 Podrobný výpis atributů souboru Podrobný výpis atributů souboru 2 -rwxr-x--x 1 novak group 59 Jun 12 13:08.profile První znak udává typ souboru -rwxr-x--x 1 novak group 59 Jun 12 13:08.profile obyčejný soubor Následují tři trojice přístupových práv d adresář pro vlastníka, skupinu, ostatní uživatele p pojmenovaná roura l symbolický link znaky v trojici b speciální soubor blokového zařízení r čtení souboru povoleno (read) jsou charakterizovány náhodným přístupem k datům, w zápis do souboru povolen (write) 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 x spouštění souboru povoleno (execute) c zařízeními, příklady: příklad: HDD, FDD pokud není některé právo přiděleno, vyskytuje speciální soubor znakového zařízení se - 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 42 7
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 43 -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 44 Pojmenovaná roura 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 45 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 46 Příkaz cp 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 Příkaz mv 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
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 49 Příkazy pg, more 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) 50 Příkaz find 1/4 find vyhledání souborů na disku syntaxe: find adresář kritéria kritéria -name jméno nalezení souboru dle jména, lze použít znaky *,?, [] -user jméno hledá se soubor, jehož vlastníkem je uživatel jméno 51 Příkaz find 2/4 -group jméno vyhledání souboru podle jména skupiny -type [f d b l c] vyhledání souboru podle typu - newer soubor hledá soubory s časem poslední modifikace novějším, než má soubor 52 Příkaz find 3/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ů) -mtime [+/ ] n vyhledá soubory, které byly před n dny (+ min., max.) modifikovány 53 Příkaz find 4/4 současné uvedení více kriterií konjunkce kriterium1 -o kriterium2 vyjadřuje alternativu 54 9
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ů 55 Příkaz grep 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 \ 56 Pří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) Tvrdý odkaz (hardlink) Situace: vytvořili jsme soubor jméno1 ln jméno1 jméno3 rm jméno1 57 58 Symbolický odkaz ( symlink ) Změna přístupových práv Situace: máme soubor jméno3 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 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 60 10
chmod operace: + přidání odebrání = nastavení typ práva: r čtení w zápis x vykonávání 61 chmod 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ávo k zápisu do souboru log.txt: chmod go w log.txt 62 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í 63 chmod 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 64 Procesy 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
Procesy a programová vlákna ps 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 ps vypsání stavu procesů syntaxe: ps [-aefl] 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 68 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 ps 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 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, 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, SIGTERM15 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) 71 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, 72 12
jobs, 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. 73 kill 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 74 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žuje u běžících procesů, výsledek: vybírá se proces s nejvyšší dynamickou 75 prioritou. 76 Pří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. Příkaz renice renice změna statické priority běžícího procesu syntaxe: renice [číslo] PID číslo nová priorita 77 78 13
Pří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 & Příkaz time 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 80 who 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) 81 finger 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 82 finger Elektronická pošta 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) 83 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 84 14
Systé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 85 Systé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.) 86 15