Úvod do UNIXu. Libor Forst
|
|
- Alois Jaroš
- před 9 lety
- Počet zobrazení:
Transkript
1 Úvod do UNIXu Libor Forst Ú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) Úvod do UNIXu 1
2 Literatura (základy) J.Brodský, L.Skočovský: Operační 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 operačního systému; Grada 1993 M.Brandejs: UNIX - LINUX - praktický průvodce; Grada Praha 1993; ISBN G.Todino, J.Strang, J.Peek: Learning the UNIX Operating System; O Reilly & Associates 1993 L.Lamb: Learning the vi Editor; O Reilly & Associates ; ISBN Úvod do UNIXu 2
3 Literatura (systém) M.J.Bach: The Design of the UNIX Operating System; Prentice-Hall 1986 L.Skočovský: Principy a problémy operačního systému UNIX; Science, 1993; ISBN X L.Skočovský: UNIX, POSIX, Plan9; L. Skočovský, Brno, 1998; ISBN M.Welsh, L.Kaufmann: Používáme LINUX; ComputerPress 1997 (O Reilly); ISBN Úvod do UNIXu 3
4 Literatura (programování) M.Jelen: UNIX V - programování v systému; Grada Praha 1993; ISBN B.Rosenblatt: Learning the Korn Shell; O Reilly & Associates 1993; ISBN D.Dougherty: sed & awk; O Reilly & Associates 1990; ISBN D.Curry: Using C on the UNIX System; O Reilly & Associates 1985,7,8; ISBN A.Oram, S.Talbott: Managing Projects with make; O Reilly & Associates 1986,91; ISBN Úvod do UNIXu 4
5 Konvence Pevná část příkazu (neproporcionálním fontem) - píše se tak, jak je zapsána: man [-k] [section] topic Proměnlivá část příkazu (kurzívou) - doplní se požadovaný text (slovo, číslo apod.): man [-k] [section] topic Volitelná část příkazu: man [-k] [section] topic Výběr z více variant: {BEGIN END /regexp/ cond } { cmds }... Úvod do UNIXu 5
6 Historie UNIXu Bell Laboratories - výzkum v komunikacích 60. léta - s General Electric a MIT vývoj OS Multics (MULTIplexed Information and Computing System) Bell Labs opouští projekt, Ken Thompson píše asembler, základní OS a systém souborů pro PDP Multi-cs => Uni-x (snad Brian Kernighan) Thompson žádá nový počítač PDP-11 pro další vývoj - zamítnuto Thompson předstírá vývoj systému automatizované kanceláře - počítač přidělen - zpracování textů UNIX přepsán do jazyka C vytvořeného za tím účelem Dennisem Ritchiem Úvod do UNIXu 6
7 Divergence UNIXu pol. 70. let - uvolňování UNIXu na univerzity: především University of California Berkeley v Berkeley přepisují UNIX pro 32bitový VAX BSD Unix (Berkeley System Distribution) verze 3.0; dnes verze 4.4 Bell Labs přecházejí pod AT&T a pokračují ve vývoji verze III až V.4 - tzv. SVR4 UNIX uvolněn i pro komerci: Microsoft a SCO vyvíjejí pro Intel XENIX vznikají UNIX International, OSF (Open Software Foundation), X/OPEN,... Úvod do UNIXu 7
8 Současné UNIXy SUN: Sun OS, Solaris Silicon Graphics: Irix DEC: Ultrix, Digital Unix IBM: AIX HP: HP-UX Siemens Nixdorf: SINIX Novell: UNIXware SCO: SCO Unix FreeBSD, NetBSD, OpenBSD,... Linux Úvod do UNIXu 8
9 Standardy UNIXu SVID (System V Interface Definition) fialová kniha, kterou AT&T vydala poprvé v roce 1985 jako standard, jehož splnění je nutnou podmínkou pro použití obchodního názvu UNIX POSIX (Portable Operating System based on UNIX) série standardů organizace IEEE značená P1003.xx, postupně je přejímá vrcholový nadnárodní orgán ISO XPG (X/Open Portability Guide) doporučení konsorcia X/Open, které bylo založeno v r předními výrobci platforem Single UNIX Specification standard organizace Open Group, vzniklé v roce 1996 sloučením X/Open a OSF dnes Version 2 (UNIX98) splnění je nutné pro užití obchodního názvu UNIX Úvod do UNIXu 9
10 Charakteristika UNIXu poučení ale nezatížení minulostí nekomerční prostředí otevřený operační systém systém souborů uživatel, skupina proces, komunikace interpret příkazů, grafické prostředí utility, jazyk C přenositelnost, modifikovatelnost síťová podpora volně šiřitelný SW (např. GNU) příkaz man Úvod do UNIXu 10
11 Model OS UNIX Klasický OS Správa procesoru Správa paměti I/O modul Systémové programy Aplikace Klientský proces... Klientský proces Systémový proces... Systémový proces UNIX Systémová volání Jádro Úvod do UNIXu 11
12 Funkce jádra OS Řízení provádění procesů (vytváření, ukončení, suspendování, 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é 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,...) Úvod do UNIXu 12
13 HW požadavky Možnost běhu procesu ve dvou režimech: uživatelský (user mode): omezený přístup k paměti, instrukcím,... privilegovaný režim (kernel mode) Hierarchické ošetření přerušení a výjimek, např.: HW chyby časovač disky síť terminály SW přerušení Správa paměti - oddělení virtuálního a skutečného adresního prostoru Úvod do UNIXu 13
14 Jednotný hierarchický systém souborů /... etc usr tty dev home Úvod do UNIXu 14
15 Strom adresářů /bin - základní systémové příkazy /dev - speciální soubory (zařízení, devices) /etc - konfigurační adresář /lib - základní systémové knihovny /tmp - veřejný adresář pro dočasné soubory /home - kořen domovských adresářů /usr/adm - administrativní soubory /usr/include - knihovny headerů pro C /usr/local /usr/man /usr/spool - lokální soubory - manuálové stránky - spool (pošta, tisk,...) Úvod do UNIXu 15
16 Proces, komunikace Proces zjednodušeně: běžící uživatelský nebo systémový program vzniká duplikací rodičovského procesu Komunikace při startu otec předává data synovi, naopak nelze! roura - tok dat od producenta ke konzumentu: ls more další prostředky (např. sdílená paměť) Úvod do UNIXu 16
17 Interpret příkazů (shell) základní program pro komunikaci s UNIXem nezávislá komponenta systému: více shellů formát příkazů: příkaz -přepínače parametry př. ls -l /etc metaznaky, např.: ls *.c > "vypis adresare.txt" vestavěné příkazy: echo, cd, pwd umožňuje přímé programování; skripty sh test.sh;./test.sh Úvod do UNIXu 17
18 Virtuální paměť paměť procesu 1 paměť procesu 2 paměť procesu 3 paměť procesu 4 swap reálná paměť Úvod do UNIXu 18
19 Příkaz man Volání: man [-k] [section] topic Sekce manuálových stránek: 1 - uživatelské příkazy 2 - služby jádra systému 3 - knihovní funkce jazyka C 4 - zařízení a ovladače zařízení 5 - formáty souborů 6 - triviální aplikační programy 7 - různé 8 - administrátorské příkazy Úvod do UNIXu 19
20 Seznam uživatelů (/etc/passwd) forst:dxyaf1eg:1004:11:libor Forst:/u/forst:/bin/sh Význam jednotlivých polí: uživatelské jméno zakódované heslo (nově v /etc/shadow...) číslo (UID); superuživatel (root) má UID 0 číslo (GID) primární skupiny plné jméno domovský adresář login-shell Úvod do UNIXu 20
21 Seznam skupin (/etc/group) users::11:operator,novak Význam jednotlivých polí: jméno skupiny nepoužito číslo skupiny (GID) seznam členů skupiny Ve skupině jsou navíc i všichni uživatelé, kteří ji mají uvedenu jako svoji primární skupinu. Úvod do UNIXu 21
22 Uživatelská relace Po přihlášení k systému se uživateli spustí jeho shell. Tím se zahájí jeho uživatelská relace (session). ukončení session: logout změna uživatele (login-shell): login user dočasná změna uživatele: su [-] [user] ukončení shellu: exit zjištění identity uživatele: id, whoami, who am i výpis nalogovaných uživatelů: who, w výpis logu relací: last Úvod do UNIXu 22
23 Komunikace mezi uživateli on-line zprávy: zaslání: write user potlačení příjmu: mesg [ y n ] on-line rozhovor: příkaz: talk user[@host] off-line zprávy: posílání: mail [-v ] [-ssubject ] ... příjem: mail zpráva o příjmu: biff [ y n ] přesměrování příjmu: $HOME/.forward forst@ms.mff.cuni.cz /usr/local/bin/filter Úvod do UNIXu 23
24 Systém souborů hierarchický systém jednotný přístup k zařízením, adresářům diskové svazky, síťové disky synchronizace (sync, fsck) ochrana souborů jména (znaková sada, délka) cesty (absolutní, relativní,.,..) textové soubory (<LF>) Úvod do UNIXu 24
25 Příkaz ls -rwxr-x--x 2 forst users 274 Jan 5 17:11 test typ práva počet linků vlastník, skupina délka souboru v bytech datum a čas poslední modifikace jméno souboru volby: dlouhý výpis (l), krátký výpis do 1 sloupce (1), psát i skryté (a), vypsat/potlačit skupiny (g), třídit podle času (t), třídit pozpátku (r), značit typ souboru (F), rekurze (R) resp. jen adresáře (d), sledovat linky (L) Úvod do UNIXu 25
26 Typy souborů plain file: posloupnost bytů (-) directory: seznam jmen souborů (d) speciální zařízení - device (b, c) symbolické linky (l) pojmenované roury - pipe (p) sockety (s) příkaz file Úvod do UNIXu 26
27 Přístupová práva tři kategorie: vlastník (u), skupina (g), ostatní (o); platí vždy nejspeciálnější kategorie, v níž je uživatel tři práva: čtení (r), zápis (w), provádění souboru resp. přepnutí se do adresáře (x) setuid, setgid (s) pro proveditelné soubory: propůjčení identity (skupiny) vlastníka setgid pro soubor bez práva spuštění pro skupinu: kontrola zámků při každém přístupu (výpis: S) sticky bit (t) pro spustitelné soubory: ponechání souboru v paměti sticky bit pro adresáře: práva k souborům 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 27
28 Změna přístupových práv vlastník (u) skupina (g) ostatní (o) suid sgid sticky r w x změna práv: chmod [-R] +w,o=rx file... chmod [-R] 775 file... změna vlastníka: chown, chgrp defaultní maska: umask mask_complement shell s novou defaultní skupinou: newgrp group Úvod do UNIXu 28
29 Organizace disku Fyzická: sektor, stopa, cylindr, povrch Logická: partition (~device), příkaz df Systémová: filesystem boot blok superblok(y) I-list (seznam I-nodů) datové bloky Obraz systému souborů v paměti (sync, fsck) Úvod do UNIXu 29
30 Index node Každý soubor na disku má právě jeden I-node, který obsahuje: počet linků vlastník, skupina přístupová práva typ souboru velikost souboru čas poslední modifikace souboru posledního přístupu k souboru poslední modifikace I-nodu odkazy na datové bloky Výpis seznamu souborů s čísly I-nodů: ls -i Úvod do UNIXu 30
31 Hard link /var passwd Linky Originál /etc passwd Soft link /usr passwd I-list root:x:0:0:...../etc/passwd ln /etc/passwd passwd ln -s../etc/passwd passwd (zacyklení: Too many symlinks) Úvod do UNIXu 31
32 Adresace datových bloků Tabulka přímých odkazů v I-node Blok nepřímých odkazů 1.řádu Blok nepřímých odkazů 2.řádu Blok nepřímých odkazů 3.řádu Datové bloky Úvod do UNIXu 32
33 Obecné příkazy kopírování souboru: cp [-pr] přesun n. přejmenování souboru: mv smazání souboru: rm [-rfi] změna data a času: touch [{ -tčas -rsoubor }] změna aktuálního adresáře: cd výpis aktuálního adresáře: pwd vytvoření adresáře: mkdir [-p] zrušení adresáře: rmdir není undelete! Úvod do UNIXu 33
34 Výpis souboru zřetězení souborů: cat [-nv] [files] 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 počet 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... Úvod do UNIXu 34
35 Volání: Příkaz more more [-n] { +line +/regexp } [files] Příkazy (* - může předcházet prefix počtu k): mezera, d... další stránka, půl stránky (*) return... další řádka (* - k nastaví default) s, f, b... přeskoč k řádek, stránek, stránek zpět (*) /regexp, n... hledej k-tý výskyt řetězce (*)... návrat na začátek hledání!cmd, v... start shellu, editoru =, h... výpis pozice, helpu :n, :p... přechod na další soubor Úvod do UNIXu 35
36 tisk: BSD Tisk lpr [-d printer] [files] SystemV lp [-Pprinter] [files] výpis stavu tisku: lpq [-d printer] job zrušení tisku: lprm [-d printer] job lpstat job cancel job [printer] popis tiskáren : /etc/printcap implicitní tiskárna: proměnná PRINTER spool-oblast: /var/spool/* formátování tisku: pr, mpage Úvod do UNIXu 36
37 Zpracování textu porovnávání souborů resp. adresářů: diff [ -bwi ] { -e -cn -rs } file1 file2 comm [ -123 ] file1 file2 výběr polí z řádek souboru (nemění pořadí polí): cut { -clist -flist -dchar } [files] spojení souborů po sloupcích resp. řádek souboru: paste [[ -s ] -dchar ] [files] rozdělení souboru po řádcích: split [{ -llines -bbytes[{k m}] }] [ file [ name ] ] konverze znaků: tr [-cds] table1 [table2] př.: tr "ABC" "abc" Úvod do UNIXu 37
38 Volání: Příkaz sort sort [-bidfnr] [+pos1[-pos2]] [-td] [-uc] [files] Zadání třídícího pole: pos1... první znak, pos2... první znak za tvar field[.char]... číslování od 0, 0 je default Modifikátory: b (bez mezer), f (ignorcase), n (čísla), r (opačně) Přepínače: t (oddělovač 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 38
39 Příkaz find volání: find cesta... podmínka... akce podmínky: name, size, type, links, inum, fstype user, group, perm atime, ctime, mtime, newer negace (!), -o, -a, závorky hodnoty: n, +n, -n akce: print; někdy default exec; jméno souboru: {}, ukončení příkazu: středník příklad: find / -name core -mtime +7 -exec rm {} ";" zkratky: which, whereis Úvod do UNIXu 39
40 Příkaz xargs volání: xargs příkaz zavolá příkaz, jako argumenty doplní text standardního vstupu volání: xargs {-llines -nwords } příkaz opakuje příkaz, jako argumenty doplní vždy text z lines řádek standardního vstupu resp. každých words slov standardního vstupu volání: xargs -i příkaz opakuje příkaz pro každou řádku standardního vstupu, její text doplní do příkazu na místa označená {} př.: ls -1 *.c xargs -i cp {} {}.bak Úvod do UNIXu 40
41 Archivace archivace adresářů: tar {c t x} [f file] [files] - př.: tar cf -. ssh host tar xf - komprese souborů - standardní (.Z): compress - GNU (.gz): gzip, gunzip další příkazy: cpio, dd systémová záloha: backup, dump, restore zálohování po síti: rdump, rrestore práce s páskou: mt {fsf n bsf n rewind} Úvod do UNIXu 41
42 Regulární výrazy (ed, vi) Způsob definování řetězců v řadě příkazů (např.: ed, vi). Speciální znaky:. jakýkoliv znak mimo <LF> \c metaznak použitý jako znak (např.: \. je tečka) [list], [^list] jakýkoliv znak z výčtu, z doplňku př.: [a-z0-9_], []^-], [\]\^\-\\] ^, $ začátek a konec řádky \<, \> začátek a konec slova exp* libovolné opakování znaku daného výrazem exp\{n\}, exp\{m,n\} opakování nkrát, m-nkrát \(, \), \n část vzoru a její použití (např. v náhradě) př.: A\(.\)\1\{1,\}A Úvod do UNIXu 42
43 Editor vi visual editor geneze: ed ex vi celoobrazovkový editor dostupný na všech UNIXech široká paleta příkazů malé nezbytné minimum příkazů editace kopie souboru volání: vi [-rr] {+[line] +/pattern } [files] Úvod do UNIXu 43
44 Základní editace (vi) vi soubor vyvolání editoru i zahájení vkládání textu vkládaný text <ESC> ukončení vkládání textu h, j, k, l pohyb po textu /vzorek hledání vzorku x, dd mazání znaku, řádky A vkládání na konec řádky J spojení řádek ZZ, :x ukončení editace :q! zrušení editace Úvod do UNIXu 44
45 Režimy práce vi i, a, I, A, o, O, s, S, cx, C, R <ESC>, (^C) příkazový režim : <LF>, <Bkspc> režim vstupu ZZ (:)q, (:)x režim příkazů ex Úvod do UNIXu 45
46 Příkazy pro pohyb (I) Před příkazy může předcházet opakovací faktor k h (<BKSPC>), j, k, l (<SPACE>) o k pozic (,,, ) w, b, e, W, B, E o k slov (vpřed, vzad, na konec resp. bez interpunkce) (, ), {, [[ na začátek (následující) věty,, sekce + (<LF>), - začátek následující (předchozí) řádky $, 0, ^ konec řádky, začátek, první nemezerový znak fx, Fx, tx, Tx, ;,, znak x na řádce (dopředu, dozadu), znak před x, znak za x, opakuj, opakuj v opačném směru /regexp,?regexp, /,?, n, N hledání vzoru dopředu, dozadu, opakuj vzor, opakuj hledání, opakuj obráceně ^F, ^B, ^D, ^U stránka dopředu, dozadu, půl stránky Úvod do UNIXu 46
47 Příkazy pro pohyb (II) Příkazy předchází absolutní hodnota k: k k-tá pozice na řádce [k]h posun na k-tou řádku na obrazovce [1] [k]l posun na k-tou řádku od konce obrazovky [1] M posun na prostřední řádku na obrazovce [k]g posun na k-tou řádku souboru [poslední] Práce se značkou x (malé písmeno): x posun na pozici označenou značkou x posun na poslední označenou pozici x posun na začátek řádky se značkou x posun na začátek naposledy označené řádky (označení se provede příkazem mx) Úvod do UNIXu 47
48 Vkládání textu, opravy Před příkazy může předcházet opakovací faktor k i, a, I, A vkládání před (za) kurzor, řádku o, O vkládání do nové řadky pod (nad) aktuální (open) ~ změna malé/velké písmena pod kurzorem * rx přepis znaku pod kurzorem znakem x * R zahájení režimu vstupu v přepisovací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 přejdi do režimu vstupu Příkazy označené * nepřepínají do režimu vstupu. Úvod do UNIXu 48
49 Mazání, práce s buffery Před příkazy může předcházet opakovací faktor k x, X... mazání znaku pod (před) 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 vložení bufferu za (před) kurzor (příp. řádku) np, np vložení n-tého posledního bufferu xp, xp vložení bufferu x (x je malé písmeno) Jiný způsob vložení textu do (pojmenovaného) bufferu: [ x]ym vložení textu po pozici danou příkazem m [ x]yy, [ x]y vložení řádky Úvod do UNIXu 49
50 Další příkazy vi. opakování posledního editačního příkazu u zrušení efektu posledního editačního příkazu U obnovení řádky do původního stavu J slepení řádky s následující ^L, ^R obnovení obrazovky o přechod do celoobrazovkového režimu z<lf>, z., z- scrollování, aktuální řádka se octne na začátku (uprostřed, na konci) obrazovky ^E, ^Y scrollování o řádku ^G vypsání informace o poloze v editovaném souboru!m cmd,!!cmd použití bloku textu jako vstup a vložení výstupu příkazu do provedení příkazů uložených v bufferu x % skok na odpovídající ), ], } nebo > ^W, ^V (režim vstupu) smaž slovo, ulož speciální znak Úvod do UNIXu 50
51 Řádkové editory ed ex - základní editor - dostupný i v diagnostickém režimu - edituje kopii souboru, opravy je nutno zapsat - příkazy ze vstupu (ed-skripty) - volání: ed soubor - rozšíření edu - součást vi sed - rozšíření edu směrem k programování - edituje vstupní proud, výsledek vypisuje - editovací příkazy jsou součástí volání - volání: sed příkazy [soubor...] nebo: sed -f příkazový_soubor [soubor...] Úvod do UNIXu 51
52 Schéma práce sed a ex... w ex soubor příkazy soubor sed příkazy sed -f soubor_příkazů soubor soubor_příkazů soubor Úvod do UNIXu 52
53 Formát příkazu, adresa řádku (ed, sed) Syntaxe příkazů: [adresa[,adresa]]příkaz[parametry] Formát adresy - příkaz se provede na... ed sed (prázdná) aktuální řádce každé řádce. aktuální řádce - n řádce s číslem n (od 1) řádce s číslem n $ poslední řádce poslední řádce ±[n] relativně k aktuální řádce - /pat/ násl. ř. se vzorkem každé ř. se vzorkem?pat? předch. ř. se vzorkem - x ř. označené značkou x - adr±[n] relativně k ř. s adresou adr - Úvod do UNIXu 53
54 Poziční příkazy editoru ed a(ppend), c(hange), i(nsert) vkládání textu (nové řádky následují a končí řádkou se samotnou tečkou) d(elete), j(oin) m(ove)adr, t(o)adr mazání, spojování řádek přesun, kopírování za řádku adr s(ubst)/[pattern]/replacement/{g n} náhrada řetězců g(lobal)/regexp/cmd [\<LF>cmd] provedení příkazů na všechny řádky se vzorem v/regexp/cmd provedení na řádky neobsahující vzor p(rint), n(um), l(ist) tisk, s čísly, s netisknutelnými znaky (dají se připojovat za ostatní příkazy) rfile kx vložení textu souboru nastavení značky x (mark) Úvod do UNIXu 54
55 Nepoziční příkazy editoru ed h(elp) nápověda k poslední chybě u(ndo) zrušení poslední opravy e(dit) [file] (znovu)otevření souboru e(dit)[!] [file] otevření souboru bez uložení změn w(rite) [file] uložení (pod jiným jménem) (v případě udání rozsahu se zapíše jen rozsah) W(rite) file připsání do souboru * w(rite)!cmd zápis do roury * f(ile) file změna jména editovaného souboru q(uit) ukončení editace Příkazy označené * nejsou zcela přenositelné. Úvod do UNIXu 55
56 Příklady použití příkazu global g/procedure/i. před procedurami odřádkuje g/integer/s//longint/g rozšíří program g/var/,/type/-1 m /begin/-1 spraví pořadí deklarací g/.*/ m 0 napíše soubor pozpátku g/^chapter/ ++W file napíše seznam kapitol Úvod do UNIXu 56
57 Příkaz grep název: g/re/p varianty: egrep (extended - rozšířené regulární výrazy) fgrep (fast - pouze řetězec, ale ne jen jeden) a některé další (např.gnu) volby: -c(ount), -l(istfiles), -n(umber) -i(gnorecase), -w(ord) -v... vypisuje řádky, na nichž vzor nebyl nalezen -e expression, -f filename -lines... počet vypsaných řádek před a po nalezené (není zcela přenositelné) Úvod do UNIXu 57
58 ex - rozšíření příkazů (I) adresy mohou být odděleny středníkem - první řádka se stává aktuální rozšíření příkazu substitute s/regexp/repl/c nahrazení s potvrzováním (y<lf>) regexp metaznak ~... předchozí regexp repl sekvence \u, \l, \U, \L... převod malá/velká (na celé slovo) nové příkazy co (kopíruj, alias příkazu t) <count, >count indentace j(oin)[!] spojení řádek, po. přidává dvě mezery, po ) žádnou, jinak jednu (!... bez mezer) ya(nk)[x], pu(t)[x] práce s (pojmenovanými) buffery Úvod do UNIXu 58
59 ex - rozšíření příkazů (II) sh,!cmd spuštění shellu, příkazu so(urce) provedení souboru w, w!, w>> zápis do souboru, read-only, append x, wq zápis a ukončení editace q, q! ukončení editace (bez uložení změn) n[!], e[!] [file] editace dalšího souboru (% značí aktuální jméno souboru, # alternativní jméno), pojmenované buffery, poslední regexp a příkaz se nemažou ab word string, una zkratka map[!] {char #n} string, unm mapování znaku resp. funkční klávesy (pro režim vstupu); řídící znaky přes ^V Úvod do UNIXu 59
60 Nastavení editoru vi Nastavování příkazem set, výpis set all autoindent, ai... odsazování nových řádek [noai] directory=dir, dir... pracovní adresář [=/tmp] ignorecase, ic... ignorecase při hledání [noic] 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í přes konec souboru [ws] wrapmargin=n, wm... pravý okraj pro zalamování [=0] Úvod do UNIXu 60
61 Předvolby ex a vi Před spuštěním editoru se provedou ex-příkazy uložené v: proměnné EXINIT domovském adresáři ve scriptu.exrc aktuálním adresáři ve scriptu.exrc pokud je nastavena volba exrc (implicitně vypnuta) Příkazy se zapisují bez úvodní dvojtečky (jako v ex). Úvod do UNIXu 61
62 Filtr sed stream editor (filtr); velké soubory, programování volání: sed [-n] {[-e] cmd -f script} [file] příkazy se aplikují na každou řádku příkazy se oddělují středníkem nebo koncem řádky provádějí se v pořadí zápisu příkaz nesmí končit mezerou příklad: hostname sed s/\..*// Úvod do UNIXu 62
63 sed - rozšíření syntaxe #komentář #n zapnutí přepínače -n adresa!příkaz doplněk adresního prostoru adresa{ příkazy } skupina příkazů Úvod do UNIXu 63
64 sed - rozšíření příkazů (I) příkazy edu: p, d, w, s a, c, i příkaz i vkládané řádky kromě poslední se ukončují \: sed 3a\ ctvrta\ pata parametry příkazu substitute p... modifikovaná řádka se vypíše na výstup w file... modifikovaná řádka se vypíše do souboru konverze znaků y/intable/outtable/ funkce analogická příkazu tr Úvod do UNIXu 64
65 sed - rozšíření příkazů (II) řízení toku n(ext) výpis řádky, nahrazení další řádkou :label definice návěští b(ranch)[label] skok na návěští (na konec) t(est) [label] podmíněný skok (pokud od posledního načtení řádky nebo posledního provedení příkazu test byla provedena nějaká substituce) př.: :loop s/([^()]*)// t loop... vymaže všechny (i vnořené) spárované závorky Úvod do UNIXu 65
66 sed - rozšíření příkazů (III) víceřádkový prostor (zlom řádek ve vzoru: \n) N(ext) připojení další řádky ze vstupu P(rint) tisk první řádky z prostoru D(elete) vymazání první řádky z prostoru záložní prostor (hold space) h, H(old) kopie (append) do hold space g, G(et) kopie (append) do prostoru vzoru x(change) záměna prostorů Úvod do UNIXu 66
67 Příklady použití příkazu sed sed /record/,/end/d program.pas vypíše program bez definic rekordů sed /procedure/i\ { begin of procedure } program.pas vypíše před procedurami komentář sed 1p;$p program.pas vypíše zduplikovaně první a poslední řádku sed -n 3,4!p program.pas vypíše program bez druhých dvou řádek sed -n /:\([0-9]*\):\1:/p /etc/passwd vypíše uživatele se stejným UID a GID Úvod do UNIXu 67
68 Příklady použití příkazu substitute sed s/:.*//;s/^/user: / /etc/passwd výsledek: User: forst ls -1 *.c sed s/\(.*\).c/cp \1.c \1.bak/ výsledek: cp test.c test.bak echo ab sed s/a/b/;s/b/a/ výsledek: ab správně: y/ab/ba/ s/a/x/g;s/b/a/g;s/x/a/g sed s/.*:\(.*\) \(.*\):.*/\1 \2/ /etc/passwd výsledek: Libor Forst:/home/ správně: s/.*:\(.*\) \([^:]*\):.*/\1 \2/ Úvod do UNIXu 68
69 Proces prováděný program... (nejméně jeden) proces kontext procesu paměť, soubory, proměnné,... rodičovský proces synovský proces komunikace signály, roury, sockety, sdílená paměť,... PID, příkaz ps Úvod do UNIXu 69
70 z hlediska uživatele kód, data, zásobník otevřené soubory Kontext procesu systémové proměnné (environment) z hlediska systému obecné registry, programový čítač, stavový registr procesoru, ukazatel do zásobníku, registry pro operace v pohyblivé řádové čárce, registry mapování paměti pamět, kterou proces dosud adresoval v uživatelském režimu paměť v prostoru jádra, která je s daným procesem spojena (např. systémový zásobník procesu) Úvod do UNIXu 70
71 Vznik procesu rodič (PID1) syn (PID2) PID2 fork() fork() 0 data data zásobník zásobník Úvod do UNIXu 71
72 Funkce na vytváření procesů fork() exec() wait() exit() vytváří kopii rodičovského procesu překryje adresní prostor procesu zadaným programem (rodičovský proces) čeká na skončení potomků ukončí proces a aktivuje rodičovský proces Úvod do UNIXu 72
73 Uživatelská relace fork() init getty login login: passwd: $ sh exec() exec() fork() wait() ftp> exit() ftp PID 1 PID 271 PID 312 Úvod do UNIXu 73
74 Stavy procesu tabulka procesů fork ZOMBIE READY (IDLE) swapout swapin SWAPPed exit wakeup swapout swapin RUN user volání jádra, interrupt RUN kernel sleep SLEEPing Úvod do UNIXu 74
75 Příkaz ps PID, TTY, STAT, TIME a COMMAND vlastních procesů cizí procesy: plný výpis: třídění: BSD -a (all users) -x (no terminal) SystemV -e (všechny) -p PID -t tty -U user -l (long) -u (usage) -l (long) -f (full) -okey, (pouze vyjmenované) -Okey, (vyjmenované navíc) -r (cpu) -m (memory) (mj. existuje PD program top) Úvod do UNIXu 75
76 Proces a I/O přístup ke vstupním a výstupním souborům přes tzv. file-descriptory 0 - standardní vstup (stdin) 1 - standardní výstup (stdout) 2 - standardní chybový výstup (stderr) - další otevírané soubory stderr stdout stdin Úvod do UNIXu 76
77 Komunikace mezi procesy zasílání signálů vstup/výstup přes roury System V Interprocess Communication semafory zasílání zpráv sdílená paměť BSD Sockets zasílání zpráv, vytváření proudů v rámci jednoho systému i po síti Úvod do UNIXu 77
78 Roury (pipes) v shellu - spojení vstupu a výstupu dvou procesů stdout 1 pipe 0 stdin ls more v programu: roura s externím příkazem: popen, pclose roura mezi subprocesy: pipe trvalé (pojmenované) roury začleněny do systému souborů, typ p vytvářejí funkce/příkazy mknod resp. mkfifo Úvod do UNIXu 78
79 Signály zaslání signálu: příkaz kill [-signál] PID funkce kill ošetření signálu: shell-příkaz trap [příkaz] signal... funkce signal standardní handlery: SIG_IGN, SIG_DFL, SIG_ERR nemaskovatelné signály: KILL, STOP výpis signálů: kill -l Úvod do UNIXu 79
80 Nejdůležitější signály HUP(1) restart programu INT(2), QUIT(3) přerušení (^C, ^\) ILL(4) chybná instrukce ABRT(6) volání funkce abort FPE(8) aritmetická chyba KILL(9) (nemaskovatelné) ukončení procesu SEGV(11) chyba adresace SYS(12) chybné volání systému ALRM(14) přerušení od časovače TERM(15) (maskovatelné) ukončení procesu (kill) STOP(17), TSTP(18), CONT(19) zastavení a spuštění procesu CHLD(20) ukončení syna USR1(30), USR2(31) uživatelské signály Úvod do UNIXu 80
81 Synchronizace Pokud dva procesy sdílejí nějaký zdroj, je nutné současný přístup ke kritickým sekcím programů ošetřit zámkem Test zámku a jeho nastavení musí být nepřerušitelná dvojice operací provádět v privilegovaném režimu Synchronizace přes soubor: program se pokusí vytvořit tzv. lock soubor - pokud se to nepodaří, je zdroj zamčen po skončení programu se soubor smaže problém: po havárii soubor nadále existuje řešení: do souboru se napíše PID procesu problém: aktivní čekání na uvolnění zdroje Úvod do UNIXu 81
82 System V Interprocess Communication semafory: zobecnění P a V operací [Dijkstra, Dekker] ošetření dead-locku, havárie procesu funkce: semget, semop, semctl zasílání zpráv: systém vytvoří komunikační kanál daného čísla funkce: msgget, msgsnd, msgrcv, msgctl sdílená paměť: systém přidá procesu do tabulky žádanou oblast funkce: shmget, shmat, shmdt, shmctl Úvod do UNIXu 82
83 BSD Sockets Socket - jeden konec kanálu pro klient-server komunikaci Systémové funkce: - socket vytváří deskriptor podle domény (address family): AF_UNIX, AF_ INET typu: virtuální okruh (stream), datagram - bind přiřazuje vlastní adresu: UNIX: jméno, INET: IP adresa, port - 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 83
84 Terminál uživatel komunikuje se systémem prostřednictvím terminálu - buďto skutečného nebo pseudoterminálu vlastnosti v /etc/termcap resp. /etc/terminfo typ terminálu v proměnné TERM inicializace terminálu příkazem tset změna vlastností příkazem stty (např. stty erase znak) přístup na vlastní terminál přes zařízení /dev/tty Úvod do UNIXu 84
85 Řídící znaky některé lze předefinovat, některé závisí na shellu konzistence terminálu a shellu typické sekvence: Ctrl+H - Ctrl+S - Ctrl+Q - Ctrl+C - backspace pozastavení výpisu pokračování výpisu ukončení procesu (SIGINT) Ctrl+\ - dtto s dumpem (SIGQUIT) Ctrl+D - Ctrl+Z - konec vstupního souboru suspendování procesu (SIGTSTP) další spuštění: fg resp. bg Úvod do UNIXu 85
86 Práce s časem spuštění programu s měřením času: time command pozastavení běhu: sleep seconds výpis aktuálního data a času: date [ +format ] Formát (shodný s funkcí strftime): text s %-direktivami aabb... krátké/dlouhé jméno dne/měsíce dmyyhms... datum a čas číselně uuvjc... číslo dne v týdnu, týdne, dne v roce, století cxx... normální tvar data a času Úvod do UNIXu 86
87 Neinteraktivní zpracování spuštění příkazu se zablokovaným signálem HUP a QUIT a výstupem do $HOME/nohup.out nohup command spuštění příkazu v určený čas (uživateli musí být povoleno v souborech at.allow resp. at.deny, výstup jde uživateli mailem): at {-t mmddhhmm time [+incr ] } command příkaz umožňuje vypisovat (-l) a mazat (-r) joby dtto pravidelné spouštění pomocí démona cron: crontab [-l] příklad záznamu: 0 1 * * 1-2,5 /usr/sbin/backup Úvod do UNIXu 87
88 Shell základní program pro komunikaci s UNIXem nezávislá komponenta systému Bourne shell, C shell, Korn shell čte řádky a provádí příkazy vlastní příkazy programy uložené v souborovém systému textový preprocesor metaznaky proměnné programovací jazyk & jeho interpret scripty Úvod do UNIXu 88
89 Bourne shell (/bin/sh) Steven Bourne, 1979 Korn shell (/bin/ksh) David Korn, pol. 80. Bourne again shell (bash), GNU Vývoj shellů C-shell (/bin/csh) Bill Joy, BSD UNIX tcsh Úvod do UNIXu 89
90 Metaznaky znaky se speciálním významem (např. *, >) speciální význam se ruší (tzv. escape-sekvence) znakem \ uzavřením do uvozovek (neruší význam \, $ a `) uzavřením do apostrofů (ruší i význam \) platí i pro speciální význam znaků: <LF>... namísto odeslání příkazu jen pokračovací řádka mezera... několik slov jako jeden parametr pozor zvláště u složitějších příkazů (např. sed "s/ [0-9]*/ #/"...) komentář: #komentář Úvod do UNIXu 90
91 Expanzní znaky Řetězec expanzních znaků se nahradí seznamem všech jmen souborů, které mu vyhovují. * - zastupuje libovolnou posloupnost znaků? - zastupuje libovolný znak [a-f0-9] - zastupuje znak ze seznamu [^a-z] - zastupuje znak z doplňku seznamu (sh:!) Bílé znaky a znaky ^, ], - se do seznamu zapisují uvozené znakem \. Expanzi provádí shell! Expanze nezahrnuje úvodní tečku ve jméně souboru. Úvod do UNIXu 91
92 Základní příkazy shellu : comment - prázdný příkaz echo [-n] text - výpis řetězce (bez odřádkování) cd [dir ] - změna adresáře (vlastnost shellu) pwd - výpis jména aktuálního adresáře exit [rc] - ukončení shellu s návratovým kódem set přepínač - nastavení přepínačů shellu ulimit limit - nastavení uživatelských limitů umask [mask] - nastavení defaultního módu souborů Úvod do UNIXu 92
93 Proměnné v shellu name=value name=value cmd $name, ${name} - nastavení hodnoty (sh a ksh) - dočasné nastavení pro příkaz cmd - použití hodnoty (textová substituce) Výpis hodnoty proměnné: set, echo $name Proměnné jsou součástí environmentu. Synovskému procesu (subshell, roura) se předávají jen exportované proměnné (příkazem export variable). Syn nemůže modifikovat proměnné otce! Úvod do UNIXu 93
94 Environmentové proměnné IFS PS1, PS2 PATH CDPATH TERM SHELL LOGNAME HOME MAIL - oddělovač polí (Internal Field Separator), implicitně: IFS=<mezera><tab><LF> - prompt, prompt na pokračovací řádce - cesta: adresáře se spustitelnými soubory (aktuální adresář není implicitní!) - cesta pro příkaz cd - typ terminálu - prováděný shell - jméno uživatele - domovský adresář - soubor s poštou Úvod do UNIXu 94
95 Podmíněná substituce proměnných zápis hodnota, je-li proměnná name definována nedefinována ${name:-value} $name value ${name:+value} value ${name:=value} ${name:?value} $name $name value +nastavení name=value +echo value a exit Úvod do UNIXu 95
96 Příkazové soubory - skripty přímé volání (práva +rx): script parametry volání přes shell (práva +r): sh [optiony] script parametry vložené volání (běží na stejné úrovni shellu):. script první řádek může obsahovat popis interpretu: #!cesta_k_interpretu [optiony] startovací skripty (běží na úrovni login-shellu): /etc/profile,.profile Úvod do UNIXu 96
97 Práce s parametry, speciální proměnné $# - počet parametrů scriptu $0 - název scriptu $n - n-tý parametr scriptu shift [n] set - text - posun číslování parametrů - nastavení nových parametrů př.: set - a + b $1= a, $2= +, $3= b, $#=3 $* - všechny parametry scriptu $@ - dtto, ale $@ je $1 $2... $? - návratový kód posledního příkazu $$ - PID tohoto shellu $! - PID posledního backgroundového jobu Úvod do UNIXu 97
98 cmd < file cmd << str cmd << \str Přesměrování vstupu příkazu zápis přesměrování... cmd << - str vstupu ze souboru file vstupu ze vstupu shellu (textu shellscriptu) vstup se chová jako text v uvozovkách př.: ed xxx << END ${cislo_radky}d END dtto, text se chová jako v apostrofech př.: ed xxx << \END 1,$d END dtto, text je možno odsazovat př.: ed xxx <<- END 1,$d END Úvod do UNIXu 98
99 cmd > file cmd 2> file cmd >> file cmd 2>> file cmd 2>&1 Přesměrování výstupu příkazu zápis přesměrování... standardního výstupu do souboru file chybového výstupu do souboru file př.: rm xxx 2> /dev/null standardního výstupu na konec souboru chybového výstupu na konec souboru chybového výstupu do standardního, pozor na pořadí přesměrování: - grep xxx $soubor > log 2>&1 přesměruje oba výstupy do souboru log - grep xxx $soubor 2>&1 > log výstup do souboru log, chyby na výstup Úvod do UNIXu 99
100 Kombinování příkazů cmd1 cmd2 roura (pipe) mezi příkazy př.: ls -l *.c wc -l cmd1; cmd2 sekvence příkazů cmd1 cmd2, cmd1 && cmd2 podmíněná sekvence příkazů př.: rm aa && echo Soubor aa smazan { cmd1; cmd2;} skupina příkazů (cmd1; cmd2) provedení příkazů v subshellu př.: (cd wrk; rm *) Úvod do UNIXu 100
101 Příkaz read Příkazem read var načteme řádku ze vstupu do proměnné var Příkaz nastavuje návratový kód (dá se testovat) Pokud má příkaz více argumentů, čte postupně do jednotlivých proměnných pole vstupní řádky (do poslední proměnné zbytek); oddělovač polí udává hodnota proměnné IFS Při spuštění z příkazové řádky čte z terminálu, ale lze jej přesměrovat (read var < file), naopak lze vynutit čtení z terminálu (read var </dev/tty) Pokud vstupní řádka končí znakem \, načte se i následující a spojí se (zapne/potlačí option -e/-r) Úvod do UNIXu 101
102 Příklady použití read echo -n Napiš číslo: ; read x... přečte odpověď IFS=: read user x x x name x < /etc/passwd... načte login a jméno (prvního) uživatele LHOST=ss1000.ms.mff.cuni.cz echo $LHOST cut -f1 -d. read SHOST... nic (SHOST se nastaví v synovi ) echo $LHOST cut -f1 -d. > /tmp/x.$$ read SHOST < /tmp/x.$$ rm /tmp/x.$$ Úvod do UNIXu 102
103 Náhrada výstupu příkazu...`cmd`... - vložení výstupu příkazu cmd do textu příkazu př.: SHOST=`echo $LHOST cut -f1 -d.` SHOST=pocitac vložený příkaz běží ve stejné úrovni shellu pozor na vnořené použití nutno escapovat vnitřní apostrofy od ksh výše lze použít...$(cmd)... Úvod do UNIXu 103
104 Vícenásobné čtení řádky eval arg - argumenty se zpracují, spojí se mezerami, výsledek se znovu načte a provede př.: name=prvni eval $name=retezec prvni=retezec - přiřadí do proměnné daného jména př.: eval echo \$$# - vypíše hodnotu posledního parametru Úvod do UNIXu 104
105 Řídící struktury if příkaz then příkazy [elif příkaz then příkazy] [else příkazy] fi {while until} příkaz do příkazy done case text in vzor1 vzor2 ) *) příkazy;; příkazy;; esac for var [ in text ] do příkazy done Úvod do UNIXu 105
106 Příkaz test volání: test podmínka nebo [ podmínka ] v případě pravdivé podmínky vrací 0 pozor na nenastavené proměnné, mezery apod.: špatně: [ -z = $x ], [-z="$x"] správně: [ -z = "$x" ] logické operace (mají nepodmíněné vyhodnocování): konjunkce: cond1 -a cond2 disjunkce: cond1 -o cond2 negace:! cond závorky: ( cond ) pozor - v shellu je nutno zrušit metavýznam Úvod do UNIXu 106
107 Operátory příkazu test -f file - soubor file existuje -d file - soubor file je adresář -L file - soubor file je symbolický link -r file - uživatel má k souboru file právo r -w file - uživatel má k souboru file právo w -x file - uživatel má k souboru file právo x -s file - soubor file má nenulovou délku -z str - řetězec str je prázdný -n str - řetězec str je neprázdný str1 = str2 str1!= str2 - rovnost řetězců - nerovnost řetězců int1 -eq int2 - rovnost čísel (-ne, -lt, -le, -gt, -ge) Úvod do UNIXu 107
108 Příkaz expr volání: expr opnda op opndb vypíše výsledek a vrací návratovou hodnotu shell nemá sám aritmetiku, práci s řetězci! logické operátory: =, <, >, <=, >=,!= aritmetické operátory: +, -, *, /, % řetězcové operátory: string : regexp resp. match string regexp substr string pos len length string index string chars pozor na metaznaky Úvod do UNIXu 108
109 Řídící struktury - if Syntaxe: Příklad: if příkaz then příkazy [elif příkaz then příkazy] [else příkazy] fi if mkdir tmp; then echo vytvoren elif [ -d tmp ]; then echo jiz existoval else echo nejde vytvorit fi Úvod do UNIXu 109
110 Řídící struktury - case Syntaxe: Příklad: case text in vzor1 vzor2 ) příkazy;; *) příkazy;; esac case $1 in -h -\? '' ) echo "Navod:..." exit;; *.Z ) uncompress $1;; * ) compress $1;; esac Úvod do UNIXu 110
111 Řídící struktury - while, until Syntaxe: Příklad: {while until} příkaz do příkazy break continue done [< file ] [> file ] while read line; do case $line in END ) break;; \#* ) continue;; * ) eval $line;; esac done < script Úvod do UNIXu 111
112 Řídící struktury - for Syntaxe: Příklad: for var in text do příkazy break continue done lan=cz for x in *; do case $x in *.$lan ) cp $x ${x}_bak;; esac done Úvod do UNIXu 112
113 Čtení vstupního souboru while read x < file; do čte stále první řádku cat file while read x; do y=`expr $y + 1` done... proměnná y se nastaví pouze v synovi cat file ( while read x; do echo -n Mam smazat $x? (a/[n]) read z case $z in a* A* ) rm $x;; esac y=`expr $y + 1` done; echo $y )... proměnná z se čte také ze souboru... read z < /dev/tty Úvod do UNIXu 113
114 Řídící příkazy cmd & wait - provedení na pozadí - čekání na skončení procesu na pozadí...počínaje csh je dokonalejší správa (jobs,...) exec cmd - ukončí shell a provede příkaz...počínaje ksh je možno přiřadit soubory deskriptorům bežícího exempláře shellu Úvod do UNIXu 114
115 Definice funkce name: name(){ statements Funkce } volání+parametry stejné jako při volání příkazu uvnitř funkce jsou přístupné pomocí $#, $1 atp. návratovou hodnotou je návratová hodnota posledního příkazu, lze nastavit: return val priorita: funkce, interní příkazy, programy interní příkaz lze vyvolat pomocí command cmd funkce se nedědí do subshellů Úvod do UNIXu 115
116 Ošetření signálů v shellu Interní příkaz: trap [command] sig... Příkaz command se provádí v rámci shellu Synovský proces nemá možnost ošetřit signály zamaskované otcem Zamaskování signálů: trap sig... Defaultní ošetření: trap sig... Úvod do UNIXu 116
117 Postup zpracování řádky Postupuje se zleva doprava v následujících krocích: 1. rozdělení řádky na atomy 2. zpracování řídících operátorů 3. zpracování operátorů přesměrování 4-5. náhrada proměnných náhrada vložených příkazů 6. definice proměnných 7. rozdělení na pole 8. náhrada expanzních znaků 9. zrušení escape-sekvencí Úvod do UNIXu 117
118 Volby (options) shellu Volby se dají zadat z příkazové řádky při spuštění shellu na první řádce shell-scriptu příkazem set Nedůležitější volby: -a... všechny proměnné jsou exportovány -e... chyba v příkazu způsobí ukončení shellu -f... zákaz expandování znaků -n... příkazy jsou pouze vypsány a neprovádí se -t... provede se pouze jeden příkaz -v... vypisují se vstupní řádky shellu -x... příkazy se před provedením vypisují Úvod do UNIXu 118
119 C-shell Zásadní odlišnosti:.login,.cshrc startup script set var=str, env, var expr proměnné foreach, výrazy a příkazy C >&, >>&, & přesměrování chybového výstupu $< přímý vstup z terminálu Novinky přejaté nebo modifikované: ~[user] domovský adresář {vara,varb} výčet variant pro expanzi <ESC> kompletace jmen souborů history,![[-]n],![[?]str] historie příkazů alias name str přejmenovávání příkazů pushd, popd příkaz cd se zásobníkem Úvod do UNIXu 119
120 Korn shell cd old new, cd - náhrada v cestě, undo cd VISUAL, set -o ed historie s opravováním řádku \ resp. <Esc><Esc> kompletace jmen FPATH cesta pro funkce *(), regulární expanzní znaky ${var#pat}, ${##}, ${%}, ${%%} $var zkrácená o min.(max.) řetězec ze zač.(konce) vyhovující vzoru [[]] interní test (<, >, -nt, -ot, -O, -G) let var=exp, (()) aritmetika ${v[e]}, ${#v[*]}, v[e]=s, set -A v str pole select, getopts, typeset Úvod do UNIXu 120
121 Filtr awk Aho, Weinberger, Kernighan jazyk podobný C, s výhradou: interpret práce s řetězci verze: awk, nawk, gawk volání: awk [opt] {-f script pgm} {params file -}... zpracovává postupně záznamy (řádky) zadaných souborů a provádí na ně příkazy awk-skriptu program (awk-skript) se skládá z klauzulí {BEGIN END /regexp/ cond } { cmds }... Úvod do UNIXu 121
122 Příklad programu awk BEGIN { procedur=0; lev=0 } /procedure/ { print; lev=1 radek=1; procedur++; next } { if( radek > 0 ) radek++ } /begin/ { if( lev > 0 ) lev++ } /end/ { lev-- } lev == 1 && radek > 0 { print "Radek:" radek; lev=0 } END { print "Procedur: ", procedur } Úvod do UNIXu 122
123 Diagram běhu programu (awk) BEGIN další parametr? ano otevření souboru ne další záznam? ano parsing záznamu ne ne další klauzule? END ano splněna podmínka? ne procedura Úvod do UNIXu 123 ano
124 Regulární výrazy (awk) Oproti regulárním výrazům v edu chybí \<, \>, \{, \}, \(, \), \n Mění se mírně význam metaznaků ^, $ začátek a konec záznamu/pole Objevují se nové metaznaky exp+, exp? opakování (>0, <=1) exp1 exp2 exp3 varianty (, ) uzávorkování výrazů Regulární výraz musí být zapsán jako literál (není možné testovat s výrazem uloženým v proměnné)! Úvod do UNIXu 124
125 Záznamy (awk) Záznamem je typicky řádka Oddělovač záznamů je řetězec, změna: RS=string např. pro HTML: RS= < Oddělovačem může být i prázdná řádka: RS= Změna se projeví až u následujícího záznamu Číslo záznamu: proměnná NR Oddělovač záznamů na výstupu (řetězec, který ukončuje příkaz print): ORS=string Úvod do UNIXu 125
126 Pole záznamu (awk) Oddělovač polí zadán při volání volbou -Fregexp, změna oddělovače: FS=regexp Oddělovač je regulární výraz, default: "[ \t\n]+" např. řádek a==b má tři pole, pokud FS= = má dvě pole, pokud FS= == nebo FS= =+ Změna platí až od dalšího záznamu Oddělovač parametrů příkazu print: OFS=sep Počet polí: proměnná NF Úvod do UNIXu 126
127 Základní syntaxe awk Jazyk awk je řádkově orientovaný Příkazy se oddělují středníkem nebo koncem řádky, příkaz musí být na jedné řádce Má-li příkaz pokračovat na další řádce, musí předcházející řádka končit zpětným lomítkem (výjimka: za podmínkou např. příkazu if může následovat nová řádka) Komentář: text na řádce počínaje znakem # Úvod do UNIXu 127
128 Konstanty, proměnné, pole(awk) Konstanty běžné aritmetické konstanty řetězce se vyznačují uvozovkami escape sekvence: \b, \f, \n, \r, \t, \ooo, \xxx Proměnné mají aritmetickou i řetězcovou hodnotu jsou inicializovány asociativní pole (indexem je řetězec): var[item] (nawk) speciální member operátor: item in var Pole záznamu: $n např.: druhy=$2; n=5; paty=$n pozor: NF (počet polí) a $NF (poslední pole) Úvod do UNIXu 128
129 arimetické operátory: Výrazy (awk) běžné C-operátory: +, -, *, /, % (modulo) umocnění: ^ přiřazovací operátory, in(de)krement: =, +=,..., ++, -- operátor zřetězení: mezera př.: File: filename opened relační a logické operátory (výsledek je 1/0): běžné C-operátory: <, >, <=, >=, ==,!=,!,, && operátor match (shoda s regulárním výrazem zadaným literálem, nikoliv proměnnou) a jeho negace: ~,!~ např. test, zda 2. pole začíná tečkou: $2 ~ /^\./ (nawk) podmíněný výraz: cond? then : else Úvod do UNIXu 129
130 Základní příkazy awk {cmd1;cmd2}... složený příkaz if(cond)cmd [;else cmd]... podmíněný příkaz while(cond)cmd... příkaz cyklu do cmd;while(cond)... příkaz cyklu for(init;test;step)cmd... příkaz cyklu for(var in array)cmd... příkaz cyklu break, continue... ukončení (těla) cyklu next... ukončení zpracování záznamu exit... ukončení programu (skok na END) Úvod do UNIXu 130
131 Výstupní příkazy (awk) print tisk celé řádky, řádka ukončena ORS (defaultně <LF>) print str1, str2,... tisk řetězců oddělených OFS (mezera), ukončený ORS printf(fmt, par1, par2,...) formátovaný tisk print,printf() > filename výpis do souboru (max. 10 otevřených souborů) print,printf() >> filename append do souboru př.: printf( %s::%d:\n,grp,gid)>> /etc/group Úvod do UNIXu 131
132 Formátovací konvence Obecný tvar: %[flags][width][.precision]type %c, %%... výpis jednoho znaku, výpis procenta %s... výpis řetězce (počet znaků udává precision) %u, %d, %o, %x... celé číslo (bez znam., dek., okt., hex.) %e, %f, %g... reálné číslo Modifikátory: %[-] width [.len] s... zarovnání vlevo, max. délka %[+][0]width fmt-spec... vynucení znaménka, ved. nul %width [.precision] fmt-spec... přesnost reálných čísel Podobné formátovací konvence se používají i pro příkaz hexdump a funkci printf v jazyce C Úvod do UNIXu 132
133 Funkce v awk matematické funkce: int, cos, sin, exp, log, sqrt (nawk): atan2, rand, srand řetězcové funkce: index(s,t)... vrací pozici t v s nebo 0 length(s)... vrací délku řetězce s split(s,var,sep)... rozdělí řetězec s na slova oddělená separátorem sep a přiřadí je do prvků pole var, vrací počet např.: split( ,ip,. ) sprintf(fmt,...)... vrací formátovaný text jako řetězec substr(s,p[,n])... vrací podřetězec s délky n od pozice p (nawk): match, sub, gsub (gawk): tolower, toupper, strftime Úvod do UNIXu 133
134 Vlastní funkce (nawk) function name(parameter-list){ statements } return expression definují se na úrovni klauzulí nezáleží na pořadí vlastní knihovna funkcí: awk -f lib -f script... Úvod do UNIXu 134
135 Komunikace se systémem (awk) předávání parametrů z příkazové řádky: př.: awk {print > $DIR /log } nastavování proměnných z příkazové řádky (nawk): př.: awk var=value1 file1 var=value2 file2 proměnné environmentu (nawk): pole ENVIRON př.: print > ENVIRON[ HOME ] /log změna proměnné environmentu: nelze např.: eval awk {print PATH= path} volání příkazu: funkce system(command) př.: system( rm filename ) funkce vrací návratovou hodnotu, ale ne výstup příkaz pracuje v subshellu! Úvod do UNIXu 135
136 Konfigurace programu (awk) Příklad předání více parametrů přes echo: echo $LOW $HIGH awk NR == 1 { low=$1; high=$2; FS= : ; next } { # pro ostatni radky } - /etc/passwd Příklad použití konfiguračního souboru: awk -F: /^-CFG:/ { cfg[$2]=$3; next } { # pro ostatni radky } cfg /etc/passwd Soubor cfg obsahuje řádky tvaru -CFG:low:12 Úvod do UNIXu 136
137 Příkaz getline, roura (nawk) getline [var] [<{ - filename}] načtení řádky z právě čteného souboru, ze standardního vstupu resp. ze souboru filename do polí $1,... resp. do proměnné var př.: getline < "/etc/hosts" command getline čtení výstupu příkazu (roura) př.: "pwd" getline dir print command výstup do roury př.: printf "Job %d ended.", id "mail " adm Úvod do UNIXu 137
138 C - konvence *.c *.h *.o a.out jména zdrojových souborů programů v C jména hlavičkových souborů (headerů) přeložené moduly (object-moduly) jméno proveditelného souboru jako výsledek úspěšné kompilace /usr/include /usr/lib/lib*.a kořen stromu systémových headerů umístění knihoven object-modulů Úvod do UNIXu 138
139 Kompilátor Volání: cc [options] soubor... Nejdůležitější volby: -o soubor výstupní jméno -c pouze překlad (nelinkovat) -E pouze preprosesor (nepřekládat) -Olevel nastavení úrovně optimalizace -glevel nastavení úrovně ladicích informací -Djméno definuj makro pro preprocesor -Ujméno oddefinuj makro pro preprocesor -Iadresář umístění #include souborů -llib linkuj s knihovnou liblib.a -Lpath cesta pro knihovny (-llib) Úvod do UNIXu 139
140 Předdefinovaná makra Kromě standardních maker ( DATE, FILE, LINE, cplusplus, apod.) jsou v UNIXu zavedena další makra jako unix je vždy definováno v prostředí UNIXu mips, i386,... hardwarová architektura osf,... klon operačního systému SunOS verze operačního systému _POSIX_SOURCE, _XOPEN_SOURCE, _ANSI_C_SOURCE překlad podle příslušné normy Úvod do UNIXu 140
141 generátor příkazů správa SW projektů Program make příklad (soubor Makefile): program: main.o util.o cc -o program main.o util.o main.o: main.c program.h cc -c main.c util.o: util.c program.h cc -c util.c překlad potřebných souborů a slinkování programu: make [program] Úvod do UNIXu 141
Úvod do UNIXu. Libor Forst
Úvod do UNIXu Libor Forst Ú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,
A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk
A7B38UOS Úvod do operačních systémů 6. Cvičení Příkazy sed a awk sed sed [přepínače] 'příkaz' [soubory] sed [přepínače] -f skript [soubory] Stream editor - edituje neinteraktivně jeden nebo více souborů.
Proměnné a parametry. predn_08.odt :00:38 1
Proměnné a parametry predn_08.odt 16.04.2007 14:00:38 1 Proměnné a parametry Jméno proměnné - identifikátor [a-za-z_][a-za-z_0-9]* Hodnota proměnné textový řetězec celočíselná hodnota - ne v sh Přesun
Úvod do Operačních Systémů
Úvod do Operačních Systémů 9. cvičení Proměnné, složené příkazy, funkce, numerické výpočty. 1 Obsah Numerické výpočty v shellu externí příkazy Proměnné práce s proměnnými práce s pozičními parametry Bloky
Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2
Přednáška 2 Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. 1 Systém souborů (FS) I 2 Systém souborů II Logický systém souborů pro běžného uživatele se jeví jako jediná homogenní struktura
Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8
Přednáška 8 Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. 1 Proměnné Jména nových proměnných by neměly kolidovat se jmény předdefinovaných proměnných.
konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian
02 konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian Kernighan v r. 1973 přepsán do jazyka C Psát programy,
Úvod. unx-predn_01-uvod.odt 25.02.2008 16:13:43 1
Úvod unx-predn_01-uvod.odt 25.02.2008 16:13:43 1 Operační systém UNIX Přednášky Jan Zajic, zajic@fel.cvut.cz, K226 Web service.felk.cvut.cz/courses Cíl předmětu pokročilý uživatel začínající administrátor
Základní příkazy OS UNIX
1 Základní příkazy OS UNIX Výpis obsahu adresáře ls [přepínače] [soubor]! výpis informací o zadaných souborech! pokud zadáme jméno adresáře, je vypsán obsah adresáře (seznam souborů, které jsou v adresáři
Úvod do Linuxu. SŠSI Tábor 1
Úvod do Linuxu SŠSI Tábor 1 Trocha historie konec 60. let - AT&T vyvíjí MULTICS 1969 - AT&T Bell Labs - začátek OS Unix začátek 70.let - AT&T vývoj OS Unix kolem 1975 - University of California at Berkley
Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.
Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu
Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno
Operační systémy IOS 2009/2010 Tomáš Vojnar Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno ÚÓ Ò Ö ØºÚÙØ ÖºÞ Úvod do UNIXu p.1/11 Unix úvod Úvod do UNIXu p.2/11
Úvod do Operačních Systémů
Úvod do Operačních Systémů 8. cvičení Práce s procesy a úlohami, příkaz test 1 Obsah Práce s procesy ps, ptree, pgrep, time kill, trap nice, stty, truss (strace) vmstat, top Práce s úlohami test nohup,
Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4
1 Přednáška 4 Regulární výrazy. Filtry grep, sed a awk. 2 grep grep [přepínače] vzor [soubory] Implicitně vypíše na standardní výstup řádky, které obsahují zadaný vzor. Vzor může být definován základním
Unix je víceuživatelský a víceúlohový OS
Unix je víceuživatelský a víceúlohový OS Mezi základní úkoly každého OS patří: - Správa hardwareových prostředků - Správa souborového systému - Správa procesů - U víceuživatelských systémů rovněž řízení
Linux-příkazový řádek
Linux-příkazový řádek Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,
Regulární výrazy. Filtry grep, sed a awk.
Přednáška 5 Regulární výrazy. Filtry grep, sed a awk. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2011 Příprava studijního programu Informatika je podporována projektem
Přednáška 5. Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. Úvod do Operačních Systémů Přednáška 5
Přednáška 5 Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. 1 Uživatel Při přihlášení do systému musí uživatel: identifikovat systém, na který se chce přihlásit fyzické umístění
awk programovatelný filtr
awk programovatelný filtr Spouštění: Awk vzor {akce} nebo awk f prg_soubor [ soubory ] čte řádky ze zadaných souborů, nebo ze standardního vstupu výstup směřuje na standardní výstup Struktura programu:
Přednáška 1. Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů. SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů.
Přednáška 1 Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů. 1 Hodnocení studentů III Klasifikace 90 100 bodů A (výborně)
Systém souborů (file system, FS)
UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je
Administrace Unixu a sítí. Tomáš Kouba <
Administrace Unixu a sítí Tomáš Kouba , < tomas@jikos.cz> Obsah přednášky I. Co je UNIX Vztah UNIX vs. Linux Opakování z pohledu uživatele (příkazová řádka) Správa uživatelů Disky,
Sekvenční a podmíněné provádění
Programování v Bourne shellu Sekvenční a podmíněné provádění Sekvenční provádění znamená vykonávání jednoho příkazu za druhým bez ohledu na okolnosti. Pro oddělení příkazů při sekvenčním provádění se používá
more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.
GREP, AWK, SED a jiné filtry v LINUXu Vybrané filtry more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu. head [-n] tail [-n]
Nastroje na zpracovani textu:
Nastroje na zpracovani textu: head - vypise prvnich x radku, standartne x=10 tail vypise poslednich x radku, standartne x=10 nl vypise a ocisluje radky v souboru a vysledek posle na STDOUT, soubor se nemeni
Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.
Odpovědi jsem hledala v prezentacích a na http://www.nuc.elf.stuba.sk/lit/ldp/index.htm Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je
Základní příkazy pro práci se soubory
A7B38UOS Úvod do operačních systémů 3. Cvičení Základní příkazy pro práci se soubory Obsah cvičení Informace o souborech a adresářích Informace o obsahu souborů Vytváření souborů a adresářů Manipulace
PSK3-9. Základy skriptování. Hlavička
PSK3-9 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Základy skriptování v unixovém shellu Vzdělávací oblast: Informační a komunikační technologie
Úvod do UNIXu. Okruh č. 4 - vi, regulární výrazy, grep a sed. Jakub Galgonek. verze r2. inspirováno materiály Davida Hokszy
Okruh č.4 Okruh č. 4 - vi, regulární výrazy, grep a sed verze 1.0.0-r2 inspirováno materiály Davida Hokszy Textové editory Okruh č.4 vi(m) prastarý textový editor (1976) dostupný v podstatě na každém UNIXovém
Úvod do Operačních Systémů
Úvod do Operačních Systémů 2. cvičení Seznámení se shellem, editor vi 1 Obsah Zpracování příkazové řádky Práce se znaky se speciálním významem Práce s proměnnými, prompt Aliasy Historie Editor vi 2 Formátování
Úvod do UNIXu. Okruh č. 1 - přihlášení, historie, práce se soubory. Jakub Galgonek. verze r1. inspirováno materiály Davida Hokszy
Okruh č. 1 - přihlášení, historie, práce se soubory verze 1.0.1-r1 inspirováno materiály Davida Hokszy Obsah Práce se soubory Textové editory Uživatelé a práva Regulární výrazy Programování v shellu Administrace
Úvod do UNIXu. Literatura. Literatura (základy) Literatura (programování) Konvence. Literatura (principy) Libor Forst
Úvod do UNIXu Libor Forst Úvod, charakteristika Historie, principy Systém souborů, organizace, příkazy Procesy, životní cyklus, komunikace Shell: koncepce, příkazy Zpracování textu (ed, grep, sed, vi,
Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích
Cvičení 2 Přesměrování vstupu a výstupu Příkaz > abc výstup příkazu jde do souboru abc. Pokud soubor neexistuje je vytvořen. Pokud existuje je přepsán. Příkaz >> abc výstup příkazu jde do souboru abc.
Linux Teorie operačních systémů a realita
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Linux Teorie operačních systémů a realita České vysoké učení technické Fakulta elektrotechnická Ver.1.00 2010 Historie Unixu a Linuxu MULTICS 50. - 60. léta minulého století,
Identita uživatelů, přístupová práva. Linux
Identita uživatelů, přístupová práva Linux Uživatel Při přihlášení do systému musí uživatel: identifikovat systém, na který se chce přihlásit fyzické umístění (lokální přihlášení) jméno systému/ IP adresa
Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici
Základní příkazy Úvod do Unixu man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp vypíše nápovědu o příkazu cp, manuálová stránka se ukončí stisknutím klávesy
PROGRAMOVÁNÍ V SHELLU
PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který
Operační systém UNIX
UNIX z pohledu uživatele 1 Operační systém UNIX Nejzákladnější komponenty:! jádro (kernel)! shell! utility Jádro operačního systému! v podstatě představuje vlastní operační systém! fyzicky je to jediný
Přednáška 1. Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů.
Přednáška 1 Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů. Úvod Informace a materiály k předmětu http://edux.felk.cvut.cz
1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5
Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5
Systém souborů (File System)
(File System) Základní pojmy Běžný uživatel vidí logický systém souborů jako jeden strom. Kořen stromu je kořenový adresář ( / = Root Directory ). Uzly stromu jsou adresáře (d = Directory). Listy stromu
Architektura systému GNU/Linux. Bohdan Milar bohdan.milar@liberix.cz
Architektura systému GNU/Linux Bohdan Milar bohdan.milar@liberix.cz Úvod Liberix, o.p.s. Nestátní nezisková organizace Založena na jaře 2005 Hlavní cíl - Podpora a propagace svobodných informačních technologií
LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V
LINUX ADRESÁŘOVÁ STRUKTURA Co to, hrome, je? V této lekci se budeme brouzdat adresáři. KOŘENOVÝ ADRESÁŘ kořen = root tak se mu říká Ve skutečnosti se jmenuje / (lomítko, slash). Vše ostatní je v ubuntu
Základní příkazy UNIXu (Linuxu)
Základní příkazy UNIXu (Linuxu) Ostatní clear smazání obrazovky man nápověda k příkazům (zkus man man) Ovládání příkazu man PgUp, b stránka vzhůru PgDn, mezerník stránka dolů šipky nahoru a dolů pohyb
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x
Cvičení 3. ZOS 2005, L. Pešička Plán procesy, jobs Find Wildcards Příklad uživatelé Procesy eryx4> ps x PID TTY STAT TIME COMMAND 15055 pts/6 S 0:00 -tcsh 15256 pts/6 R 0:00 ps x eryx4> top & [1] 15260
Úvod do Operačních Systémů
Úvod do Operačních Systémů 3. cvičení Základní příkazy pro práci se soubory 1 Obsah Zjištění informací o souborech a FS pwd, ls, du, df, quota Zjištění informací o obsahu souborů file, cat, strings, od,
Úvod do Operačních Systémů
Úvod do Operačních Systémů 10. cvičení Uživatelský vstup, zpracování přepínačů, psaní a ladění skriptů, plánování úloh. 1 Obsah Skript pro logování informací o systému, uložení konfigurace, transformaci
PSK3-3. Základní příkazy. Zápis cesty
PSK3-3 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Přehled základních příkazů systému Unix Vzdělávací oblast: Informační a komunikační technologie
Předmluva 23 1 Vítejte ve světě Linuxu 33. ČÁST 1 Operační systém Linux 49
Stručný obsah Stručný obsah 5 Předmluva 23 1 Vítejte ve světě Linuxu 33 ČÁST 1 Operační systém Linux 49 2 Začínáme 51 3 Nástroje příkazového řádku 69 4 Souborový systém Linuxu 99 5 Shell 129 ČÁST 2 Editory
Příkaz find, práce s procesy a úlohami, plánování úloh
A7B38UOS Úvod do operačních systémů 7. Cvičení Příkaz find, práce s procesy a úlohami, plánování úloh Find find adresář [výraz] V daném adresáři hledá soubory podle zadaného výrazu. Výraz se vyhodnocuje
ČÁST 1. Základy 32bitového programování ve Windows
Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25
Úvod do UNIXu. Jirka Boháč Gymnázium Jaroslava Seiferta j.bohac@gymjs.net 2003/2004
Úvod do UNIXu Jirka Boháč Gymnázium Jaroslava Seiferta j.bohac@gymjs.net 2003/2004 Abstrakt souborový systém, práce se shellem, přesměrování, job control, standardní unixové utility,...? Úvod do UNIXu
Skripty - úvod. Linux - skripty 2
Linux - skripty Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,
BASH. Kouzla s příkazovou řádkou. Petr Koloros
BASH Kouzla s příkazovou řádkou Petr Koloros Obsah příkazová řádka proměnné prsaté závorky {hot! hot!} manipulace se soubory vstup, výstup, přesměrování hlídače regularní výrazy filtry skriptování pitfalls
Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Úvod do Operačních Systémů
Úvod do Operačních Systémů 1. cvičení Úvod, práce v grafickém prostředí, jednoduché příkazy. 1 Obsah Organizace cvičení Seznámení s učebnou Přihlašování a odhlašování Práce v grafickém prostředí Příkazová
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Rozdělení operačních systémů
Rozdělení operačních systémů OS1 Přednáška číslo 2 Podle počtu ovládaných procesorů Jednoprocesorové (monoprocesorové) Víceprocesorové (multiprocesorové) Asymetrický processing (ASMP) na jednom procesoru
Rozšíření ksh vůči sh při práci s proměnnými
Rozšíření ksh vůči sh při práci s proměnnými (X36UNX, Jan Skalický, 2006) Pole homogenní lineární struktura implicitn ě s číselným rozsahem index ů 0...1023 (někde 4095) implicitn ě řetězcov ě orientovaná
Tomáš Borland Valenta
Architektura GNU/Linuxu Tomáš Borland Valenta Přehled stavebních prvků operačního systému GNU/Linux aneb od základů až po okna... Základní rozdělení Hardware Software Hardware Základní deska CPU Paměť
C2110 Operační systém UNIX a základy programování
C2110 Operační systém UNIX a základy programování 5. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém
Základy operačního systému LINUX část III
Základy operačního systému LINUX část III Přesměrování standardního vstupu a výstupu Přídavná zařízení jsou v systému reprezentována svými řídícími soubory. Řídící soubory umožňují procesům pracovat s
Program grep. predn_05.doc
Program grep je filtr, který předává na výstup řádky obsahující resp. neobsahující zadaný vzor. Název grep je zkratka pro skupinu příkazů ex editoru: globally search for regular expression and print result
Úvod, jednoduché příkazy
A7B38UOS Úvod do operačních systémů cvičení LS 2012/13 1. Cvičení Úvod, jednoduché příkazy Přednášející Cvičící Kdo je kdo v UOS doc. Ing. Jaroslav Roztočil, CSc. Ing. Jan Koller, Ph.D. Ing. Radek Havlíček,
VISUAL BASIC. Práce se soubory
VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit
LINUX přesměrování a roury
LINUX přesměrování a roury Trocha teorie: Veškerá komunikace uživatelů a jednotlivých procesů v LINUXu probíhá přes vstupně/výstupní (I/O) kanály. STDIN - standardní vstup (klávesnice) STDOUT - standardní
Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese https://service.felk.cvut.cz/heslo
Domácí příprava k předmětu YD38UOS Úloha 1 vzdálené připojení připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese https://service.felk.cvut.cz/heslo pro připojení použijte protokol ssh (pokud
Martin Kopta. Unixové shelly. Středisko Unixových Technologií, 2009
Martin Kopta Unixové shelly Středisko Unixových Technologií, 2009 Co je shell? Motivace Kde shelly potkáme GNU/Linux (Ubuntu, Debian, Gentoo, Redhat,..) FreeBSD, OpenBSD, NetBSD,.. HPUX, Tru64, Solaris,
Příkazová řádka. predn_02.odt :55:55 1
Příkazová řádka predn_02.odt 28.03.2007 14:55:55 1 Zpracování příkazové řádky shellem Shell je interpret příkazů programovacíhojazyka. Zpracovává příkazy nebo přiřazení hodnot poměnným. Vstupem shellu
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí
Výpočet v módu jádro v důsledku událostí - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení řízení se předá na proceduru pro ošetření odpovídající události část stavu přerušeného procesu
Přednáška 6. Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. Úvod do Operačních Systémů Přednáška 6
Přednáška 6 Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. 1 Procesy I Proces je spuštěný program. Každý proces má v rámci systému přiřazeno jednoznačné číslo
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Administrace OS Unix. Úvodní informace Principy administrace Uživatelé
Administrace OS Unix Úvodní informace Principy administrace Uživatelé Ing. Zdeněk Muzikář, CSc., Ing. Jan Žďárek, Ph.D. Příprava studijního programu Informatika je podporována projektem financovaným z
Úvod do programování. Lekce 1
Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
Identita uživatele (procesu)
(procesu) Vnější identita, identita uživatele Je tvořena přihlašovacím jménem a heslem Slouží k: přihlášení do systému pojmenování domovského adresáře jako jméno pro mail... Vnitřní identita, identita
Tahák na UOS 2008/2009
OBSAH OBSAH... 1 TYPOGRAFICKÁ POZNÁMKA... 2 NAZEV_PRIKAZU... 2 SPECIÁLNÍ ZNAKY... 2 SPOJOVÁNÍ PŘÍKAZŮ... 2 PŘÍKAZY PRÁCE S PROSTŘEDÍM... 3 TYPE... 3 WHICH... 3 WHO... 4 WHOAMI... 4 WHEREIS... 4 DATE...
Management procesu I Mgr. Josef Horálek
Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více
IT ESS II. 1. Operating Systém Fundamentals
IT ESS II. 1. Operating Systém Fundamentals Srovnání desktopových OS a NOSs workstation síťové OS (NOSs) jednouživatelské jednoúlohové bez vzdáleného přístupu místní přístup k souborům poskytují a zpřístupňují
Administrace Unixu a sítí
Administrace Unixu a sítí inet6 adr: fe80::210:a4ff:fee1:9e5d/64 Rozsah:Linka AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST MTU:1500 Metrika:1 RX packets:66690 errors:0 dropped:0 overruns:0 frame:0 TX
UŽIVATEL, SKUPINA, PROCES
UŽIVATEL, SKUPINA, PROCES Systém bez uživatele je jedině Matrix? Uživatelé se seskupují a řídí práci. Group = skupina uživatelů Trocha teorie: LINUX je systémem víceuživatelským. Tzn. Že k dané instanci
Střední odborná škola a Střední odborné učiliště, Hořovice
Kód DUM : VY_32_INOVACE_LIN.1.02 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 02- Zásady psaní a řetězení příkazů, jednoduchý skript DUM naučí žáky zásady práce s příkazy shellu BASH, zásady psaní
Tvorba výrazu: speciální znaky shellu se uvádějí do apostrofů jednotlivé části výrazu se oddělují mezerou
Příkaz expr Tvorba výrazu: speciální znaky shellu se uvádějí do apostrofů jednotlivé části výrazu se oddělují mezerou výraz1 výraz2 vrátí první výraz, pokud není nulový a není prázdným řetězcem, jinak
Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování
Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování nastudujte si programy find, chmod, ls nastudujte si problematiku přidělování práv v unixových systémech (práva pro uživatele,
Stručný návod k programu Octave
Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,
Úvod do Operačních Systémů
Úvod do Operačních Systémů 7. cvičení Přístupová práva, program find, archivace a komprese dat. 1 Obsah Přístupová práva find nastavení, kopírování maska přístupových práv testy akce volby operátory Archivace
Identita uživatele. predn_04.odt 28.03.2007 15:47:03 1
Identita uživatele predn_04.odt 28.03.2007 15:47:03 1 Identita uživatele (procesu) Vnější identita - identita uživatele Je tvořena přihlašovacím jménem a ověřována např. heslem Slouží k: přihlášení do
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
ŘÍDÍCÍ STRUKTURY - PODMÍNKY Pokusíme se rozvětvit sktipt v Bashi ŘÍDÍCÍ STRUKTURY - PODMÍNKY V této lekci budeme probírat podmínkové, tj., které nám pomohou rozvětvit skript a provádět určité pouze při
for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
Operační systémy. Tomáš Vojnar IOS 2010/2011. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno
Operační systémy IOS 2010/2011 Tomáš Vojnar Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno ÚÓ Ò Ö ØºÚÙØ ÖºÞ Úvod do UNIXu p.1/15 Unix úvod Úvod do UNIXu p.2/15
Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde. find adresář -name "maska_souboru" [-print] [-exec proces {} \;]
1 Základní příkazy UNIXu Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde pouze upozorníme na nejčastě používané přepínače. Dohledání jejich významu je na každém uživateli. 1.1
LINUX SOUBORY. Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. SPŠ Teplice - 3.
LINUX SOUBORY Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. Dlouhý výpis příkazu ls Zadejte příkaz ls s parametrem l. Před každou položkou (souborem
Struktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů
Název školy: Autor: Anotace: Vzdělávací oblast: Předmět: PSK3-7 Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Správa sezení a plánované spouštění procesů Informační a komunikační
C2110 Operační systém UNIX a základy programování
C2110 Operační systém UNIX a základy programování 6. lekce Petr Kulhánek, Jakub Štěpán kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta Masarykova univerzita, Kotlářská
Úvod do UNIXu. Literatura. Literatura (základy) Literatura (programování) Konvence. Literatura (principy) Libor Forst
Úvod do UNIXu Libor Forst Úvod, charakteristika Historie, principy Systém souborů, organizace, příkazy Procesy, životní cyklus, komunikace Shell: koncepce, příkazy Zpracování textu (ed, grep, sed, vi,