Úvod do UNIXu. Literatura. Literatura (základy) Literatura (programování) Konvence. Literatura (principy) Libor Forst
|
|
- František Tobiška
- 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, příkazy Zpracování textu (ed, grep, sed, vi, awk) Literatura L.Forst: Shell v příkladech aneb aby váš UNIX skvěle shell; Matfyzpress The Single UNIX Specification, Version 3 (POSIX), The Open Group Base Specifications Issue 7, IEEE Std manuálové stránky Úvod do UNIXu (2014) 1 Úvod do UNIXu (2014) 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 1993; ISBN G. Todino, J. Strang, J. Peek: Learning the UNIX Operating System; O Reilly & Associates 2002; ISBN A. Robbins: UNIX in a nutshell; O Reilly & Associates 2006; ISBN L. Lamb: Learning the vi Editor; O Reilly & Associates 1990; ISBN Úvod do UNIXu (2014) 3 Literatura (programování) M. Jelen: UNIX V - programování v systému; Grada 1993; ISBN C. Newham, B. Rosenblatt: Learning the bash Shell; O Reilly & Associates 2005; ISBN D. Dougherty: sed & awk; O Reilly & Associates 1997; ISBN A. Robbins, N. Beebe: Classic Shell Scripting; O'Reilly & Associates Inc., 2005; ISBN C. Albing, J. Vossen, C. Newham: bash Cookbook; O'Reilly & Associates Inc., 2007; ISBN E. Quigley: UNIX Shells by Example; Pearson Education Inc. (Prentice-Hall), 2005; ISBN X S. Kochan, P. Wood: Unix Shell Programming; SAMS, 2003; ISBN Úvod do UNIXu (2014) 4 Literatura (principy) 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 E. Raymond: The Art of UNIX Programming; Addison Wesley; 2004; ISBN Úvod do UNIXu (2014) 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 (2014) 6
2 Historie UNIXu Divergence 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 (2014) 7 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 (2014) 8 Varianty UNIXu 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 (2014) 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 Version 2 (UNIX98), Version 3 splnění je nutné pro užití obchodního názvu UNIX Úvod do UNIXu (2014) 10 Charakteristika UNIXu poučení ale nezatížení minulostí nekomerční prostředí otevřený operační systém systém souborů uživatelé, skupiny procesy, 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 (2014) 11 Klasický OS UNIX Klientský proces Modely OS... Správa procesoru Správa paměti I/O modul Systémové programy Aplikace Klientský proces Systémová volání Jádro Systémový proces... Systémový proces Úvod do UNIXu (2014) 12
3 Funkce jádra OS Řízení provádění úloh (vytváření, ukončení, suspendování, komunikace, přístup k periferiím,...) Správa systému souborů (organizace disku, vytváření a mazání souborů, práva, udržování konzistence,...) Správa paměti (přidělování, uvolňování, ochrana, 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,...) 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í vnější: HW (disky, periferie,...) vnitřní: událost CPU (adresace, dělení nulou,...) softwarové: použití speciální instrukce Správa paměti - oddělení virtuálního a skutečného adresního prostoru Úvod do UNIXu (2014) 13 Úvod do UNIXu (2014) 14 Virtuální paměť Jednotný hierarchický systém souborů paměť procesu 1 paměť procesu 2 paměť procesu 3 paměť procesu 4 / swap etc usr... dev home tty reálná paměť Úvod do UNIXu (2014) 15 Úvod do UNIXu (2014) 16 Strom adresářů Proces, komunikace /bin - základní systémové příkazy /dev - speciální soubory (zařízení, devices) /etc - konfigurační soubory /lib - základní systémové knihovny /tmp - veřejný adresář pro dočasné soubory /home - kořen domovských adresářů * /usr/man - manuálové stránky * /usr/spool - spool (tisk, pošta,...) /usr/local - lokální instalace * /usr/include - hlavičkové soubory jazyka C * na některých systémech se může umístění lišit Úvod do UNIXu (2014) 17 Proces zjednodušeně: běžící uživatelský nebo systémový program vzniká duplikací rodičovského procesu výpis procesů: příkaz ps 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 (2014) 18
4 Interpret příkazů (shell) základní program pro ovládání UNIXu nezávislá komponenta systému: více shellů formát příkazů: příkaz -přepínače operandy př. ls -l /etc metaznaky, např.: ls *.c > "vypis *.c" příkazy: interní: např. echo, cd, pwd externí: soubory uložené na disku (cesta: PATH) Jazyk shellu shell interpretuje vlastní programovací jazyk řídící konstrukce (např. for, if) proměnné PATH=/bin:/usr/bin:$HOME/bin jazyk řídí textové substituce (textový procesor) programování přímo na příkazové řádce shell-skript - soubor s programem pro shell sh test.sh;./test.sh Úvod do UNIXu (2014) 19 Úvod do UNIXu (2014) 20 Příkaz man Seznam uživatelů (/etc/passwd) Volání: man [-k] [section] topic Sekce manuálových stránek: 1 - obecné uživatelské příkazy 2 - služby jádra systému (syscalls) 3 - knihovní funkce (jazyka C) 4 - zařízení a ovladače zařízení 5 - formáty (konfiguračních) souborů 6 - triviální aplikační programy 7 - různé 8 - administrátorské příkazy a programy forst:dxyaf1eg:1004:11:libor Forst:/u/forst:/bin/sh Význam jednotlivých polí: uživatelské (login) jméno zakódované heslo (dnes např. v /etc/shadow...) číslo (UID); superuživatel (root) má UID 0 číslo (GID) primární skupiny uživatele plné jméno (s příp. komentářem) domovský adresář login-shell Úvod do UNIXu (2014) 21 Úvod do UNIXu (2014) 22 Seznam skupin (/etc/group) Uživatelská relace 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. Po přihlášení k systému (lokálně n. vzdáleně - např. pomocí ssh, putty.exe) se uživateli spustí jeho login-shell. Tím se zahájí jeho uživatelská relace (session). ukončení session: logout změna uživatele (login-shellu): login user start shellu nového 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 (2014) 23 Úvod do UNIXu (2014) 24
5 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: příjem: mail posílání: mail [-v ] [-ssubject ] ... zpráva o příjmu: biff [ y n ] přesměrování dopisů: $HOME/.forward forst@ms.mff.cuni.cz /usr/local/bin/filter Úvod do UNIXu (2014) 25 Systém souborů hierarchický systém jednotný přístup k zařízením, adresářům aj. diskové svazky, přístup k síťovým diskům konzistence, synchronizace (sync, fsck) ochrana souborů (přístupová práva) pravidla pro jména (délka, znaková sada, case senzitivita) cesty (absolutní, relativní,.,..) formát textových souborů (<LF>) Úvod do UNIXu (2014) 26 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), výpis do 1 sloupce (1), psát i skryté (aa), (ne)vypsat skupiny (g), třídit podle času (t), třídit pozpátku (r), značit typ souboru (F), rekurze (R), nepsat obsah adresářů (d), sledovat linky (L) Úvod do UNIXu (2014) 27 Typy souborů Typy souborů ve výpisu ls: - obyčejný soubor (regular file): posloupnost bytů d adresář (directory): sada binárních záznamů o souborech a podadresářích b blokový speciální soubor, zařízení (block device) c znakové (raw) zařízení (character device) l symbolický link p pojmenovaná roura (pipe) s socket Rozpoznání typu: příkaz file Úvod do UNIXu (2014) 28 Přístupová práva (file modes) tři kategorie vlastníků: user (u), group (g), others (o); platí vždy nejspeciálnější kategorie, v níž je uživatel tři práva: prohlížení (read: r), modifikace (write: w), provádění souboru / práce s adresářem (execute: x) setuid, setgid (s) pro proveditelné soubory: běh pod propůjčenou identitou vlastníka (uživatele / skupiny) setgid pro adresář: nové soubory budou mít stejnou skupinu jako adresář (default na řadě systémů) sticky bit (t) pro adresáře: mazat a přejmenovávat soubory smějí jen vlastníci souborů a root (př. /tmp) Úvod do UNIXu (2014) 29 suid sgid Změna přístupových práv uživatel (u) skupina (g) ostatní (o) sticky r w x změna práv (smí pouze uživatel-vlastník a root): chmod [-R] og-w,+x file... chmod [-R] 775 file... změna vlastníka (smí pouze root): chown, chgrp defaultní maska: umask mask_complement shell s novou defaultní skupinou: newgrp group Úvod do UNIXu (2014) 30
6 Organizace disku Fyzická: sektor, stopa (track), válec (cylindr), povrch Logická: oddíl (partition) (odpovídá block/raw device) zobrazení: příkaz df (display filesystems) konfigurační soubor /etc/fstab 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 (2014) 31 Index node Každý soubor na disku má právě jeden i-node, který obsahuje: počet linků ID vlastníka (uživatele a skupiny) 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 Výpis informace z i-nodu (není v normě): stat Úvod do UNIXu (2014) 32 Linky Adresace datových bloků Hard link /var Originál /etc Symlink /usr Tabulka přímých odkazů v I-node passwd passwd passwd Blok nepřímých odkazů 1.řádu I-list ln /etc/passwd passwd root:x:0:0:...../etc/passwd ln -s../etc/passwd passwd (zacyklení: Too many symlinks) Úvod do UNIXu (2014) 33 Blok nepřímých odkazů 2.řádu Blok nepřímých odkazů 3.řádu Datové bloky Úvod do UNIXu (2014) 34 Obecné příkazy kopírování souboru: cp [-prr] přesun (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 cesta k aktuálnímu adresáři: pwd [-P] vytvoření adresáře: mkdir [-p] [-mmode ] zrušení adresáře: rmdir není undelete! Úvod do UNIXu (2014) 35 Výpis souboru výpis (zřetězení) souborů: cat [files] výpis souborů po stránkách: more, pg, less výpis začátku souboru: head [-n n] [files] výpis konce souboru: tail [{-n -c} [+]n] [-f] [files] výpis souboru pro tisk: pr výpis souboru s číslováním řádek: nl 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 [-tfmt] [-joff] [-Nlen] výpis řetězců: strings Úvod do UNIXu (2014) 36
7 Příkaz more Volání: 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 (*) Enter... 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 (2014) 37 Tisk POSIX System V BSD tisk: lp [file] lp [file] lpr [file] -d printer -P printer -d printer výpis stavu tisku: zrušení tisku: lpstat job cancel job popis tiskáren : /etc/printcap implicitní tiskárna: proměnná PRINTER spool-oblast: /var/spool/* formátování tisku: pr, mpage lpq job -d printer lprm job -d printer Úvod do UNIXu (2014) 38 Zpracování textu porovnávání souborů resp. adresářů: diff [ -bbi ] { -e -Cn -rqs } file1 file2 comm [ -123 ] file1 file2 (musí být setříděné) výběr polí z řádek souboru (nemění pořadí polí): cut [ -s ] { -clist -flist -dchar } [files] spojení souborů po sloupcích resp. řádek souboru: paste [[ -s ] -dchars ] [files] rozdělení souboru po řádcích n. blocích: split [{ -llines -bbytes[{k m}] }] [ file [ name ] ] konverze znaků: tr [-cds] table1 [table2] př.: tr 'A-Z\n' 'a-z:' Úvod do UNIXu (2014) 39 Příkaz sort Volání: sort [-s] [-kbeg[,end][mod]] [-td] [-ucm] [files] Setřídí soubory na výstup resp. do souboru (-o file) Zadání třídícího pole: beg... pozice prvního znaku, end... pozice posledního tvar: field[.char]... číslování od 1 Modifikátory: b (bez mezer), f (ignorecase), n (čísla), r (opačně) Přepínače: t (oddělovač pole, default: posloupnost mezer), u (vyluč stejné klíče), m (merge only), c (check only), s (stable - není v normě) Pozor na lokální nastavení (LC_ALL=C) Podobný příkaz: uniq (netřídí, umí např. vypsat počty) Úvod do UNIXu (2014) 40 Příkaz find Volání: find cesta... podmínka... akce Podmínky: name, path, size, type, links, inum, fstype user, group, perm atime, ctime, mtime, newer hloubka vnoření ve stromě negace (!), -o, -a, závorky číselné hodnoty: n, +n, -n Akce: print (typicky default) exec; umístění jména: {}, konec příkazu: středník Příklad: find / -name *core -mtime +7 -exec rm {} ";" Varianty: which, whereis Úvod do UNIXu (2014) 41 Příkaz dd Provádí kopírování a konverzi dat Název a syntaxe parametrů odvozena od JCL příkazu DD (Data Definition) systému IBM 360 Parametry: if=file - vstup (impl. standardní vstup) of=file - výstup (impl. standardní výstup) bs=expr - velikost bloku (n[k][xn[k]]...) count=n - počet bloků skip=n - posun od začátku (seek) conv=c[,c]... - konverze Konverze ASCII/EBCDIC, pevná délka řádky/lf Př.: dd if=soubor bs=8 count=1 Úvod do UNIXu (2014) 42
8 Příkaz join Provádí databázový join - slití souborů podle rovnosti záznamů v dané klíčové položce Přepínače: t c - oddělovač polí {1 2} f - číslo klíčového pole v souboru 1 resp. 2 a n - ze souboru n se berou i nespárované řádky v n - ze souboru n se berou jen nespárované řádky e str - náhrada za chybějící pole o list - přesný tvar výstupu Formát popisu výstupu: seznam polí oddělených čárkami nebo mezerami, příp. zapsaný do více parametrů tvar pole: n.f resp. 0 Default: první pole je klíč, výpis všech polí po řadě, oddělovačem je posloupnost bílých znaků Úvod do UNIXu (2014) 43 Příkaz xargs volání: xargs cmd zavolá příkaz cmd, jako argumenty doplní obsah standardního vstupu př.: xargs rm < soubory_ke_smazani volání: xargs {-Llines -nwords } cmd 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 -Ifn cmd opakuje příkaz pro každou řádku standardního vstupu, její text doplní do příkazu na místa označená fn př.: ls *.c xargs -I{} cp -p {} {}.bak Úvod do UNIXu (2014) 44 Archivace archivace adresářů: tar {c t x} [f file] [files] př.: tar cf -. ssh host tar xf - distribuce SW balíků v normě nahrazen příkazem pax komprese souborů - historický standard (.Z): compress - GNU (.gz): gzip, gunzip systémová záloha: backup, dump, restore zálohování po síti: rdump, rrestore Řádkové editory ed - editor dostupný často i v diagnostickém režimu - edituje kopii souboru, opravy je nutno zapsat zpět - příkazy se berou ze standardního vstupu - dávková editace (ed-skripty) - volání: ed soubor sed - stream editor - edituje vstupní proud, výsledek píše na výstup - editovací příkazy jsou součástí volání - volání: sed příkazy [soubor...] nebo: sed -f příkazový_soubor [soubor...] Úvod do UNIXu (2014) 45 Úvod do UNIXu (2014) 46 Schéma práce ed a sed ed file file cmds w tmpfile sed cmds sed -f cmdfile file file Úvod do UNIXu (2014) 47 Formát příkazu, adresa řádku (ed) Syntaxe příkazů: [adresa[,adresa]]příkaz[parametry] V každém okamžiku je jedna řádka aktuální (na začátku poslední, dále poslední řádka minulého příkazu) Formáty zápisu adresy a jejich význam:. aktuální řádka (obvyklý default) ±[n] řádka relativní k aktuální řádce n řádka s absolutním číslem n (číslováno od 1) $ poslední řádka souboru /pat/ následující řádka obsahující vzorek?pat? předcházející řádka obsahující vzorek x řádka označená značkou (písmenem) x adr±[n] řádka relativní k řádce s adresou adr Úvod do UNIXu (2014) 48
9 Základní regulární výrazy (ed, sed, vi) Způsob definování řetězců v řadě utilit. Metaznaky:. jakýkoliv znak [list], [^list] jakýkoliv znak z výčtu, z doplňku výčtu př.: [a-za-z0-9_], [^ ], []^-] [[:třída:]] jakýkoliv znak z třídy př.: [[:alnum:]], [[:xdigit:]] ^, $ začátek a konec řádky (na začátku/konci regexpu) \c metaznak použitý jako znak (např.: \. je tečka) exp* libovolné opakování posledního podvýrazu př.: a*, [0-9][0-9]* exp\{n\}, exp\{m,[n]\} opakování nkrát, m-nkrát \(, \), \n uzávorkování části vzoru, zpětná reference př.: \(ab\)*, A\(.\)\1A Úvod do UNIXu (2014) 49 Poziční příkazy editoru ed Příkazy s aktuální řádkou jako implicitní adresou, příkazy označené * nemohou pracovat s blokem: print, num, list tisk, s čísly, včetně řídících znaků delete mazání řádek append*, change, insert* vkládání řádek (ukončení: tečka) př.: 0a novy radek 1 novy radek 2. move, to mark* (kx) přesun, kopírování řádek př.: /begin/,/end/ t $ nastavení značky x (písmeno) join spojení řádek (maže LF, impl. +1) substitute náhrada řetězců Úvod do UNIXu (2014) 50 Příkaz substitute (ed) Formát: s/pattern/replacement/{g n} První znak za názvem příkazu definuje oddělovač př.: s/\/$// nebo s=/$== Vzor je regulární výraz, náhrada je text s metaznaky: & celý původní text pokrytý regexpem př.: s/.*/(&)/ \n zpětná reference (pomalá!) př.: s/\(.*\) \(.*\)/\2 \1/ Globální nahrazování hledá další výskyt regexpu až za místem, které se naposledy modifikovalo: př.: s=/\./=/=g... nenahradí /././ Hvězdička absorbuje maximální vyhovující řetězec: př.: s/-\(.*\)/\1/g... vymaže jen první mínus Globální příkazy editoru ed Příkazy s implicitní adresou celý soubor : global, invert (v) provedení příkazu na vybraných řádkách g/pattern/cmd [\<LF>cmd] write (w [file]) uložení (pod stejným jménem) (v případě udání rozsahu se zapíšou jen dané řádky!) W file připsání do souboru w!cmd zápis do roury Příkazy s implicitní adresou poslední řádka souboru : read (r [file]) vložení textu souboru = výpis čísla řádky Úvod do UNIXu (2014) 51 Úvod do UNIXu (2014) 52 Nepoziční příkazy editoru ed Příklady použití příkazu global Příkazy bez adresy: undo edit (e [file]) file (f file) quit help zrušení poslední opravy (znovu-)otevření souboru změna jména editovaného souboru ukončení editace nápověda k poslední chybě g/integer/s//longint/g prodlouží program g/procedure/i\ { begin of procedure }\. před procedurami odřádkuje (s komentářem) g/^chapter/. W index\ /./ W index napíše seznam kapitol g/.*/ m 0 napíše soubor pozpátku Úvod do UNIXu (2014) 53 Úvod do UNIXu (2014) 54
10 Příkaz grep Původ názvu: g/re/p Varianty: egrep (-E, extended - rozšířené regulární výrazy) fgrep (-F, fixed - pouze pevné řetězce) Přepínače: -c(count), -l(listfiles), -n(number), -q(quiet) -i(ignorecase), -x(exact), -v(invert) -e expression, -f filename Rozšíření: -w(word), -H(head) -lines... počet vypsaných řádek před a po nalezené Rychlá implementace regexpů! Úvod do UNIXu (2014) 55 Filtr sed stream editor edituje vstup (typicky výstup jiného programu) výsledek editace (a/nebo příkazů tisku) vypisuje volání: sed [-n] { [-e] cmd -f script } [file] příkazy analogické jako v edu oddělují se 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 (2014) 56 Formát příkazu, adresa řádku (sed) Syntaxe příkazů: [adresa[,adresa]]příkaz[parametry] Neexistuje institut aktuální řádky, pokud není adresa uvedena, příkaz platí pro každou řádku Formáty zápisu adresy a jejich význam: n řádka s číslem n (číslováno od 1) $ poslední řádka /pat/ každá řádka obsahující vzorek Doplněk adresního rozsahu: adresa! příkaz... Složený příkaz: adresa { příkazy... } Komentář: # komentář... Úvod do UNIXu (2014) 57 Příkazy editoru sed (I) příkazy edu: p, d, s, w, q a, c, i příkaz i nové řádky kromě poslední se ukončují \ : sed '3a\ ctvrta\ pata' parametry příkazu substitute p... řádka se po modifikaci vypíše na výstup w file... řádka se po modifikaci vypíše do souboru konverze znaků y/intable/outtable/ funkce analogická příkazu tr Úvod do UNIXu (2014) 58 Příkazy editoru sed (II) řízení toku n(ext) konec práce s řádkou, načtení další řádky :label definice návěští b(ranch)[label] skok na návěští (na konec) t(est) [label] podmíněný skok (skočí, pokud od posledního načtení řádky nebo vykonání příkazu test byla provedena substituce) př.: :loop s:/\./:/:g t loop... vypustí z cesty všechny sekvence /./ Úvod do UNIXu (2014) 59 Příkazy editoru sed (III) více řádek v pracovním prostoru (oddělovač: \n) N(ext) připojení další řádky ze vstupu P(rint) tisk první řádky z prostoru D(elete) vymazání první řádky z prostoru odkládací prostor (hold space) h, H(old) kopie (append) do odkládacího prostoru g, G(et) kopie (append) do pracovního prostoru x(change) záměna obsahu prostorů Úvod do UNIXu (2014) 60
11 Příklady použití příkazu sed (I) 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 '4,6!p' program.pas vypíše soubor bez druhých tří řádek Úvod do UNIXu (2014) 61 Příklady použití příkazu sed (II) sed 's/:.*//;s/$/./;s/^/user: /' /etc/passwd výsledek: User: forst. ls *.c sed 's/\(.*\).c/cp -p & \1.bak/' výsledek: cp -p test.c test.bak echo ab sed 's/a/b/;s/b/a/' výsledek: ab správně: y/ab/ba/ nebo: s/a/\ /g;s/b/a/g;s/\n/b/g sed 's/.*:\(.*\) \(.*\):.*/\2 \1/' /etc/passwd výsledek: Burns:/home/frank Frank správně: s/.*:\(.*\) \([^:]*\):.*/\2 \1/ Úvod do UNIXu (2014) 62 Editor vi Režimy práce vi visual editor geneze: edexvi 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] i, a, I, A, o, O, s, S, cx, C, R <ESC>, (^C) režim vstupu příkazový režim ZZ : režim <LF>, <Bkspc> příkazů ex (:)q, (:)x Úvod do UNIXu (2014) 63 Úvod do UNIXu (2014) 64 Základní příkazy 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 (2014) 65 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 míst (,,, ) w, b, e, W, B, E o k slov (vpřed, vzad, na konec resp. s ignorováním 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 (2014) 66
12 Příkazy pro pohyb (II) Vkládání textu, opravy 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 (2014) 67 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é řádky 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 (2014) 68 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) 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 (2014) 69 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í % skok na odpovídající ), ] nebo } (nikoliv >) ^L obnovení obrazovky 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 jeho nahrazení výstupem příkazu cmd <m, >m provedení příkazů uložených v bufferu x ^W, ^V (režim vstupu) smazání slova, vstup řídícího znaku Úvod do UNIXu (2014) 70 ex - rozšíření příkazů (I) adresy mohou být odděleny středníkem - aktuální se stává první řádka místo poslední rozšíření příkazu substitute parametr c nahrazování s potvrzováním (y<lf>) metaznak ~ v regexpu předchozí výraz sekvence \< a \> v regexpu začátek a konec slova sekvence \u, \l, \U a \L v řetězci náhrady... převod malá/velká (platí na celé slovo) nové příkazy co (kopíruj, alias příkazu t) 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 (2014) 71 ex - rozšíření příkazů (II) sh,!cmd spuštění shellu, příkazu so(urce) provedení souboru w!, w>> zápis do read-only souboru, na konec souboru x, wq uložení souboru a ukončení editace q! ukončení editace bez uložení změn n[!] editace dalšího souboru (bez uložení změn) Pojmenované buffery, poslední regexp a editační příkaz zůstávají zachovány. e[!] [file] editace jiného souboru (% je symbol pro aktuální jméno souboru, # pro poslední použité jméno) 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 (2014) 72
13 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] 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 (2014) 73 Úvod do UNIXu (2014) 74 Proces Vznik procesu prováděný program... (nejméně jeden) proces plánování procesů - priorita příkaz ps PID rodičovský processynovský proces kontext procesu paměť, soubory, systémové proměnné,... komunikace signály, roury, sockety, sdílená paměť,... návratová hodnota (0..255) běh na popředí, na pozadí, daemon rodič (PID1) PID2 fork() data soubory zásobník syn (PID2) fork() 0 data soubory zásobník Úvod do UNIXu (2014) 75 Úvod do UNIXu (2014) 76 fork() exec() wait() exit() Funkce na řízení procesů vytváří kopii rodičovského procesu; je třeba ošetřit chybu Cannot fork překryje adresní prostor procesu zadaným programem (rodičovský proces) čeká na skončení potomků ukončí proces a předá rodičovskému procesu návratovou hodnotu Úvod do UNIXu (2014) 77 init Uživatelská relace fork(), exec() getty exec() login login: passwd: exec() $ sh fork(), exec() ftp wait() ftp> exit() PID 1 PID 271 PID 312 Úvod do UNIXu (2014) 78
14 Kontext procesu z hlediska uživatele kód, data, zásobník otevřené soubory 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ěť, 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) ZOMBIE RUN user exit volání jádra, interrupt Stavy procesu tabulka procesů fork READY (IDLE) RUN kernel swapout swapin wakeup sleep SWAPPed swapout swapin SLEEPing Úvod do UNIXu (2014) 79 Úvod do UNIXu (2014) 80 Priorita procesu Jeden z faktorů používaných pro plánování procesů Kladné číslo (čím vyšší, tím je proces hodnější ) Synovský proces dědí prioritu od otce Při startu je možné stanovit jinou prioritu nice -n incr cmd Inkrement obvykle povolen v rozsahu -20 až +20 Pouze root může zadávat záporné hodnoty Procesu lze změnit prioritu renice -n incr PID... Příkaz ps PID, TTY, STAT, TIME a COMMAND vlastních procesů System V BSD POSIX výběr procesů: -e (every) -a (all users) -A (All) -x (no tty) -p PIDs -t ttys -U users -G grps obsah výpisu: -l (long),... třídění: (PD program top) -l (long),... -okey, (pouze vyjmenované sloupce) -Okey, (sloupce navíc) -r (cpu) -m (mem) Úvod do UNIXu (2014) 81 Úvod do UNIXu (2014) 82 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 Komunikace mezi procesy zasílání signálů asynchronní řízení informace typu: nastala událost N 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 (typ souboru s) nebo mezi klientem a servrem po síti Úvod do UNIXu (2014) 83 Úvod do UNIXu (2014) 84
15 Obsluha signálů Nejdůležitější signály zaslání signálu: příkaz kill [-signal] PID funkce kill ošetření signálu: příkaz trap [command] signal... funkce signal, sigaction standardní handlery: SIG_IGN, SIG_DFL, SIG_ERR nemaskovatelné signály: KILL, STOP výpis signálů: kill -l Úvod do UNIXu (2014) 85 HUP(1) restart programu INT(2), QUIT(3) přerušení uživatelem (^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 (2014) 86 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 (sub)procesy: pipe trvalé (pojmenované) roury začleněny do systému souborů, typ p vytvářejí funkce/příkazy mknod resp. mkfifo Úvod do UNIXu (2014) 87 System V IPC Každé instanci prostředku je přiděleno ID 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 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 (2014) 88 BSD Sockets Model TCP aplikace 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 v souborovém systému (typ s) INET: IP adresa + port - listen zahájí příjem zpráv (mj. stanoví délku fronty) - accept (server) přijímá požadavek na kanál od klienta - connect (klient) navazuje spojení se servrem Klient socket bind connect write read close Server socket bind listen accept close read write Úvod do UNIXu (2014) 89 Úvod do UNIXu (2014) 90
16 Model UDP aplikace Start síťových daemonů Klient socket bind Server socket bind přímý start ve startovacích skriptech intenzivně využívané služby, se složitou inicializací connect write sendto sendmsg read readfrom readmsg close connect read readfrom readmsg write sendto sendmsg close Úvod do UNIXu (2014) 91 nepřímý start (on demand) provádí daemon inetd konfigurace v /etc/inetd.conf: bootps dgram udp wait root /etc/bootpd bootpd tftp dgram udp wait nobody /etc/tftpd tftpd /tftpboot whois stream tcp nowait nobody /etc/whoisd whoisd překonfigurování: kill -HUP PID server komunikuje přes filedeskriptory 0/1 Úvod do UNIXu (2014) 92 Terminál Řídící znaky uživatel využívá služeb systému 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 (re)inicializace terminálu příkazem tset změna vlastností příkazem stty (např. stty erase char) přístup na vlastní terminál přes zařízení /dev/tty Úvod do UNIXu (2014) 93 některé lze předefinovat, některé závisí na shellu nutný soulad terminálu a nastavení TERM typické sekvence: Ctrl+H - backspace Ctrl+S - pozastavení výpisu Ctrl+Q - pokračování výpisu Ctrl+C - ukončení procesu (SIGINT) Ctrl+\ - dtto s dumpem (SIGQUIT) Ctrl+D - konec vstupního souboru Ctrl+Z - suspendování procesu (SIGTSTP) další spuštění: fg resp. bg Úvod do UNIXu (2014) 94 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 skripty Úvod do UNIXu (2014) 95 Základní vestavěné příkazy shellu : comment - prázdný příkaz echo [-n] text - výpis textu (s/bez odřádkování) printf fmt arg... - výpis formátovaného textu pwd - výpis cesty k aktuálnímu adresáři cd [dir ] - změna adresáře (vlastnost shellu) exit [rc] - ukončení shellu s návratovým kódem set {+ -}opt... - nastavení přepínačů shellu ulimit [limit ] - nastavení uživatelských limitů umask [mask] - nastavení defaultního módu souborů Úvod do UNIXu (2014) 96
17 Formátovací direktivy printf Obecný tvar: %[flags][width][.precision]type %c... výpis jednoho znaku %s... výpis řetězce %u, %d, %o, %x... výpis čísla (unsign., dek., okt., hex.) %e, %f, %g... výpis reálného čísla %%... výpis procenta 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 Prakticky identické formátovací direktivy se používají i pro příkaz v awk a funkci v jazyce C Úvod do UNIXu (2014) 97 Metaznaky znaky se speciálním významem (např. *, >) speciální význam se ruší quotingem : zapsáním \ před metaznak (tzv. escape-sekvence) uzavřením do apostrofů (ruší význam všech metaznaků) uzavřením do uvozovek (neruší význam $, `, " a \) 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 (2014) 98 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 Bílé znaky se do seznamu zapisují uvozené znakem \. Pro znaky!, ], - platí stejná pravidla jako u regexpů. Expanzi provádí shell! Expanze nezahrnuje úvodní tečku ve jméně souboru, nepřekračuje hranici adresáře. Úvod do UNIXu (2014) 99 Proměnné v shellu name=value - nastavení hodnoty name=value cmd - nastavení pouze pro příkaz cmd $name, ${name} - použití hodnoty (textová substituce) ${#name} - substituce délky hodnoty Identifikátor - alfanumerické znaky, case senzitivní. Proměnné mají pouze textovou hodnotu. Substituce nenastavené proměnné - prázdný řetězec. Výpis hodnoty proměnné: set, echo "$name" Proměnné: lokální vs. environmentové. 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 (2014) 100 Environmentové proměnné IFS - oddělovač polí (Internal Field Separator), implicitně: IFS=<mezera><tab><LF> PS1, PS2 - prompt, prompt na pokračovací řá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áděný shell LOGNAME - jméno uživatele HOME - domovský adresář MAIL - soubor s poštou Úvod do UNIXu (2014) 101 Podmíněná substituce proměnných zápis definována nedefinována ${name:-value} $name value ${name:=value} ${name:+value} ${name:?value} hodnota, je-li proměnná name $name value $name value +nastavení name=value +echo value a exit Úvod do UNIXu (2014) 102
18 Příkazové soubory - skripty přímé volání (práva +rx): script params volání přes shell (práva +r): sh [options] script params vložené volání (běží ve stejném procesu shellu, nikoliv jako nová instance):. script první řádek může obsahovat interpret a optiony: #!abs_path_to_interpreter [options] startovací skripty (spouštějí se jako vložené volání): /etc/profile,.profile Úvod do UNIXu (2014) 103 Poziční parametry, speciální proměnné $n - n-tý parametr (skriptu), n <= 9 $# - počet parametrů (skriptu) $0 - název skriptu shift [n] - posun pozičních parametrů ($2 $1) set [--] text - nastavení nových pozičních parametrů př.: set -- a + b $1=a, $2=+, $3=b, $#=3 IFS=:; set $PATH $1=/bin,... $* - všechny poziční parametry jako text $@ - dtto, ale "$@" je "$1" "$2"... $? - návratový kód posledního příkazu $$ - PID běžícího shellu $! - PID posledního procesu na pozadí Úvod do UNIXu (2014) 104 Přesměrování vstupu příkazu zápis přesměrování vstupu příkazu... cmd < file... ze souboru file cmd << str... ze vstupu shellu (textu shellscriptu); vstup se chová jako text v uvozovkách př.: ed xxx << END ${cislo_radky}d END cmd << \str dtto; text se chová jako v apostrofech př.: ed xxx << \END 1,$d END cmd <<- str dtto; text je možno odsazovat př.: ed xxx <<- END 1,$d END Úvod do UNIXu (2014) 105 cmd > file cmd 2> file 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 cmd >> file standardního výstupu na konec souboru cmd 2>> file chybového výstupu na konec souboru cmd 2>&1 chybového výstupu do standardního, pozor na pořadí přesměrování: - grep xxx file > log 2>&1 oba výstupy do jdou souboru log - grep xxx file 2>&1 > log výstup do souboru log, chyby na výstup Úvod do UNIXu (2014) 106 Kombinování příkazů cmd1 [<LF>] cmd2 roura (pipe) mezi příkazy př.: ls -l *.c wc -l cmd1; cmd2 sekvence příkazů cmd1 [<LF>] cmd2, cmd1 && [<LF>] 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 podprocesu př.: (cd wrk; rm *) Úvod do UNIXu (2014) 107 Příkaz read Příkaz read var načte řádku ze vstupu do proměnné Nastavuje návratový kód (úspěch se dá testovat) Pokud má příkaz více argumentů, přiřazuje postupně do jednotlivých proměnných pole vstupní řádky (do poslední proměnné zbytek); oddělovače polí udává proměnná IFS; sousední bílé znaky se slučují; pro čtení as-is lze nastavit IFS='' Znak \ ve vstupu se interpretuje jako quoting (zruší funkci oddělovače polí, ale i konce řádky!); dá se potlačit přepínačem -r 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) Úvod do UNIXu (2014) 108
19 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... neudělá nic (SHOST se nastaví v synovi ) echo $LHOST cut -f1 -d. > /tmp/x.$$ read SHOST < /tmp/x.$$ rm /tmp/x.$$ Úvod do UNIXu (2014) 109 Použití výstupu příkazu...`cmd`... - vložení výstupu příkazu cmd do textu řádky př.: SHOST=`echo $LHOST cut -f1 -d.` SHOST=betynka příkaz běží jako podproces téže instance shellu maže se poslední LF pozor na vnořené použití nutno escapovat vnitřní apostrofy (a backslashe) řešení: postupně ukládat výsledek do proměnných od ksh výše lze použít...$(cmd)... př.: rm `cat soubory` vi `grep l '^\\.\\\\"' man8/*.8` Úvod do UNIXu (2014) 110 Řídící struktury Příkaz test 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 slovo in vzor1 vzor2 ) příkazy;; *) příkazy;; esac for var [ in text ] do příkazy done volání: test podmínka nebo [ podmínka ] v případě pravdivé podmínky vrací 0 pozor na nenastavené proměnné, mezery apod.: správně: [ -n = "$x" ] špatně: [ -n = $x ], [-n="$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 (2014) 111 Úvod do UNIXu (2014) 112 Operátory příkazu test -e file - soubor file existuje -f file - soubor file je obyčejný soubor -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 - rovnost řetězců (opravdu rovnost: $x = a*!) str1!= str2 - nerovnost řetězců int1 -eq int2 - rovnost čísel (též -ne, -lt, -le, -gt, -ge) Úvod do UNIXu (2014) 113 Příkaz expr volání: expr opnda op opndb... vypíše výsledek a vrací návratovou hodnotu shell nemá sám implementovanou aritmetiku! logické operátory: =, <, >, <=, >=,!= aritmetické operátory: +, -, *, /, % řetězcové operátory (v normě je pouze : ): string : regexp (automatické ukotvení na začátek!) match string regexp substr string pos len length string index string chars pozor na metaznaky Úvod do UNIXu (2014) 114
20 Řídící struktury - if Příklad: if [ -d tmp ]; then echo adresar existuje elif mkdir tmp; then echo adresar vytvoren else echo adresar nejde vytvorit fi Poznámky: Testovaným příkazem může být i roura. Výsledek příkazu může být znegován: if! cmd Je třeba ošetřit, pokud příkaz něco vypisuje: if echo "$x" grep... > /dev/null Úvod do UNIXu (2014) 115 Řídící struktury - case Příklad: case $1 in -h -\? ) echo "Navod:..."; exit;; '' *[!0-9]* ) echo "Nebylo zadano cislo"; exit;; * ) CISLO=$1;; esac Poznámky: V návěštích se používají wildcardy, ale bez zvláštního významu tečky a lomítka, shell je neexpanduje. Pořadí návěští je významné (někdy pomocí něj lze nahradit negaci nebo regexpy). V návěští lze použít (např. i testovanou) proměnnou. Úvod do UNIXu (2014) 116 Řídící struktury - while, until Příklad: while read line; do case $line in \#* ) continue;; * ) $line;; esac done < script Příklad: i=1; until mkdir /tmp/$i; do i=`expr $i + 1` done Příklad: while [ $# -gt 0 ]; do case $1 in -n ) N=$2; shift 2;; -n* ) N=`echo $1 cut -c3-`; shift;; * ) break;; esac done Úvod do UNIXu (2014) 117 Řídící struktury - for Příklad: for x in *; do case " MFF FF FaF FTVS " in *" $x "* ) cp $x ${x}_bak;; esac done Poznámky: Cyklus od 1 do n (seq není v normě): for i in `seq 1 $n`; do i=1; while [ $i -le $n ]; do i=`expr $i + 1` i=:; while [ ${#i} -le $n ]; do i=:$i Cyklus for se nehodí pro čtení souboru: for line in `cat soubor` Úvod do UNIXu (2014) 118 Příklad: čtení vstupního souboru n=0 while read x < file; do n=`expr $n + 1` done... čte stále první řádku n=0 cat file while read x; do n=`expr $n + 1` done... proměnná n se nastaví pouze v synovi n=0 while read x; do n=`expr $n + 1` done < file Příklad: čtení výstupu roury n=0 find... ( while read x; do printf "Mam smazat $x? (a/[n]) " read z case $z in n* N* ) continue;; esac rm $x; n=`expr $n + 1` done echo Smazano $n souboru )... proměnná z se čte také ze souboru read z < /dev/tty {... read z <&3... } 3<&0 Úvod do UNIXu (2014) 119 Úvod do UNIXu (2014) 120
21 Funkce Definice funkce name: name(){ statements } běží ve stejném procesu proměnné jsou globální, může je měnit! volání + parametry stejné jako při volání příkazu funkce přistupuje k parametrům jako $#, $1 atp. (jsou lokální, nemění je volajícímu!) návratovou hodnotou je návratová hodnota posledního příkazu, lze nastavit: return val priorita: funkce, interní příkazy, externí programy interní příkaz lze vyvolat pomocí command cmd funkce se nedědí do subshellů Úvod do UNIXu (2014) 121 Postup zpracování řádky Postupuje se zleva doprava v následujících krocích: 1. rozdělení řádky na atomy (po operátorech) 2. detekce řídících struktur a operátorů 3. detekce operátorů přesměrování a definic proměnných 4. substituce proměnných a vložených příkazů 5*. rozdělení výsledku substitucí na pole podle $IFS 6*. náhrada expanzních znaků 7. zrušení quotingu metaznaků *Kroky 5 a 6 se neprovádějí při přiřazení proměnných. Úvod do UNIXu (2014) 122 Vícenásobné čtení řádky eval arg - příkaz sestaví svoje (už jednou zpracované) argumenty do řádky, znova ji zpracuje a provede výsledný příkaz př.: read login x uid x < /etc/passwd eval UID$uid=$login UID0=root - nepřímé proměnné (lze nahradit pole) př.: eval echo \$$# - vypsání hodnoty posledního parametru cmd & wait Řízení procesů - provedení na pozadí - čekání na skončení procesu na pozadí... počínaje csh je dokonalejší správa (jobs,...) exec cmd - volání funkce exec() s příkazem cmd (shell se změní v zavolaný program)... počínaje ksh lze použít pro přesměrování deskriptorů aktuálního shellu (např. exec 3<&0) Úvod do UNIXu (2014) 123 Úvod do UNIXu (2014) 124 Ošetření signálů v shellu Nastavení handleru: trap [cmd] sig... parametr sig je číslo/jméno signálu nebo 0/EXIT příkaz cmd (handler) 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... Návrat implicitního ošetření: trap sig... Úvod do UNIXu (2014) 125 Přepínače shellu Přepínače se dají zadat na příkazové řádce při spuštění shellu na první řádce shell-scriptu příkazem set Nejdůležitější přepínače: -a... všechny proměnné jsou exportovány -C... přesměrování nepřepíše existující soubory -e... chyba v příkazu způsobí ukončení shellu -f... potlačení expanzních znaků -n... příkazy jsou pouze vypsány a neprovádí se -u... expanze nenastavené proměnné je chyba -v... vstupní řádky se vypisují na chybový výstup -x... příkazy se před provedením vypisují Úvod do UNIXu (2014) 126
22 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 (2014) 127 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ář <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 (2014) 128 Korn shell cd old new, cd - náhrada v cestě, undo cd VISUAL, set -o ed historie s editací řá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 (2014) 129 Zpracování přepínačů (getopts) while getopts :x:y NAME; do case $NAME in x ) opt_x=$optarg;; y ) opt_y=1;; \? ) echo "Spatny prepinac $OPTARG";; : ) echo "Chybi hodnota $OPTARG";; esac done shift `expr $OPTIND - 1` Úvod do UNIXu (2014) 130 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 s... sekundy od počátku letopočtu ( ) * Úvod do UNIXu (2014) 131 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. Synchronizace přes soubor: program testuje, zda existuje lock soubor - pokud ano, je zdroj zamčen, program čeká ve smyčce (sleep!), a když zmizí, sám vytvoří nový. Test zamčení zámku a jeho nastavení musí být z hlediska operačního systému nepřerušitelná dvojice operací, např. vyhovuje mkdir nebo přesměrování (>) při zapnutém -C. Po opuštění kritické sekce se soubor musí smaže, je třeba ošetřit i nepřirozené případy (trap!). Pro případ kontroly po havárii je dobré zámek označit číslem procesu. Úvod do UNIXu (2014) 132
Ú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,
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
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
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 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
Ú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
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.
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
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í
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í
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
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,
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í,
Ú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
Ú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
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ů.
Ú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,
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,
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
Ú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í
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]
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ě)
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
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
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á
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
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
Ú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
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
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 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
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.
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ý
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
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ý
Ú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,
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í,
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í
Ú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,
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ř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
Ú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, příkazy Zpracování textu (ed, grep, sed, vi,
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
Ú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
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
Ú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
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
Ú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,
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
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
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
Ú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í
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
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í
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
Ú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 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
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
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.
Ú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á
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
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
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
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
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
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
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í,
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
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ěť
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
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
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
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
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á
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
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
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
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
Počítačové sítě Systém pro přenos souborů protokol FTP
Počítačové sítě Systém pro přenos souborů protokol FTP Autorizovaný přístup do souborového systému hostitelského uzlu Informace o obsahu souborového systému hostitelského uzlu Obousměrný přenos kopií souborů
Ú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
ČÁ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
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...
Univerzita Pardubice Fakulta elektrotechniky a informatiky ISOSY. 2010 Matěj Trakal
Univerzita Pardubice Fakulta elektrotechniky a informatiky ISOSY 2010 Matěj Trakal Obsah 1 4. přednáška 2 1.1 Práva................................. 2 1.1.1 Obecné informace....................... 2 1.1.2
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
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,
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
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,
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
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í
ZOS CV1 Základy operačních systémů
ZOS CV1 Základy operačních systémů Kontaktní informace Ing. Ladislav Pešička UL401 (pozor, ne UK410) pesicka@kiv.zcu.cz Úřední hodiny Út t 9:30 aža 10:30 St 9:30 aža 10:30 Web Stránky předmp edmětu budou
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í
ŘÍ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
Lekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ
Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání
Ú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) -
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/,
Operační systémy. Cvičení 1: Seznámení s prostředím
Operační systémy Cvičení 1: Seznámení s prostředím 1 Obsah cvičení Organizace cvičení Učebna K311 Unixová učebna K327 (Solárium) Přihlášení do Unixu Spouštění vzorových příkladů vzdáleně (Unix) lokálně
9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>
9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte
Regulární výrazy a grep
A7B38UOS Úvod do operačních systémů 5. Cvičení Regulární výrazy a grep Grep grep [přepínače] vzor [soubory] Implicitně vypíše na standardní výstup řádky, které vyhoví zadanému vzoru. -i nerozlišuje malá