870 likes | 1.07k Views
Unix – úvod. Obsah přednášky. Literatura Úvod do práce s Unixem Formát příkazů v Unixu Systém souborů a adresářů Příkazy pro práci se soubory a adresáři Procesy a práce s nimi Systémové proměnné. Literatura.
E N D
Obsah přednášky • Literatura • Úvod do práce s Unixem • Formát příkazů v Unixu • Systém souborů a adresářů • Příkazy pro práci se soubory a adresáři • Procesy a práce s nimi • Systémové proměnné
Literatura • Hála, T.: Základy práce v Unixu. 3. vyd. Brno: Konvoj, 2002. 40 s. ISBN 80-7302-040-8.(Lze zakoupit na sekretariátu Ústavu informatiky za 20 Kč.) • Petrlík, L.: Jemný úvod do systému UNIX. 1. vyd. České Budějovice: Kopp 1995. 189 s. ISBN 80-85828-28-6. • Brandejs, M.: UNIX–Linux: praktický průvodce. 1. vyd. Praha: Grada, 1996. 344 s. ISBN 80-7169-170-4. • Herborth, Ch.: Unix a Linux – Názorný průvodce. 1. vyd. Brno: Computer Press, 2006. 288 s. ISBN 80-251-0978-X. • Liška, R.: Úvod do Unixu. [online] 28. 4. 2009. Dostupný z WWW: http://kfe.fjfi.cvut.cz/~liska/unix/index.html. • http://www.fi.muni.cz/usr/brandejs/unix/ • http://www.abclinuxu.cz/ • http://www.root.cz/ • http://www.linux.cz/
Úvod do Unixu • Unix je víceuživatelský operační systém pro obecné použití, který vytváří shodné prostředí na různých hardwarových platformách • Vytvořila firma AT&T • Denis Ritchie a Ken Thompson 1973 • Pro potřeby vývoje Unixu byl stejnými autory vyvinut jazyk C
Úvod do Unixu • Firma AT&T byla v rámci antimonopolního řízení americké vlády nucena zříci se své počítačové divize a převedla UNIX za velmi výhodných podmínek na některé univerzity. Vznikla tak varianta BSD (Berkeley System Distribution). • V následujících letech pak vznikaly další verze Unixu, ať už založené na základech systému firmy AT&T nebo na BSD. Vznikl např. IBM AIX, HP-UX, SGI IRIX, Cray Unicos, Sun Solaris a další. Všechno to však byly operační systémy pro sálové počítače.
Použitelnost Unixu • Potřebujeme-li sdílet data • Propojujeme-li počítače do sítí • Pracujeme-li s rozlehlými databázemi • Potřebujeme-li bezpečný a stabilní OS • Pracujeme-li na výkonnější technice, než je PC • Potřebujeme-li se orientovat na otevřené systémy (tj. založené na standardech, snadno rozšiřitelné)
Pravidla vývoje Unixu Vývoj Unixu se od počátku řídil těmito pravidly: • Psát programy, které budou dělat právě jednu věc, a tu budou dělat dobře. • Psát programy tak, aby mohly navzájem spolupracovat. • Psát programy tak, aby povely přijímaly hromadně ze vstupu v textové podobě. • Psát programy tak, aby výstupy produkovalyv textové podobě a mohly být použity jako vstupy do programů dalších.
Příčiny popularity Unixu • Systém je napsán programovacím jazykem vyšší úrovně. • Jsou dostupné zdrojové texty systému (u některých BSD variant). • Má jednoduché a zdokumentované uživatelské rozhraní. • Nabízí prostředky na budování komplexních programů z jednodušších. • Poskytuje jednoduché konzistentní rozhraní periferních zařízení. • Jednotný standard POSIX.
Struktura Unixu • Vrstvy koordinující svoji činnost • Nejnižší – jádro (kernel) – také vrstvy: • ovladače zařízení (drivery) – práces periferiemi • programy pro přidělování paměti, prostředků systému a diskového prostoru • řízení procesů • Systémové programy
Funkce jádra Unixu • Řízení provádění procesů (vytváření, ukončení, komunikace, přístup k periferiím, ...) • Správa systému souborů (alokace, uvolňování, ochrana, udržování konzistence, ...) • Přidělování paměti, ochrana paměti, odkládání dočasně nepoužívaných dat z paměti (swapping, resp. paging) • Plánování procesů pro sdílení času CPU (plánovací algoritmus, přidělování časových kvant, priority, ...)
Charakteristické rysy Unixu • Běžící program = proces • Je víceúlohový – běží více procesů současně • Základní proces – interpret příkazů shell (obecný název) – spouští se pro každého uživatele zvlášť po jeho přihlášení • Pomocí shellu uživatel spouští další uživatelské procesy • Systémové procesy se spouští zpravidla při startu systému • Démon – typ systémového procesu (většinou čeká na výskyt události, kterou ošetřuje, probouzí se tedy na základě nějaké akce, příp. periodicky)
Vlastnosti Unixu • Unix udržuje seznam uživatelů – mají svá omezení – přístupová práva • Superuživatel – bez omezení • Současně může pracovat více uživatelů – víceuživatelský • Umí využívat víceprocesorovou architekturu • Velmi propracované a silné prostředky pro práci v sítích • Jde o otevřený systém – může být doplňován komponentami od různých výrobců
Uživatelské účty • Zavedeny z důvodů ochrany systému a dat mezi uživateli • Jsou jimi definována přístupová právak prostředkům systému • Účet zřizuje administrátor • Obnáší mj.: uživatelské jméno, heslo, plné jméno, uživatelské číslo, domovský adresář, soubor .profile, volbu shellu a poštovní schránku
Práce v OS Unix • Je třeba mít vytvořený účet na počítači (serveru) s Unixem • Se systémem se pracuje na dálku, pomocí emulátoru terminálu (např. putty). • Pro přihlášení uživatele je třeba zadat adresu serveru, např. akela.mendelu.cz.
Přihlášení do systému • Jde o identifikaci uživatelů systému • První je výzva login: – zadáme uživatelské jméno • Další dotaz je na heslo password: • Heslo se neopisuje na obrazovku • Je-li přihlášení v souladu s tabulkou oprávněných uživatelů – definuje se prostředí
Změna hesla • Příkazem passwd • Na nejvýznamnějších Unixových serverech MENDELU jsou login a heslo synchronizovány s UIS, heslo se proto mění pomocí UIS: • https://is.mendelu.cz/auth/system/zmena_hesla.pl
Definice prostředí (po přihlášení) • Stanovení domovského adresáře • Jeho nastavení jako aktuálního • Definice přístupových práv k souborům, adresářům a ostatním prostředkům systému • Aktivace shellu – první je spuštění souborů /etc/.profile a .profile
Příkazový interpret – shell • Program, který zabezpečuje komunikacis uživatelem. • Vytváří příkazový řádek, kterému předchází systémová výzva (odezva, prompt). • Na příkaz. řádek píšeme příkazy včetně případných přepínačů a parametrů, odesíláme klávesou Enter. • Shell je buď schopen příkaz splnit sám (interní příkazy), nebo spustí jiný program (externí příkaz).
Ukončení práce • Příkazem exit • Změnou uživatelské identifikace • příkazem login – dojde k ukončení činnosti a přechodu na jiného uživatele syntaxe: login [username] • příkazem su – spustí subshell s novým uživatelem, po jeho ukončení – návratk původnímu uživateli syntaxe: su [-] [username]
Volba hesla – zásady • Jako heslo nepoužívat login! • Jako heslo nepoužívat žádné slovo, které by mělo souvislost s Vaší osobou či s Vaší prací (křestní jména, zdrobněliny, název pracovního úkolu, telefonní číslo). • Nepoužívat smysluplná slova, vhodné je proto použít alespoň jeden nepísmenný znak. • Na různých počítačích u různých služeb používat různá hesla. • Heslo nezaznamenávat na papír, uživatel si je musí pamatovat. • Hesla přiměřeně často měnit.
Volba hesla – zásady • Nepoužívat písmena „y“ a „z“ • Možné postupy vytvoření hesla: • vybrat si nějakou říkanku a použít první (poslední) písmena slov, popř. doplnit o nějaký nepísmenný znak. Např. z písničky„Běží liška kTáboru, nese pytel zázvoru“ lze vytvořit heslo BlkTnpz • z dvojice (trojice) souvisejících slov vybrat první (poslední) slabiky a spojit je nějakým nepísmenovým znakem. Např. ze spojení Hloupé počítače lze vytvořit heslo Hlou*po • další…
Nápověda v Unixu • Sestává se z textových souborů popisujících jednotlivá hesla • Jsou v adresáři /usr/man (většinou) • Zpřístupnění příkazem man • syntaxe: man [nastavení] [sekce] heslo • Někdy také příkazy toolman, usage, help
Formát příkazů v Unixu • Jednoduchý příkaz – znamená provedení jedné specifikované akce • Syntaxe: příkaz volby soubory přesměrování • Volby (přepínače) většinou začínají znakem - • Soubory (parametry) – jména souborů nebo adresářů oddělená mezerou • Každý příkaz vrací výstupní kód (0 = OK)
Zástupné znaky • Mohou se používat u jmen souborů, zpravidla když chceme najednou pojmenovat více souborů (např. za účelem jejich zkopírování, smazání apod.) • * zastupuje libovolné množství libovolných znaků (tzn. i žádný) • ? zastupuje právě jeden libovolný znak • Závorky [ ] reprezentují právě jeden znak z množiny povolených. V závorkách uvádíme seznam povolených znaků – jsou buď zapsány za sebou, nebo odděleny pomlčkou, pak se berou všechny znaky mezi krajními hodnotami. • Např.d[0-9A-Za-z]_?.* reprezentuje všechny soubory/adresáře, které mají v názvu první písmeno „d“, druhý znak je písmeno nebo číslice, třetí znak je podtržítko, čtvrtý znak je libovolný, pátý znak je tečka a zbytek názvu tvoří libovolné množství (včetně 0) libovolných znaků. • Použitím zástupných znaků vzniká tzv. maska názvu souboru.
Zástupné znaky • Příklad: které názvy souborů odpovídají masce u?*[ly].txt? • ukol.txt • ukoly.txt • uzmenebavichoditdoskoly.text • uly.txt • kuly.txt • ully.txt • Řešení: 1, 2, 4, 6
Zástupné znaky • Příklad: které názvy souborů odpovídají masce [0-9a-f]?[0-9a-f]*? • abcd • a_b_c_d • 9_Ab.pdf • 5:h.txt • c.c • Řešení: 1, 2, 5
Zástupné znaky • Příklad: kterým maskám odpovídá název souboru Moje_nove_auto.jpg? • *_????*_* • ?[a-nr-z]*.jpg • ?*[a-nr-z]*.jpg • *t?[:.,]* • *.* • * • Řešení: 1, 3, 4, 5, 6
Přesměrování • Ze standardního vstupu/výstupu jinam nežli na terminál • Přesměrování výstupu – >soubor • Pokud soubor, do kterého provádíme přesměrování neexistuje – vytvoří se, pokud existuje – přepíše se • S připojením na konec souboru, pokud existuje – >>soubor • Přesměrování vstupu – <soubor
Složené příkazy 1/4 • Vznikají kombinováním jednoduchých příkazů za pomoci operátorů • Výstupní kód je roven výstupnímu kódu posledního příkazu provedeného na popředí • oddělující znak ; • syntaxe: příkaz1;příkaz2 • provede se příkaz1, po ukončení příkaz2
Složené příkazy 2/4 • & – paralelní běh • syntaxe: příkaz1 & příkaz2 příkaz1 & • Pokud je za některým příkazem uveden &, je tento proces spuštěn na pozadí – shell nečeká na jeho dokončení a pokračuje příkazem 2 • V druhé variantě se zobrazí prompt
Složené příkazy 3/4 • |–roura (programový kanál) • syntaxe: příkaz1 | příkaz2 • Oba příkazy jsou spuštěny paralelně a příkaz1 předává standardní výstup na standardní vstup příkazu2 • Tato roura je anonymní (viz snímek Pojmenovaná roura).
Složené příkazy 4/4 • &&, ||–konjunkce, disjunkce • syntaxe: příkaz1 && příkaz2 • Napřed je proveden příkaz1, skončí-li úspěchem, provede se i příkaz2 • U disjunkce naopak
Systém souborů 1/2 • Soubor – datová struktura uložená na vnějším médiu • Jméno souboru – posloupnost znakůs výjimkou / • Nedoporučuje se používat znaky: * ? “ ‘ ` \ { } # $ & | ; < > ( ) [ ] • Není vhodné, aby jméno začínalo + - ~ • Rozlišují se velká a malá písmena
Systém souborů 2/2 • Soubory s názvem začínajícím tečkou jsou skryté, slouží zpravidla k uložení konfigurace určitých programů. • Je možné použít tečku v názvu souboru a oddělit příponu souboru pro specifikaci jeho typu – např. .c, .pdf, .java, .jpg, .avi • Adresáře – zvláštní soubory obsahující informace o jiných souborech
Systém adresářů • Adresáře tvoří stromovou strukturu • Kořen – adresář / • Cesta – řetězec jmen adresářů ve stromové struktuře, oddělené / • Aktuální (pracovní) adresář – vždy právě jeden, v něm se právě nacházíme • Absolutní cesta – od kořene • Relativní – od aktuálního adresáře
Adresáře – pojmy • Pracovní adresář (working directory) = adresář, ve kterém se uživatel momentálně nachází, označuje se . • Rodičovský (nadřízený) adresář (parent directory): adresář o jednu úroveň výše směrem k pracovnímu adresáři, označuje se .. • Domovský adresář (home directory) – adresář nastavený uživatelům po přihlášení do systému, pro každého uživatele jeden s příslušnými přístupovými právy – značení ~ • Kořenový adresář (root directory) = počátek struktury systému souborů, vrchol stromu, domovský adresář superuživatele (roota) – značení /
Práce s adresáři • cd – příkaz pro změnu aktuálního adresáře • syntaxe: cd [adresář] • bez parametru – nastaví domovský adresář jako aktuální • pwd – výpis jména aktuálního adresáře
Tvorba a rušení adresářů • mkdir – vytvoření adresáře • syntaxe: mkdir [-p]jméno • rmdir – zrušení adresáře • syntaxe: rmdir [-p] jméno • Rušený adresář musí být prázdný • lze specifikovat i více jmen adresářů • -p znamená vytvoření (zrušení jsou-li prázdné) mezilehlých adresářů
Příkaz ls • ls – vypsání obsahu adresáře • syntaxe: ls [-laCRF] [adresář, soubor nebo maska] -lpodrobný výpis atributů souboru -a vypisuje i skryté soubory -C výpis do sloupců -R výpis i podadresářů -F za jménem adresáře je uveden znak /, za spustitelným souborem *
Podrobný výpis atributů souboru -rwxr-x--x 1 novak group 59 Jun 12 13:08 .profile • První znak udává typ souboru –obyčejný soubor d adresář p pojmenovaná roura l symbolický link b speciální soubor blokového zařízení • jsou charakterizovány náhodným přístupem k datům, určitou velikostí bloků přenášených dat, existencí vyrovnávacích pamětí v jádře OS pro práci s těmito zařízeními, příklady: příklad: HDD, FDD c speciální soubor znakového zařízení • komunikace s těmito zařízeními probíhá po jednotlivých znacích, bez použití vyrovnávacích pamětí, příkladem jsou terminály, tiskárny, modemy, klávesnice
Podrobný výpis atributů souboru 2 -rwxr-x--x 1 novak group 59 Jun 12 13:08 .profile • Následují tři trojice přístupových práv – pro vlastníka, skupinu, ostatní uživatele • znaky v trojici r čtení souboru povoleno (read) w zápis do souboru povolen (write) x spouštění souboru povoleno (execute) • pokud není některé právo přiděleno, vyskytuje se -
Podrobný výpis atributů souboru 3 • Pokud jde o adresář a ne soubor, znaky znamenají r právo adresář číst a získat z něj informace o souborech w právo tvořit a rušit soubory v adresáři x právo procházet adresářem – dostat se na podadresáře
Podrobný výpis atributů souboru 4 -rwxr-x--x 1novakgroup59Jun 12 13:08 .profile • Druhá položka říká, kolik existuje vazeb na soubor (hardlinků) • Třetí a čtvrtá položka určují vlastníka a skupinu souboru • Pátá položka je velikost souboru ve slabikách (bajtech) • 6. a 7. – datum a čas poslední změny • 8. jméno souboru
Pojmenovaná roura • Vytvoření:mknod název typ,např.mknod abc pnebomkfifo název,např.mkfifo abc • Použití – vstup:ls > abc & • Použití – výstup:sort < abc
Příkazy pro práci se soubory file – vypisuje informaci o typu souboru • syntaxe: file soubor cat – spojování a výpis souborů • syntaxe: cat [-svt] [-] [soubory] [>vystup] -s nevypisuje chybová hlášení, pokud chybí soubory -vt vypisuje netisknutelné znaky jako ^X - bere znaky ze standardního vstupu
Příkaz cp • cp – kopírování souborů • syntaxe: cp soubor1 soubor2 cp soubor adresář • cp – kopírování adresářů včetně podstruktury • syntaxe: cp -r ZdrojAdr CílAdr
Příkaz mv • mv – přemístění a/nebo přejmenování souborů • syntaxe: mv soubor1 soubor2 mv soubor cesta mv soubor1 adresář/soubor2
Příkaz rm • rm – odstranění souborů z adresáře • syntaxe: rm [-irf] soubor…|adresář... -i každé vymazání musí být potvrzeno uživatelem -f potlačí dotazy při mazání -r je-li parametrem adresář, je vymazán celý podstrom
Příkazy pg, more • pg, more – výpis souborů po obrazovkách • syntaxe: pg soubor příkaz | pg more soubor příkaz | more • vždy vypíší obrazovku a čekají povelk akci (mezerník, Enter, q)