Click here to load reader

Úvod do UNIXu

  • View
    32

  • Download
    0

Embed Size (px)

DESCRIPTION

Úvod do UNIXu. Úvod, charakteristika Historie, principy Systém souborů, organizace, příkazy Procesy, životní cyklus, komunikace Shell: koncepce, typy, příkazy Zpracování textu ( ed, grep, sed, vi, awk). Libor Forst. Literatura (základy). - PowerPoint PPT Presentation

Text of Úvod do UNIXu

Úvod do UNIXuLibor Forst
J.Brodský, L.Skoovský: Operaní systém UNIX a jazyk C; SNTL 1989
L.Petrlík: Jemný úvod do systému UNIX; Kopp 1995
M.Sova: UNIX V - úvod do operaního systému; Grada 1993
M.Brandejs: UNIX - LINUX - praktický prvodce; Grada Praha 1993; ISBN 80-7169-170-4
G.Todino, J.Strang, J.Peek: Learning the UNIX Operating System; O‘Reilly & Associates 1993
L.Lamb: Learning the vi Editor; O‘Reilly & Associates 1986-1990; ISBN 0-937175-67-6
Úvod do UNIXu
M.J.Bach: The Design of the UNIX Operating System; Prentice-Hall 1986
L.Skoovský: Principy a problémy operaního systému UNIX; Science, 1993; ISBN 80-901475-0-X
L.Skoovský: UNIX, POSIX, Plan9; L. Skoovský, Brno, 1998; ISBN 80-902612-0-5
M.Welsh, L.Kaufmann: Pouíváme LINUX; ComputerPress 1997 (O’Reilly); ISBN 80-7226-001-4
Úvod do UNIXu
Literatura (programování)
M.Jelen: UNIX V - programování v systému; Grada Praha 1993; ISBN 80-85623-16-1
B.Rosenblatt: Learning the Korn Shell; O‘Reilly & Associates 1993; ISBN 1-56592-054-6
D.Dougherty: sed & awk; O‘Reilly & Associates 1990; ISBN 0-937175-59-5
D.Curry: Using C on the UNIX System; O‘Reilly & Associates 1985,7,8; ISBN 0-937175-23-4
A.Oram, S.Talbott: Managing Projects with make; O‘Reilly & Associates 1986,91; ISBN 0-937175-90-0
Úvod do UNIXu
- píše se tak, jak je zapsána:
man [-k] [section] topic
man [-k] [section] topic
.......................................................
60. léta - s General Electric a MIT vývoj OS Multics
(MULTIplexed Information and Computing System)
1969 - Bell Labs opouští projekt, Ken Thompson píše asembler, základní OS a systém soubor pro PDP-7
1970 - Multi-cs => Uni-x (snad Brian Kernighan)
1971 - Thompson ádá nový poíta PDP-11 pro další vývoj - zamítnuto
Thompson pedstírá vývoj systému automatizované kanceláe - poíta pidlen - zpracování text
1973 - UNIX pepsán do jazyka C vytvoeného za tím úelem Dennisem Ritchiem
Úvod do UNIXu
pedevším University of California Berkeley
1979 - v Berkeley pepisují UNIX pro 32bitový VAX BSD Unix (Berkeley System Distribution) verze 3.0;
dnes verze 4.4
Bell Labs pecházejí pod AT&T a pokraují ve vývoji verze III a V.4 - tzv. SVR4
UNIX uvolnn i pro komerci: Microsoft a SCO vyvíjejí pro Intel XENIX
vznikají UNIX International, OSF (Open Software Foundation), X/OPEN,...
4
SVID (System V Interface Definition)
“fialová kniha”, kterou AT&T vydala poprvé v roce 1985 jako standard, jeho splnní je nutnou podmínkou pro pouití obchodního názvu UNIX
POSIX (Portable Operating System based on UNIX)
série standard organizace IEEE znaená P1003.xx, postupn je pejímá vrcholový nadnárodní orgán ISO
XPG (X/Open Portability Guide)
doporuení konsorcia X/Open, které bylo zaloeno v r. 1984 pedními výrobci platforem
Single UNIX Specification
standard organizace Open Group, vzniklé v roce 1996 slouením X/Open a OSF
dnes Version 2 (UNIX98)
Úvod do UNIXu
píkaz man
Plánování proces pro sdílení asu CPU (plánovací algoritmus, pidlování asových kvant, priority,...)
Úvod do UNIXu
uivatelský (user mode): omezený pístup k pamti, instrukcím,...
privilegovaný reim (kernel mode)
HW chyby
Úvod do UNIXu
/etc - konfiguraní adresá
/home - koen domovských adresá
/usr/local - lokální soubory
/usr/man - manuálové stránky
vzniká duplikací rodiovského procesu
roura - tok dat od producenta ke konzumentu:
ls | more
Úvod do UNIXu
nezávislá komponenta systému: více shell
formát píkaz:
metaznaky, nap.:
umouje pímé programování; skripty
5 - formáty soubor
íslo (UID); superuivatel (root) má UID 0
íslo (GID) primární skupiny
íslo skupiny (GID)
seznam len skupiny
Ve skupin jsou navíc i všichni uivatelé, kteí ji mají uvedenu jako svoji primární skupinu.
8
Uivatelská relace
Po pihlášení k systému se uivateli spustí jeho shell. Tím se zahájí jeho uivatelská relace (session).
ukonení session: logout
ukonení shellu: exit
výpis nalogovaných uivatel: who, w
výpis logu relací: last
on-line rozhovor:
píjem: mail
pesmrování píjmu: $HOME/.forward
diskové svazky, síové disky
jméno souboru
volby: dlouhý výpis (l), krátký výpis do 1 sloupce (1), psát i skryté (a), vypsat/potlait skupiny (g), tídit podle asu (t), tídit pozpátku (r), znait typ souboru (F), rekurze (R) resp. jen adresáe (d), sledovat linky (L)
-rwxr-x--x 2 forst users 274 Jan 5 17:11 test
Úvod do UNIXu
symbolické linky (l)
ti kategorie: vlastník (u), skupina (g), ostatní (o);
platí vdy nejspeciálnjší kategorie, v ní je uivatel
ti práva: tení (r), zápis (w), provádní souboru resp. pepnutí se do adresáe (x)
setUID, setGID (s) pro proveditelné soubory: propjení identity (skupiny) vlastníka
setGID pro soubor bez práva spuštní pro skupinu: kontrola zámk pi kadém pístupu (výpis: S)
sticky bit (t) pro spustitelné soubory: ponechání souboru v pamti
sticky bit pro adresáe: práva k souborm mají jen vlastníci soubor a nikoli vlastníci adresáe
setGID pro adresá: nové soubory budou mít stejnou skupinu jako adresá
Úvod do UNIXu
chmod [-R] 775 file...
zmna vlastníka: chown, chgrp
defaultní maska: umask mask_complement
vlastník (u)
skupina (g)
ostatní (o)
Systémová: filesystem
boot blok
15
Kadý soubor na disku má práv jeden I-node, který obsahuje:
poet link
vlastník, skupina
pístupová práva
typ souboru
velikost souboru
16
smazání souboru: rm [-rfi]
zmna aktuálního adresáe: cd
výpis aktuálního adresáe: pwd
vytvoení adresáe: mkdir [-p]
výpis soubor po stránkách: more, pg, less
výpis zaátku souboru: head [-n] [files]
výpis konce souboru: tail { | -n | +n | -f } [files]
výpis souboru pro tisk: pr
poet byt, slov a ádek: wc [-cwl]
kopírování na výstup a do souboru: tee [-a] file
výpis binárního souboru: od, hd, strings
výpis s formátem: hexdump [-e formát]
formát: [[repeat]/[byte_count]] ”format” ...
Píkazy (* - me pedcházet prefix potu k):
mezera, d ... další stránka, pl stránky (*)
return ... další ádka (* - k nastaví default)
s, f, b ... pesko k ádek, stránek, stránek zpt (*)
/regexp, n ... hledej k-tý výskyt etzce (*)
’ ... návrat na zaátek hledání
=, h ... výpis pozice, helpu
Úvod do UNIXu
comm [ -123 ] file1 file2
cut { -clist | -flist -dchar } [files]
spojení soubor „po sloupcích“ resp. ádek souboru:
paste [[ -s ] -dchar ] [files]
rozdlení souboru po ádcích:
konverze znak:
46
Zadání tídícího pole:
tvar field[.char] ... íslování od 0, 0 je default
Modifikátory: b (bez mezer), f (ignorcase),
n (ísla), r (opan)
Pepínae: t (oddlova pole), u (vylu stejné klíe), c (jen kontroluje uspoádání)
Více klí (pozice se íslují od 1, pos2 je poslední znak!):
sort -kpos1[,pos2][mod] -k... [files]
Úvod do UNIXu
podmínky:
user, group, perm
píklad:
zkratky: which, whereis
Úvod do UNIXu
volání: xargs {-llines | -nwords } píkaz
opakuje píkaz, jako argumenty doplní vdy text z lines ádek standardního vstupu resp. kadých words slov standardního vstupu
volání: xargs -i píkaz
opakuje píkaz pro kadou ádku standardního vstupu, její text doplní do píkazu na místa oznaená {}
p.: ls -1 *.c | xargs -i cp {} {}.bak
Úvod do UNIXu
- p.: tar cf - . | ssh host tar xf -
komprese soubor
práce s páskou: mt {fsf n | bsf n | rewind}
20
Speciální znaky:
p.: [a-z0-9_], []^-], [\]\^\-\\]
exp\{n\}, exp\{m,n\} … opakování nkrát, m-nkrát
\(, \), \n … ást vzoru a její pouití (nap. v náhrad)
p.: A\(.\)\1\{1,\}A
Úvod do UNIXu
Úvod do UNIXu
/vzorek … hledání vzorku
J … spojení ádek
h (<BKSPC>), j, k, l (<SPACE>) … o k pozic (, , , )
w, b, e, W, B, E … o k slov (vped, vzad, na konec resp. bez interpunkce)
(, ), {, [[ … na zaátek (následující) vty, §, sekce
+ (<LF>), - … zaátek následující (pedchozí) ádky
$, 0, ^ … konec ádky, zaátek, první nemezerový znak
fx, Fx, tx, Tx, ;, , …znak x na ádce (dopedu, dozadu), znak ped x, znak za x, opakuj, opakuj v opaném smru
/regexp, ?regexp, /, ?, n, N …hledání vzoru dopedu, dozadu, opakuj vzor, opakuj hledání, opakuj obrácen
^F, ^B, ^D, ^U …stránka dopedu, dozadu, pl stránky
Úvod do UNIXu
[k]H … posun na k-tou ádku na obrazovce [1]
[k]L … posun na k-tou ádku od konce obrazovky [1]
M … posun na prostední ádku na obrazovce
[k]G … posun na k-tou ádku souboru [poslední]
Práce se znakou x (malé písmeno):
‘x … posun na pozici oznaenou znakou x
‘‘ … posun na poslední oznaenou pozici
’x … posun na zaátek ádky se znakou x
’’ … posun na zaátek naposledy oznaené ádky
(oznaení se provede píkazem mx)
Úvod do UNIXu
i, a, I, A … vkládání ped (za) kurzor, ádku
o, O … vkládání do nové adky pod (nad) aktuální (open)
~ …zmna malé/velké písmena pod kurzorem *
rx …pepis znaku pod kurzorem znakem x *
R …zahájení reimu vstupu v pepisovacím módu
cm … náhrada textu od kurzoru do pozice dané píkazem pro pohyb m
cc, C … náhrada celé ádky resp. do konce ádky
s, S … sma znak (ádku) a pejdi do reimu vstupu
Píkazy oznaené * nepepínají do reimu vstupu.
Úvod do UNIXu
Ped píkazy me pedcházet opakovací faktor k
x, X ... mazání znaku pod (ped) kurzorem
dm … mazání textu od kurzoru do pozice dané píkazem pro pohyb m
dd, D … mazání celé ádky resp. do konce ádky
Smazaný text se uloí do oíslovaného bufferu.
p, P … vloení bufferu za (ped) kurzor (píp. ádku)
”np, ”nP … vloení n-tého posledního bufferu
”xp, ”xP … vloení bufferu x (x je malé písmeno)
Jiný zpsob vloení textu do (pojmenovaného) bufferu:
[”x]ym … vloení textu po pozici danou píkazem m
[”x]yy, [”x]Y … vloení ádky
Úvod do UNIXu
J … slepení ádky s následující
^L, ^R … obnovení obrazovky
o … pechod do celoobrazovkového reimu
z<LF>, z., z- … scrollování, aktuální ádka se octne na zaátku (uprosted, na konci) obrazovky
^E, ^Y … scrollování o ádku
^G … vypsání informace o poloze v editovaném souboru
!m cmd, !!cmd … pouití bloku textu jako vstup a vloení výstupu píkazu do textu
@x … provedení píkaz uloených v bufferu x
% … skok na odpovídající ), ], } nebo >
Úvod do UNIXu
- edituje kopii souboru, opravy je nutno zapsat
- píkazy ze vstupu (ed-skripty)
- edituje vstupní proud, výsledek vypisuje
- editovací píkazy jsou souástí volání
- volání: sed píkazy [soubor ...]
Úvod do UNIXu
ex soubor
Syntaxe píkaz:
ed sed
. aktuální ádce -
n ádce s íslem n (od 1) ádce s íslem n
$ poslední ádce poslední ádce
/pat/ násl. . se vzorkem kadé . se vzorkem
?pat? pedch. . se vzorkem -
’x . oznaené znakou x -
adr±[n] relativn k . s adresou adr -
Úvod do UNIXu
a(ppend), c(hange), i(nsert)
… vkládání textu (nové ádky následují a koní ádkou se samotnou tekou)
d(elete), j(oin) … mazání, spojování ádek
m(ove)adr, t(o)adr … pesun, kopírování za ádku adr
s(ubst)/[pattern]/replacement/{g|n} … náhrada etzc
g(lobal)/regexp/cmd [\<LF>cmd]
v/regexp/cmd … provedení na ádky neobsahující vzor
p(rint), n(um), l(ist) … tisk, s ísly, s netisknutelnými znaky
(dají se pipojovat za ostatní píkazy)
rfile … vloení textu souboru
Úvod do UNIXu
u(ndo) … zrušení poslední opravy
e(dit) [file] … (znovu)otevení souboru
w(rite) [file] … uloení (pod jiným jménem)
(v pípad udání rozsahu se zapíše jen rozsah)
W(rite) file … pipsání do souboru *
w(rite)!cmd … zápis do roury *
q(uit) … ukonení editace
Úvod do UNIXu
fgrep (fast - pouze etzec, ale ne jen jeden)
a nkteré další (nap.GNU)
-e expression, -f filename
-lines ... poet vypsaných ádek ped a po nalezené (není zcela penositelné)
Úvod do UNIXu
adresy mohou být oddleny stedníkem - první ádka se stává aktuální
rozšíení píkazu substitute
regexp metaznak ~ ... pedchozí regexp
repl sekvence \u, \l, \U, \L ... pevod malá/velká (na celé slovo)
nové píkazy
<count, >count … indentace
j(oin)[!] … spojení ádek, po . pidává dv mezery, po ) ádnou, jinak jednu (! ... bez mezer)
ya(nk)[x], pu(t)[x] … práce s (pojmenovanými) buffery
Úvod do UNIXu
so(urce) … provedení souboru
x, wq … zápis a ukonení editace
q, q! … ukonení editace (bez uloení zmn)
n[!], e[!] [file] … editace dalšího souboru (% znaí aktuální jméno souboru, # alternativní jméno), pojmenované buffery, poslední regexp a píkaz se nemaou
ab word string, una … zkratka
map[!] {char | #n} string, unm … mapování znaku resp. funkní klávesy (pro reim vstupu); ídící znaky pes ^V
Úvod do UNIXu
number, nu ... ísla ádek [nonu]
shell=path, sh ... cesta k shellu [=/bin/sh]
showmatch, sm ... hledání závorek [nosm]
tabstop=n, ts ... velikost tabelátoru [=8]
wrapscan, ws ... hledání pes konec souboru [ws]
wrapmargin=n, wm ... pravý okraj pro zalamování [=0]
Úvod do UNIXu
promnné EXINIT
pokud je nastavena volba exrc (implicitn vypnuta)
Píkazy se zapisují bez úvodní dvojteky (jako v ex).
Úvod do UNIXu
volání:
píkazy se aplikují na kadou ádku
píkazy se oddlují stedníkem nebo koncem ádky
provádjí se v poadí zápisu
píkaz nesmí konit mezerou
sed ’3a\
w file ... modifikovaná ádka se vypíše do souboru
konverze znak
:label … definice návští
t(est) [label] … podmínný skok
(pokud od posledního natení ádky nebo posledního provedení píkazu test byla provedena njaká substituce)
p.:
:loop
s/([^()]*)//
Úvod do UNIXu
N(ext) … pipojení další ádky ze vstupu
P(rint) … tisk první ádky z prostoru
D(elete) … vymazání první ádky z prostoru
záloní prostor (hold space)
x(change) … zámna prostor
Úvod do UNIXu
sed ’/procedure/i\
sed -n ’3,4!p’ program.pas
sed -n ’/:\([0-9]*\):\1:/p’ /etc/passwd
vypíše uivatele se stejným UID a GID
Úvod do UNIXu
výsledek: cp test.c test.bak
echo ab | sed ’s/a/b/;s/b/a/’
výsledek: Libor Forst:/home/
kontext procesu
PID, píkaz ps
Úvod do UNIXu
obecné registry, programový íta, stavový registr procesoru, ukazatel do zásobníku, registry pro operace v pohyblivé ádové árce, registry mapování pamti
pamt, kterou proces dosud adresoval v uivatelském reimu
pam v prostoru jádra, která je s daným procesem spojena (nap. systémový zásobník procesu)
Úvod do UNIXu
exec() … pekryje adresní prostor procesu zadaným programem
wait() … (rodiovský proces) eká na skonení potomk
exit() … ukoní proces a aktivuje rodiovský proces
Úvod do UNIXu
BSD SystemV
cizí procesy:
plný výpis:
-a (all users)
-x (no terminal)
-l (long)
-u (usage)
-l (long)
-f (full)
-r (cpu)
-m (memory)
0 - standardní vstup (stdin)
1 - standardní výstup (stdout)
… - další otevírané soubory
Úvod do UNIXu
v programu:
roura mezi subprocesy: pipe
vytváejí funkce/píkazy mknod resp. mkfifo
stdout
pipe
stdin
nemaskovatelné signály: KILL, STOP
výpis signál: kill -l
STOP(17), TSTP(18), CONT(19) zastavení a spuštní procesu
CHLD(20) ukonení syna
SISAL
Synchronizace
Pokud dva procesy sdílejí njaký zdroj, je nutné souasný pístup ke kritickým sekcím program ošetit zámkem
Test zámku a jeho nastavení musí být neperušitelná dvojice operací provádt v privilegovaném reimu
Synchronizace pes soubor:
program se pokusí vytvoit tzv. lock soubor - pokud se to nepodaí, je zdroj zamen
po skonení programu se soubor smae
problém: po havárii soubor nadále existuje
ešení: do souboru se napíše PID procesu
problém: aktivní ekání na uvolnní zdroje
Úvod do UNIXu
ošetení dead-locku, havárie procesu
funkce: semget, semop, semctl
funkce: msgget, msgsnd, msgrcv, msgctl
sdílená pam:
funkce: shmget, shmat, shmdt, shmctl
Úvod do UNIXu
Systémové funkce:
typu: virtuální okruh (stream), datagram
- bind piazuje vlastní adresu:
- listen zahájí píjem zpráv (mj. stanoví délku fronty)
- accept otevírá kanál ke klientovi
- connect navazuje spojení se servrem
Úvod do UNIXu
vlastnosti v /etc/termcap resp. /etc/terminfo
typ terminálu v promnné TERM
inicializace terminálu píkazem tset
zmna vlastností píkazem stty
(nap. stty erase znak)
28
nkteré lze pedefinovat, nkteré závisí na shellu konzistence terminálu a shellu
typické sekvence:
Úvod do UNIXu
time command
pozastavení bhu:
sleep seconds
date [ +format ]
aAbB ... krátké/dlouhé jméno dne/msíce
uUVjC ... íslo dne v týdnu, týdne, dne v roce, století
cxX ... “normální” tvar data a asu
Úvod do UNIXu
Neinteraktivní zpracování
spuštní píkazu se zablokovaným signálem HUP a QUIT a výstupem do $HOME/nohup.out
nohup command
spuštní píkazu v urený as (uivateli musí být povoleno v souborech at.allow resp. at.deny, výstup jde uivateli mailem):
at {-t mmddHHMM | time [+incr ] } command
píkaz umouje vypisovat (-l) a mazat (-r) joby
dtto pravidelné spouštní pomocí démona cron:
crontab [-l]
píklad záznamu:
nezávislá komponenta systému
te ádky a provádí píkazy
vlastní píkazy
textový preprocesor
speciální význam se ruší (tzv. escape-sekvence)
znakem \
<LF> ... namísto odeslání píkazu jen pokraovací ádka
mezera ... nkolik slov jako jeden parametr
pozor zvlášt u sloitjších píkaz
(nap. sed "s/ [0-9]*/ #/" ...)
Expanzní znaky
etzec expanzních znak se nahradí seznamem všech jmen soubor, které mu vyhovují.
* - zastupuje libovolnou posloupnost znak
[^a-z] - zastupuje znak z doplku seznamu (sh:!)
Bílé znaky a znaky ^, ], - se do seznamu zapisují uvozené znakem \.
Expanzi provádí shell !
Úvod do UNIXu
cd [dir ] - zmna adresáe (vlastnost shellu)
pwd - výpis jména aktuálního adresáe
exit [rc] - ukonení shellu s návratovým kódem
set pepína - nastavení pepína shellu
ulimit limit - nastavení uivatelských limit
umask [mask] - nastavení defaultního módu soubor
Úvod do UNIXu
name=value cmd - doasné nastavení pro píkaz cmd
$name, ${name} - pouití hodnoty (textová substituce)
Výpis hodnoty promnné: set, echo $name
Promnné jsou souástí environmentu.
Syn neme modifikovat promnné otce!
Úvod do UNIXu
implicitn: IFS=<mezera><tab><LF>
PS1, PS2 - prompt, prompt na pokraovací ádce
PATH - cesta: adresáe se spustitelnými soubory (aktuální adresá není implicitní!)
CDPATH - cesta pro píkaz cd
TERM - typ terminálu
SHELL - provádný shell
LOGNAME - jméno uivatele
HOME - domovský adresá
sh [optiony] script parametry
. script
#!cesta_k_interpretu [optiony]
/etc/profile, .profile
$# - poet parametr scriptu
$0 - název scriptu
p.: set - a + b $1=”a”, $2=”+”, $3=”b”, $#=3
$* - všechny parametry scriptu
$? - návratový kód posledního píkazu
p.: ed xxx << \END
zápis pesmrování ...
vstup se chová jako text v uvozovkách
p.: ed xxx << END
p.: ed xxx <<- END
cmd > file standardního výstupu do souboru file
cmd >> file standardního výstupu na konec souboru
cmd 2> file chybového výstupu do souboru file
p.: rm xxx 2> /dev/null
cmd 2>&1 chybového výstupu do standardního,
pozor na poadí pesmrování:
výstup do souboru log, chyby na výstup
zápis pesmrování ...
cmd1; cmd2
sekvence píkaz
{ cmd1; cmd2;}
skupina píkaz
(cmd1; cmd2)
Píkazem read var nateme ádku ze vstupu do promnné var
Píkaz nastavuje návratový kód (dá se testovat)
Pokud má píkaz více argument, te postupn do jednotlivých promnných pole vstupní ádky (do poslední promnné zbytek); oddlova polí udává hodnota promnné IFS
Pi spuštní z píkazové ádky te z terminálu, ale lze jej pesmrovat (read var < file), naopak lze vynutit tení z terminálu (read var </dev/tty)
Pokud vstupní ádka koní znakem \, nate se i následující a spojí se (zapne/potlaí option -e/-r)
Úvod do UNIXu
... pete odpov
... nate login a jméno (prvního) uivatele
LHOST=ss1000.ms.mff.cuni.cz
... nic (SHOST se nastaví v „synovi“)
echo $LHOST | cut -f1 -d. > /tmp/x.$$ read SHOST < /tmp/x.$$
rm /tmp/x.$$
p.: SHOST=`echo $LHOST | cut -f1 -d.`
ß
pozor na vnoené pouití
nutno „escapovat“ vnitní apostrofy
Úvod do UNIXu
výsledek se znovu nate a provede
p.: name=prvni
eval $name=retezec
p.: eval echo \$$#
v pípad pravdivé podmínky vrací 0
pozor na nenastavené promnné, mezery apod.:
špatn: [ -z = $x ], [-z="$x"]
správn: [ -z = "$x" ]
konjunkce: cond1 -a cond2
disjunkce: cond1 -o cond2
Úvod do UNIXu
-d file - soubor file je adresá
-L file - soubor file je symbolický link
-r file - uivatel má k souboru file právo r
-w file - uivatel má k souboru file právo w
-x file - uivatel má k souboru file právo x
-s file - soubor file má nenulovou délku
-z str - etzec str je prázdný
-n str - etzec str je neprázdný
str1 = str2 - rovnost etzc
str1 != str2 - nerovnost etzc
int1 -eq int2 - rovnost ísel (-ne, -lt, -le, -gt, -ge)
Úvod do UNIXu
vypíše výsledek a vrací návratovou hodnotu
shell nemá sám aritmetiku, práci s etzci!
logické operátory: =, <, >, <=, >=, !=
aritmetické operátory: +, -, *, /, %
etzcové operátory:
... te stále první ádku
y=`expr $y + 1`
cat file | ( while read x; do
echo -n ”Mam smazat $x? (a/[n]) ”
read z
... read z < /dev/tty
Úvod do UNIXu
...poínaje csh je dokonalejší správa (jobs,...)
exec cmd - ukoní shell…