Operační systém UNIX
Přednáška 1 - Úvod
Úvod
unx-predn_01-uvod.odt
25.02.2008 16:13:43
1
Operační systém UNIX
Přednáška 1 - Úvod
Operační systém UNIX Přednášky Jan Zajic,
[email protected], K226
Web service.felk.cvut.cz/courses Cíl předmětu pokročilý uživatel začínající administrátor
Přednášky přehled z pohledu uživatele základní informace o administraci systému
Cvičení praktické procvičování uživatelských příkazů programování v shellu unx-predn_01-uvod.odt
25.02.2008 16:13:43
2
Operační systém UNIX
Přednáška 1 - Úvod
Podmínky udělení zápočtu viz web
Klasifikace zkoušky Body ze cvičení Písemka - 40 bodů je povolena libovolná literatura (ne v elektronické podobě)
Klasifikace viz web
Literatura [1] Přednášky (web) [2] Manuálové stránky Unixu [3] http://docs.sun.com [4] cokoliv o unixu, shellu ...
unx-predn_01-uvod.odt
25.02.2008 16:13:43
3
Operační systém UNIX
Přednáška 1 - Úvod
Historie konec 60. let
AT&T + MIT + GE vyvíjí MULTICS (ultimate multi-userenv.)
1969
AT&T Bell Labs - začátek OS Unix (PDP7) Ken Thompson vytváří assembler, editor, shell a syst.soub.
začátek 70. let
AT&T vývoj OS Unix (PDP11/20). Ken Thompson vytváří interpret B, pak NB (NewB) Dunnis Ritchie vytváří C Kernel a shell přepsán do C
kolem 1975
University of California et Berkley (ucb) - BSD Unix
začátek 80. let
Komerční zájem o OS Unix, DARPA
konec 80. let
Návrh standardů (POSIX, XPG, SVID), SVR4 Unix
1991
Linus B. Torvalds vytváří jádro OS Linux
unx-predn_01-uvod.odt
25.02.2008 16:13:43
4
Operační systém UNIX
Přednáška 1 - Úvod
Vlastnosti (většinou nové myšlenky) víceúlohový běh více úloh ve sdílení času (timesharing), ochrana paměti, plánování procesů
víceuživatelský možnost současné práce více uživatelů (každý má k dispozici virtuální počítač) identifikace a vzájemná ochrana uživatelů
unifikované prostředí přenositelný mezi platformami (90% jádra v jazyceC)
interaktivní přístup s možností vytváření dávek příkazů shell jako rozhraní uživatele a interpret řídícího jazyka
hierarchický systém souborů odpadá potřeba rezervovat místo pro vytvářené soubory
přesměrování a řetězení vstupu a výstupu příkazů vše je soubor (i periferie, nyní i procesy) unx-predn_01-uvod.odt
25.02.2008 16:13:43
5
Operační systém UNIX
Přednáška 1 - Úvod
Další rysy podpora práce v síti nejprve komunikace mezi dvěma počítači (uucp, mail) později protokoly TCP/IP a Internet
grafické prostředí virtuální grafický terminál X-Window různá grafická uživatelská rozhraní (GUI) nad X - CDE, GNOME
rozšíření pro práci v reálném čase jiné plánovací algoritmy, jiné třídy priorit, použití vláken v jádře (viz dále)
podpora multiprocesorových systémů (SMP) přechod od plánování procesů na plánování vláken (thread) podpora vláken v jádře
unx-predn_01-uvod.odt
25.02.2008 16:13:43
6
Operační systém UNIX
Přednáška 1 - Úvod
Architektura OS Unix
programy interprety příkazů dávky příkazů (shells) (scripts)
systémové procesy (daemons)
knihovny
jádro operačního systému (kernel) vrstva jádra závislá na HW (HAL)
Režim uživatelský
Režim jádra
hardware
unx-predn_01-uvod.odt
25.02.2008 16:13:43
7
Operační systém UNIX
Přednáška 1 - Úvod
Poprvé u terminálu Přihlášení do grafického prostředí necháme na cvičení
Přihlášení do příkazové řádky (konzole, ssh) musíme znát uživatelské jméno a heslo jméno nesmí být napsáno velkými písmeny u hesla (podobně jako jinde v UNIXu) se rozlišují malá a velká písmena znaky hesla se nezobrazují pozor na používání numerické a české klávesnice login: zajic password: login incorrect login: zajic password: Last login: Sat Feb 24 21:31:36 from dilna Sun Microsystems Inc. SunOS 5.8 Generic February 2000 unx-predn_01-uvod.odt
25.02.2008 16:13:43
8
Operační systém UNIX
Přednáška 1 - Úvod
Změna hesla heslo se mění příkazem passwd z důvodů bezpečnosti nejméně 6 znaků, alespoň nějaký znak různý od písmen u standardního unixu se rozlišuje nejvíce 8 znaků heslo lze změnit pouze za podmínky, že známe původní heslo zapomenuté heslo nezjistí ani administrátor, může ho však změnit bez znalosti původního hesla $ passwd Old password:
New password: Retype new password:
Odhlášení současný stisk kláves Ctrl a D (značí se ^D) exit logout unx-predn_01-uvod.odt
25.02.2008 16:13:43
9
Operační systém UNIX
Přednáška 1 - Úvod
Jména souborů (adresářů) Maximální délka jména závisí na implementaci ( obvykle 255, s5 - 14 ) Jsou povoleny všechny znaky kromě lomítka (/) Nedoporučené znaky jsou: nezobrazitelné ( A) znaky interpretované shellem ( *, #, $,mezery ) Poznámky: Malá a velká písmena se rozlišují. Tečka je platný znak. Jména souborů začínající tečkou se: nenahrazují na příkazové řádce při použití znaků * a ? nevypisují příkazem ls (jen s přepínačem -a) proto jména konfiguračních souborů obvykle začínají tečkou: .profile, .kshrc, ... Jména tečka (.) a dvě tečky (..) jsou rezervována pro: . ..
- aktuální adresář - nadřazený adresář
unx-predn_01-uvod.odt
25.02.2008 16:13:43
10
Operační systém UNIX
Přednáška 1 - Úvod
Adresářová struktura Absolutní (úplná) cesta (Absolute/Full Path) určení cesty k souboru úplným zápisem všech adresářů ( oddělených znaky / ) počínaje kořenovým adresářem (/)
Aktuální (pracovní) adresář (Current/Working Directory) zobrazen příkazem pwd hodnota proměnné PWD mění se příkazem cd <nový pracovní adresář> je určen absolutní cestou v každém procesu může být jiný má synonymum (link) tečka (.) synonymum nadřazeného adresáře jsou dvě tečky (..)
unx-predn_01-uvod.odt
25.02.2008 16:13:43
11
Operační systém UNIX
Přednáška 1 - Úvod
Relativní cesta (Relative Path) nezačíná / určuje cestu k souboru spolu s pracovním adresářem Cesta k adresáři (Path) + jméno souboru (Name) = cesta k souboru (Pathname)
Domovský adresář (Home Directory) definován pro každého uživatele po přihlášení je pracovním adresářem jméno uloženo v eviroment proměnné HOME nastaví se jako pracovní příkazem cd bez parametrů obvykle /home/<username> nebo /home//<username> obvykle umožňuje uživateli zápis (vytváření souborů a podadresářů)
unx-predn_01-uvod.odt
25.02.2008 16:13:43
12
Operační systém UNIX
Přednáška 1 - Úvod
Shell Interpret příkazů pouští se při přihlášení do příkazové řádky nebo startem emulátoruterminálu v GUI zajišťuje substituce na příkazové řádce a provedení příkazu: zabudovaný příkaz - provádí stejný shell dávka příkazů - provádí nový shell (nový proces) binární program - odstartován jakonový proces
Interpret programovacího jazyka proměnné řídící struktury
unx-predn_01-uvod.odt
25.02.2008 16:13:43
13
Operační systém UNIX
Přednáška 1 - Úvod
Co z toho plyne: příkaz díky substitucím může být ( a obvykle bývá) volán s jinými parametry, než je napsáno na příkazové řádce příkaz (obvykle) neanalyzuje řádku (spoléhá na shell). Parametry tedy musí být oddělovány mezerami nebo tabulátory. program nebo dávka příkazů běží v jiném procesu než původní shell. Uživatel může dále komunikovat s původním shellem (úloha běží na pozadí) nebo s úlohou (běží-li na popředí).
unx-predn_01-uvod.odt
25.02.2008 16:13:43
14
Operační systém UNIX
Přednáška 1 - Úvod
Druhy shellů jméno
jméno
Bourne
sh
C
csh
syntaxe vlastnosti Algol 68 základní C
opakování příkazů (history) práce s úlohami (jobs) přejmenovávání příkazů (alias) typované proměnné (set)
Toronto C
tcsh
jako csh rozšířené csh opakování příkazů šipkami doplňování jmen tabulátorem
Korn
ksh
Bourne Again
bash
Posix
sh
unx-predn_01-uvod.odt
rozšířené rozšíření přibližně jako tcsh (jiná syntaxe) sh na historii nefungují šipky rozšířené velice podobné ksh sh na historii fungují šipky rozšířené drobná rozšíření proti ksh sh 25.02.2008 16:13:43
15
Operační systém UNIX
Přednáška 1 - Úvod
Příkazová řádka nebo kde: je vypsána shellem před interaktivním čtením příkazu (u dávky ne) standardně # nebo $, může být změněna nastavením proměnné PS1 u pokračovací řádky >, může být změněna nastavením proměnné PS2
unx-predn_01-uvod.odt
25.02.2008 16:13:43
16
Operační systém UNIX
Přednáška 1 - Úvod
Přiřazení hodnoty proměnné: <proměnná>= kde <proměnná> jméno proměnné je identifikátor mezi jménem proměnné a znakem= nesmí být mezera příkaz nastaví proměnnou na hodnotu standardně textový řetězec obsahuje-li mezery, je třeba jej uzavřít do uvozovek $ PS1="Zadej prikaz:" Zadej prikaz:AAA="aaa > bbb" Zadej prikaz: unx-predn_01-uvod.odt
25.02.2008 16:13:43
17
Operační systém UNIX
Přednáška 1 - Úvod
Formát příkazu <jméno_příkazu> <argumenty> kde: <jméno_příkazu> je obvykle krátké (2 až 8 znaků) u zabudovaného příkazu vždy pouze jméno u dávky nebo programu: jméno (proveditelný soubor tohoto jména je hledán v adresářích uvedených v proměnné PATH, ne v aktuálním adresáři) cesta k proveditelnému souboru <argumenty> obvykle nejprve přepínače (uvozené znakem -), pak jména souborů přepínače obvykle jednopísmenové, někdy se dají sdružovat, jindy se musí psát zvlášť
unx-predn_01-uvod.odt
25.02.2008 16:13:43
18
Operační systém UNIX
Přednáška 1 - Úvod
$ ps -ealf $ sed -n -e /Jan/s/Honza/ -f sed.cmds někdy přepínač vyžaduje upřesňující parametr bezprostředně následující(případně oddělený mezerou) - viz předchozí příklad výjimečně některé programy vyžadují přepínače a potom v odpovídajícím pořadí upřesňující parametry $ ufsdump 0fb /dev/rmt/0 20 / $ ufsdump 0bf 20 /dev/rmt/0 / stejný přepínač může mít u různých příkazů různý význam, stejnou funkci u různých programů mohou mít různé přepínače $ rm -i $ ls -i $ cut -d: -f1 /etc/passwd $ sort -t: /etc/passwd unx-predn_01-uvod.odt
25.02.2008 16:13:43
19
Operační systém UNIX
Přednáška 1 - Úvod
Oddělovače příkazu příkaz zabudovaný externí binární externí skript příkaz jednoduchý složený (for, case, ..., necháme na později) příkaz na popředí na pozadí (&) kolona příkazů (|) seznam (kolon) příkazů (;, &, &&, ||)
unx-predn_01-uvod.odt
25.02.2008 16:13:43
20
Operační systém UNIX
Přednáška 1 - Úvod
Některé speciální znaky Znaky interpretované ovladačem terminálu (stty -a, man stty): ^S - pozastavení výstupu na obrazovku ^Q - uvolnění pozastaveného výstupu ^C - předčasné ukončení běžícího procesu ^D - konec vstupních dat ^Z - pozastavení běžícího procesu (ne u sh)
unx-predn_01-uvod.odt
25.02.2008 16:13:43
21
Operační systém UNIX
Přednáška 1 - Úvod
Některé jednoduché příkazy date who clear echo pwd man
unx-predn_01-uvod.odt
25.02.2008 16:13:43
22
Operační systém UNIX
Přednáška 1 - Úvod
Manuálové stránky jsou podrobné a (většinou) přesné a správné, vypisují se příkazem man popis používání příkazu man získáme příkazem man man Manuálové stránky jsou členěny do sekcí. Obsah sekce bývá popsán v každé sekci ve stránce Intro Členění do sekcí se může lišit. Na Solarisu je následující: sekce číslo obsahuje popisy 1 příkazy.a aplikační programy Většinou se dále dělí na podsekce, např. 1M (dříve 8) - administrativní příkazy, 1B - BSD příkazy 2 služby jádra a chybové kódy 3 knihovních podprogramy a funkce 4 formáty souborů 5 standardy 6 hry a dema 7 speciální soubory a síťová rozhraní 9 ovladače unx-predn_01-uvod.odt
25.02.2008 16:13:43
23
Operační systém UNIX
Přednáška 1 - Úvod
Výpis manuálu z určité sekce:
man -s <sekce>
Příklad: $ man -s 2 mount Výpis popisu systémového volání služby mount: Neuvede-li se číslo sekce, vypíše se v pořadí první nalezená stránka popisující zadaný název Příklad: $ man mount Podle okolností výpis systémového volání mount ze sekce 2 nebo příkazu mount ze sekce 1M: Výpis manuálů ze všech sekcí: man -a Příklad: $ man -a mount unx-predn_01-uvod.odt
25.02.2008 16:13:43
24
Operační systém UNIX
Přednáška 1 - Úvod
Členění manuálové stránky (v Solarisu) Název
Význam
NAME
Jméno příkazu a stručný popis (jeden řádek) jeho funkce.
SYNOPSIS
Formát (syntaxe) příkazu. Nepovinné parametry jsou uvedeny v hranatých závorkách. Jsou-li za některým parametrem tři tečky (...), může se tento parametr vícekrátopakovat
DESCRIPTION Detailní popis funkce. OPTIONS Popis významu jednotlivých parametrů EXAMPLES
Příklady použití.
FILES
Jména systémových souborů, které příkaz používá nebo ke kterým má nějaký vztah.
SEE ALSO
Odkazy další manuálové stránky, mající nějaký vztah k této stránce.
DIAGNOSTICS Popis významu chybových hlášení a návratových kódů. BUGS (NOTES) Popis neočekávaného chování. Například špatná (nebo žádná) reakce na chybové situace. unx-predn_01-uvod.odt
25.02.2008 16:13:43
25
Operační systém UNIX
Přednáška 1 - Úvod
Vyhledávání stránek podle klíčových slov nebo použitých souborů stránky se hledají v adresářích uvedených v proměnné MANPATH stránky jsou uloženy v nezformátovaném tvaru příkazem catman lze všechny stránky zformátovat a vytvořit databázi obsahu pak lze vyhledávat podle klíčových slov v záhlaví nebo použitých souborů $ man -k assembler as as (1) - assembler dis dis (1) - object code disassembler javap javap (1) - Java class file disassembler $ man -f /etc/passwd passwd passwd (1) - change login password and password attr passwd passwd (4) - password file $
unx-predn_01-uvod.odt
25.02.2008 16:13:43
26