| 3. Procesy
 Procesem se v Unixu rozumi
provadeny program vcetne dat (image).
 Kazdy proces je z hlediska
uzivatele jednoznacne identifikovan
 svym identifikacnim cislem
PID (process identifier). Specialni
 systemove procesy, ktere
nenalezeji zadnemu uzivateli a resi
 ruzne systemove problemy
(napr. sdileni prostredku systemu) se
 v Unixu nazyvaji demoni (daemons).
  
 3.1 Procesy a soubory
 Proces od sveho rodicovskeho
procesu (napr. shellu) zdedi radu
 vlastnosti, mj. argumenty
a tzv. prostredi procesu a vsechny
 soubory otevrene rodicovskym
procesem. Dedenim od zakladniho
 procesu terminalu ziska kazdy
proces tri zakladni soubory.
 Tyto tri zakladni soubory
jsou otevreny jako standardni vstup,
 standardni a chybovy vystup
(obvykle pro terminal uzivatele).
 Pro tyto tri zakladni soubory
jsou pouzity deskriptory 0, 1 a 2.
 Pri interpretaci shell rozdeli
prikaz na jmeno prikazu a jeho
 argumenty. Dale hleda soubor
se jmenem prikazu. Ten se hleda
 v adresarich, ktere obsahuje
promenna shellu PATH. Je-li
 nalezeny soubor proveditelny,
je vytvoren novy proces.
 Z prikazu jsou dale pri zavadeni
programu interpretovany
 argumenty, ktere umoznuji
uzivateli presmerovat standardni
 soubory:
 <file presmerovani standardniho
vstupu do file
 >file presmerovani standardniho
vystupu do file
 >>file presmerovani standardniho
vystupu
 pripojujici vystup na konec
souboru file
 <<'slovo' here document
(data nasleduji bezprostredne
 v souboru); prenos znakove
bez nahrady
 slovo je omezovac urcujici
konec dat
 <<\slovo here document
 <<slovo here document;
provadi se nahrada $,`...`,\
 specialne pro Bourne shell:
 n>file presmerovani vystupu
s deskriptorem n
 do file (2 chybovy vystup)
 n>>file presmerovani vystupu
s deskriptorem n
 pripojujici vystup na konec
souboru file
 n>&m spojeni vystupu
s dekriptory n a m
 n<&m spojeni vstupu
s dekriptory n a m
 <&- uzavreni standardniho
vstupu
 >&- uzavreni standardniho
vystupu
 specialne pro C-shell:
 >&, >>& presmerovani
chyboveho vystupu a pripojeni
 k standardnimu vystupu (spojeni
deskriptoru)
 Tyto argumenty prikazu pak
nejsou jiz predany procesu. Oblibenym
 typem programu v Unixu je
program, ktery cte data ze standardniho
 vstupu a po zpracovani je
predava na standardni vystup. Tento typ
 programu je oznacovan jako
filtr.
 Prednost filtru se objevi
ve spojeni s dalsim mechanismem Unixu,
 kterym je odstraneni pomocnych
souboru. Tento mechanismus se
 nazyva roura (pipe) a jde
o systemovou vyrovnavaci pamet, do
 ktere jeden proces data uklada
a dalsi je z ni odebira.
 Pro oznaceni tohoto mechanismu
se pouziva oddelovace "|":
 command1 | filtr
 kde prikaz "command1" zapisuje
svuj vystup do roury, ze ktere jsou
 ctena prikazem "filtr", ktery
pak vysledky vypisuje na standardni
 vystup. Prikazy spojene rourou
se nazyvaji kolona. Kolona muze
 obsahovat nekolik clenu,
ktere si predavaji sve vysledky.
 Specialne pro C-shell lze
presmerovat do roury i chybovy vystup
 pomoci znaku oddelovace "|&".
 
 
3.2 Zakladni prikazy pro
praci s procesy
 Na prikazovem radku je mozno
zadat provedeni vice prikazu. Jednou
 z moznosti bylo vyse uvedene
spojeni prikazu do kolony. Dale je
 mozno zadat podobnym zpusobem
sekvencni zpracovani prikazu pomoci
 oddelovace ";". Pri tomto
zpusobu spousteni procesu se vzdy ceka
 na dokonceni jednotlivych
procesu nebo cele kolony (procesy v ni
 bezi paralelne). UNIX poskytuje
uzivateli moznost spusteni noveho
 procesu, pri kterem rodicovsky
proces (shell) neceka na jeho
 dokonceni a oba procesy pokracuji
nezavisle na sobe. Pro oznaceni
 tohoto mechanismu se pouziva
znak "&". Je-li tento znak uveden
 na konci prikazoveho radku,
potom se vypisi identifikacni cisla
 spustenych procesu a ihned
se vypise vyzva shellu. Pro urceni
 poradi interpretace prikazu
na radce lze pouzit zavorek "(" a ")".
 Takto ohranicena skupina
prikazu je provedena novou kopii shellu.
 Prikazy pro praci s procesy:
 sleep [n] pozdrzeni vykonani
procesu o n sekund
 wait cekani na dokonceni
vsech procesu
 kill PID predcasne ukonceni
procesu s cislem PID
 ps [-ag] vypis informaci
o bezicich procesech
 (soucasti je i PID procesu)
 a vsechny procesy vsech uzivatelu
 g vsechny procesy
 nice command provedeni prikazu
command se snizenou prioritou
 nohup command provedeni prikazu
command, ktery nelze
 ukoncit z prerusenim z klavesnice
nebo
 ukoncenim shellu
 at time command provedeni
prikazu command v zadanem case
 time command mereni doby
provedeni procesu command
 
  
3.3 Shell a zakladni systemove
prikazy
Interpret uzivatelskych prikazu
(shell) je jednim ze zakladnich
 systemovych programu. Nachazi
se obvykle v souboru "/bin/sh"
 (Bourne shell) a "/bin/csh
(C-shell) a muze byt vyvolavan
 rekurzivne. Prikazy cte ze
standardniho vstupu. Tohoto lze
 vyuzit k provedeni sady prikazu
ulozenych v textovem souboru
 (tzv. scenari - scriptu).
Pokud ma scenar nastaven priznak
 proveditelnosti, potom neni
treba spoustet shell (to zaridi
 automaticky system). Shell
lze z pohledu uzivatele-programatora
 povazovat za velmi vykonny
programovaci jazyk, ktery umoznuje
 pomoci standardnich konstrukci
a prikazu vykonat neobvykle slozite akce.
 Zakladni systemove prikazy:
 sh [flags] file [args]
 spusteni Bourne shellu s
argumenty args
 csh args spusteni C-shellu
s argumenty args
 who [am I] informace o prihlasenych
uzivatelich
 am I pouze o aktualnim uzivateli
 date informace o aktualnim
datumu a case
 passwd zmena uzivatelskeho
hesla
 echo [-n] args opis argumentu
na standardniho vystupu
 n bez znaku konec radku
 man str vypis informace (napovedy)
o str
 man -k keyword vypis souhrnu
jednoradkovych informaci
 podle klice keyword
 tee file T-odbocka z roury
do souboru (filtr)
 write user [tty] prikaz pro
rozhovor s uzivatelem user
 na terminalu tty
 (! cmd prikaz pro shell)
 mail elektronicka posta
 
 
 |