UNIX Operacni system UNIX vznikl asi pred 23 lety v Bellovych laboratorich (firma AT&T). Pozdeji byly zdrojove texty dany k dispozici universite v Berkeley. Jsou dve zakladni vetve UNIXu a to sice systemy vychazejici z UNIX V firmy AT&T (zpravidla release 3.2 nebo release 4) a systemy vychazejici z BSD UNIX university v Berkeley (zpravidla verse 4.3). Nektere velke firmy maji vlastni mutace (napr. AIX firmy IBM). I v ramci techto kategorii existuji vetsi ci mensi rozdily (nektere rysy BSD systemu jsou prejimany do systemu V a naopak plus rada vylepseni ci naopak omezeni). PRISTUPOVA PRAVA UNIX je multiuzivatelsky system. Proto je treba definovat pristupova prava. Kazdy uzivatel musi mit v systemu account (uzivatelske konto). Dostane prideleno jmeno (cislo), pod kterym v systemu pracuje, login-id (uid). Dale dostava pridelen svuj domovsky adresar (home directory), ktereho je vlastnikem a je mu plne k dispozici. Vzdy se musi nejprve do systemu prihlasit a po ukonceni prace zase odhlasit. V okamziku prihlasovani do systemu uzivatel zada pridelene jmeno a potvrdi ho svym heslem (password). Uzivatele jsou dale rozdeleni do skupin - groups (gid). Kazdy soubor, adresar ci zarizeni ma definovana pristupova prava pro sveho majitele - owner (to je nektery z uzivatelu systemu), svou skupinu - group (to je nektera ze skupin v systemu) a pro ostatni - others (to jsou vsichni mimo majitele a clenu skupiny). Pristupova prava jsou trech typu: pravo cist (read), pravo zapisovat (write) a pravo spoustet (execute). Pristupova prava muze samozrejme menit jen vlastnik. Spravce systemu ma jmeno root a po prihlaseni nejsou jeho prava proverovana (muze vse bez ohledu na nastavena prava). PROCESY Bezici program se nazyva proces. Procesy jsou nezavisle a mohou probihat paralelne (kazdy ma jednoznacne cislo - pid, definovana prava podle toho, kdo jej spustil a vlastni data). Procesy mohou vzajemne komunikovat napr. pomoci zasilani signalu. Kazdy proces muze v pripade potreby vytvorit dalsi podprocesy. Procesor muze samozrejme v danem okamziku vyuzivat jen jeden proces, paralelni beh je realizovan jistou formou "multiplexingu". Spravu procesu zajistuje specialni proces - jadro systemu (kernel). Dochazi k predavani rizeni mezi jadrem a bezicimi procesy. Jednim typem z procesu je prikazovy interpret (shell), slouzici pro komunikaci uzivatele se systemem, realizuje ci sprostredkovava jeho pozadavky (v MS-DOSu je tento interpret zaclenen do jadra systemu). Poznamka: stejny kod programu muze byt najednou sdilen vice procesy. Priklad soucasneho behu dvou procesu: Poznamka: dvojita cara znamena aktivni proces, sipky znamenaji predavani rizeni. ====== ====== ====== ====== ====== - jadro systemu | ^ | ^ | ^ | ^ | | | | | | | | v | | | v | | | ====== | | ====== | | - proces cislo 1 | | | | | | | | v | v | ====== ====== - proces cislo 2 ----------------------------------------------------------> cas Schematicka struktura UNIXu: +----------+ +----------+ +----------+ +----------+ | podproces| | podproces| | podproces| | podproces| +----------+ +----------+ +----------+ +----------+ +----------+ +----------+ +----------+ +----------+ | proces | | proces | | proces | | proces | +----------+ +----------+ +----------+ +----------+ +-----------------------+ | jadro systemu | +-----------------------+ +-----------------------+ | hardware | +-----------------------+ IMPLEMENTACE Podstatna cast UNIXu je napsana v jazyce C. Jen mala cast (napr. nektere ovladace) je napsana v Assembleru. Mnoho programu je napsano jako soubor (script) pro neinteraktivni (davkove) zpracovani shellem (neco jako `bat' soubory v MS-DOSu). Poznamka: aby byl spustitelny soubor prenositeny (mohl bezet na jinem pocitaci), musi byt zajistena shodnost (pribuznost) procesoru a operacniho systemu (tj. spustitelne programy napr. z MS-DOSu nepobezi v UNIXu a spustitelne programy z PC nepobezi na minipocitaci i kdyz je na obou dvou system UNIX). SYSTEM SOUBORU Spravu systemu souboru (file-systemu) zajistuje jadro systemu. V UNIXu jsou veskera zarizeni (jejich ovladace) reprezentovana specialnimi soubory (tj. napr. disketova mechanika A je soubor /dev/fd0, tiskarna je soubor /dev/lp0, atd.). Specialni soubory se dale deli na znakove (napr. terminaly, tiskarny) a na blokove (napr. disky) podle povahy prenosu dat. Take adresare jsou chapany jako jeden druh souboru. Souborem jsou tedy dale rozumeny obycejne soubory, adresare, specialni znakove soubory a specialni blokove soubory. Soubory jsou soustredeny do adresaru, adresare jsou usporadany hiearchicky do stromove struktury (stejne jako v MS-DOSu). / | +----------+----------+----------+----------+ | | | | | /bin /dev /etc /lib /usr | | +-----+-----+ +-----+-----+-----+-----+ | | | | | | | /dev/dsk /dev/rdsk /usr/bin | /usr/man | /usr/src | | /usr/lib /usr/news | +-----+-----+ | | /usr/lib/acct /usr/lib/cron Korenovy (root) adresar se znaci `/'. Aktualni adresar se znaci `.'. Adresar nejblize vyssi nez aktualni se znaci `..'. Adresare v specifikaci cesty (path) jsou oddeleny znakem `/'. Je to stejne jako v MS-DOSu, jen misto `\' se pouziva `/'. Pro system je soubor posloupnosti znaku, bytes. Dalsi strukturovani souboru (napr. radky, atd.) je veci programu pracujicich se soubory. Konec souboru system urcuje podle delky souboru (znak odpovidajici MS-DOSovemu konci souboru - `Ctrl-Z' neexistuje). Programy, ktere pracuji se radky, chapou radek jako posloupnost znaku ukoncenou znakem noveho radku - `lf' (v MS-DOSu je radek ukoncen dvojici znaku - `cr' a `lf'). Maximalni delku radku limituji tyto programy a proto muze byt ruzna. Z techto odlisnosti vyplyva potreba konverze textovych souboru mezi UNIXem a MS-DOSem, vetsinou se o to vsak postara automaticky komunikacni software. Jmena souboru: Jmeno souboru muze obsahovat pismena, cislice a specialni znaky. Poznamka: ze specialnich znaku pouzivejte radeji jen podtrzitko - `_'. Pripona a tecka je soucasti jmena souboru, system z pripon souboru nic nevyvozuje, soubor muze mit vice pripon najednou (v MS-DOSu je pripona samostatna, muze mit max. tri znaky a system podle ni urcuje typ souboru). Ovsem nektere programy (napr. kompilatory) vyzaduji standardni pripony (viz kompilatory). V systemech vychazejicich z UNIX V je delka jmena souboru (vcetne pripon a tecek) omezena na 14 znaku. Atributy souboru: Poznamka: v MS-DOSu to je typ souboru (podle pripony, napr. `bat', `exe', `sys', atd.), mod souboru (read only, archive, system, hidden), delka souboru v bytes a datum vytvoreni souboru. Dale jsou uvedeny atributy UNIXovych souboru. 1. typ souboru - obycejny - adresar - specialni znakovy - specialni blokovy - atd. 2. mod souboru Mod souboru je vyjadren cislem slozenym ze ctyr cislic. Tyto cislice dostaneme jako soucet cisel odpovidajici pozadovanym vlastnostem. - prvni cislice 4 - set user id 2 - set group id 1 - set sticky bit - druha cislice 4 - pravo cteni pro majitele 2 - pravo zapisu pro majitele 1 - pravo spousteni pro majitele - treti cislice 4 - pravo cteni pro skupinu 2 - pravo zapisu pro skupinu 1 - pravo spousteni pro skupinu - ctvrta cislice 4 - pravo cteni pro ostatni 2 - pravo zapisu pro ostatni 1 - pravo spousteni pro ostatni Poznamka: pravo cteni pro adresar znamena pravo vypsat si jeho obsah, pravo zapisu pro adresar znamena pravo zapsat nebo vymazat z nej soubor a pravo spousteni pro adresar znamena pravo si ho zvolit jako aktualni. Poznamka: abych mohl pracovat s nejakym adresarem, musim mit zaroven pravo zvolit si jako aktualni vsechny adresare v ceste (path) k nemu. 3. pocet odkazu na soubor 4. vlastnik souboru 5. skupina souboru 6. velikost souboru v bytes Poznamka: velikost adresare neni souctem velikosti souboru v adresari, ale ma vztah k poctu souboru v adresari. Poznamka: u spec. souboru je to misto delky tzv. major a minor cislo. 7. cas posledniho pristupu do souboru (cteni nebo spusteni souboru) 8. cas posledni modifikace obsahu souboru (zapisu do souboru) 9. cas posledni modifikace informaci o souboru (zmeny nektereho z vyse uvedenych atributu souboru) Nektere soubory: / korenovy adresar /bin spustitelne soubory /dev specialni soubory /etc administrace systemu /etc/passwd tabulka uzivatelu /etc/group tabulka skupin /lib knihovny /tmp systemove docasne soubory /unix jadro systemu /users domovske adresare (nekdy jsou napr. v adresari `/usr' nebo `/home') /usr/bin spustitelne soubory /usr/include include soubory pro C /usr/lib knihovny /usr/mail mail-boxy uzivatelu, sdileny prostor pro dopisy elektronicke posty (nekdy je to `/usr/spool/mail') /usr/man manualy systemu /usr/news novinky /usr/spool sdilene sluzby systemu /usr/src zdrojove texty /usr/tmp systemove docasne soubory PRVNI KROKY Poznamka: UNIX (stejne jako C) rozlisuje v naproste vetsine pripadu mezi malymi a velkymi pismeny (na rozdil od MS-DOSu), vcetne login-ids, hesel, jmen souboru, atd. Terminaly: Pracovat na pocitaci s UNIXem je mozne z ruznych mist. Kazdy UNIXovy pocitac miva jednu konzolu, zpravidla umistenou v jeho blizkosti. Dale k nemu mohou byt pripojeny (zpravidla po seriove lince) terminaly. Poznamka: terminaly jsou dnes znacne inteligentni, ale zadny terminal neni schopen pracovat samostatne, bez pripojeni k nejakemu pocitaci. Casto je misto skutecneho terminalu pouzit jiny pocitac plus nejaky program pro emulaci terminalu. Tento celek (pocitac, operacni system a emulacni program) se navenek tvari jako skutecny terminal. Pr.: +------+ <- konzola | | | UNIX | <--- seriova linka ------------ terminal (skutecny) | | (napr. Wyse-120 nebo HP-2645) +------+ <--- seriova linka ------------ terminal (emulovany) (napr. PC s MS-DOSem a Kermit) Prihlaseni do systemu: Vyzva systemu k prihlaseni uzivatele obsahuje slovo `login: '. Na tuto vyzvu napisete sve pridelene systemove jmeno. Dale je pozadovano vase heslo (vyzva `Password: '). Heslo se na obrazovku neopisuje (nejen pri prihlasovani, ale i v ostatnich pripadech). V pripade, ze zadate nespravne sve systemove jmeno nebo napisete nespravne heslo, vypise se chybove hlaseni `Login incorrect' a cely postup je nutno znovu opakovat. Pocet opakovani nebo cas pro provedeni teto operace byva z bezpecnostnich duvodu omezen (napr. na 5 pokusu). Odhlaseni ze systemu: Ze systemu se muzete odhlasit prikazem `exit'. Vetsinou take funguje `Ctrl-d'. V shellech base csh je mozne pouzit i prikaz `logout'. Zmena hesla: Kazdy uzivatel ma (a musi mit) moznost si zmenit sve heslo. K tomu slouzi prikaz `passwd'. Ten nejprve pozada o vase stare heslo (vyzva `Old password: '). Dale pozaduje nove heslo (vyzva `New password: ') a nakonec znovu nove heslo pro overeni (vyzva `Re-enter new password: '). Pokud se nove heslo zadane na vyzvu `New password: ' a vyzvu `Re-enter new password: ' neshoduje, postup se opakuje. Pri nedodrzeni urcitych pravidel (jsou ruzna v ruznych systemech) system nove heslo neakceptuje a pozaduje jine. Pokud je vase konto (account) v systemu bez hesla (napr. to muze byt tehdy, jste-li novy uzivatel), pak system vyzaduje zadani vaseho noveho hesla pri prvnim prihlasovani. Mozne priciny neuspechu pri volbe hesla: - nove heslo ma malo znaku (napr. pozadovana delka muze byt 8 znaku, `You new password must have min. of 8 characters in length') - nove heslo ma malo nealfabetickych znaku (napr. mene nez 2, `You new password must have min. of 2 non-alfabetic characters') - nove heslo ma malo alfabetickych znaku (napr. mene nez 2, `You new password must have min. of 2 alfabetic characters') - nove heslo ma mnoho stejnych znaku (napr. vice nez 4, `You new password must have max. of 4 repeated characters') - nove heslo ma mnoho stejnych znaku se starym heslem (napr. vice nez 4, `You new password must have min. of 4 characters not in old password') Zasady volby hesla: Heslo by nemelo obsahovat slova (nebo jejich casti, at jiz velkymi ci malymi pismeny), ktera maji nejaky vztah k informacim o uzivateli v systemu (jeho login-id, jmenu, primeni, atd.) nebo je lze nalest ve slovniku (jakemkoliv), kalendari, atd. Dale by nemelo obsahovat posloupnosti znaku (stejne, vzestupne, sestupne nebo za sebou jdouci na klavesnici). Po urcitem casovem intervalu (napr. ctyri tydny) system automaticky pozaduje zmenu hesla. Heslo by si kazdy mel pamatovat (nepoznamenavat si ho) a chranit ho pred prozrazenim. Priklady vhodnych typu hesel: `138*qw!.', `AL-gkr$9', `;_APs!36', atd. Vsechna tato omezeni jsou nutna z bezpecnostnich duvodu. Existuje skupina lidi (hackers, crackers), zabyvajicich se neopravnenym pronikanim do systemu a lustenim cizich hesel. Vylusteni nespravne zvoleneho hesla je daleko jednodussi a rychlejsi, nez by se na prvni pohled mozna zdalo. Samozrejme absolutne bezpecny system a nerozlustitelne heslo neexistuje (nic neni dokonale). Klavesnice v UNIXu: Pouzivani jinych, nez nize uvedenych specialnich klaves miva nulovy nebo spise nezadouci ucinek (ale i tyto funguji jen tehdy, je-li vse spravne nastaveno, coz velice casto neni pravda): Ctrl-h, Backspace - vymazani znaku vlevo od kurzoru (jako v MS-DOSu) Ctrl-c nebo Delete - preruseni programu (v MS-DOSu Ctrl-c) Ctrl-\ - ukonceni programu (v MS-DOSu Ctrl-Break) Ctrl-s a Ctrl-q - rizeni vypisu (v MS-DOSu Ctrl-s a lib. klavesa) Ctrl-d - ukonceni vstupniho souboru z klavesnice Ctrl-z - suspendovani jobu v C-shellech \ - prefix (meni funkci nasledujiciho znaku, vypina nebo naopak zapina jeho specialni funkci) Poznamka: je jedno, zda se Ctrl pouzije s klavesou shiftovanou nebo neshiftovanou. Nekdy byva mozne pouzit dalsi klavesy (napr. v editoru vi): Left - kurzor vlevo Right - kurzor vpravo Up - kurzor nahoru Down - kurzor dolu PgUp - stranka nahoru PgDn - stranka dolu Home - kurzor na zacatek stranky Poznamka: ve starsich verzich byl pro vymaz znaku pouzivan znak `#' a pro vymaz radku znak `@'. Proto muze byt pouziti techto znaku za urcitych okolnosti problematicke (napr. v hesle). KERMIT Program MS-Kermit se pouziva pro emulaci terminalu (nebo prenos souboru) na PC s MS-DOSem pripojenem (prez port COM1 nebo COM2) po seriove lince (pripadne prez modem) k UNIXovemu (nebo jinemu) pocitaci. A) emulace terminalu Nejprve spustime MS-Kermit (napr. prikazem `kermit'). Prikazy pro Kermit se zadavaji za jeho prompt (`MS-Kermit>'). Spojeni navazeme prikazem `c' - connect (pripadne jeste jednou zmackneme `Enter'). Dale se uz vypise `login' UNIXu a prihlasime se do systemu. Po ukonceni prace a odhlaseni ze systemu (!), zrusime spojeni klavesou `Atl-x'. Program MS-Kermit muzeme ukoncit prikazem `q' - quit. >>> MS-DOS UNIX 1. spustit MS-Kermit (`kermit') >>> MS-Kermit >>> MS-DOS UNIX 2. navazat spojeni (`c', `Enter') >>> MS-Kermit >>> MS-DOS ------- spojeni -------> UNIX 3. prihlasit se do UNIXu, po ukonceni prace se odhlasit 4. zrusit spojeni (`Alt-x') >>> MS-Kermit >>> MS-DOS UNIX 5. ukoncit MS-Kermit (`q') *** MS-DOS UNIX B) prenos souboru Pro prenos souboru musime navic spustit v UNIXu C-Kermit (napr. prikazem `kermit'). Jeho ovladani je podobne jako ovladani MS-Kermitu (jeho prompt je `C-Kermit>'). Pro prenos slouzi prikazy `s' - send a `r' - received. Pri kopirovani souboru z UNIXu do MS-DOSu, zadame C-Kermitu prikaz `s jmeno_souboru', prerusime spojeni (`Alt-x') a MS-Kermitu zadame prikaz `r'. Pri kopirovani souboru z MS-DOSu do UNIXu, zadame C-Kermitu prikaz `r', prerusime spojeni (`Atl-x') a MS-Kermitu zadame prikaz `s jmeno_souboru'. Nez zadame prikaz `s', musime spravne nastavit typ prenaseneho souboru. Pro obycejne soubory nastavime typ text prikazem `set file type text' (default, nastaveno pri spusteni kermitu) a pro binarni soubory nastavime typ binary prikazem `set file type binary'. Po skonceni prenosu opet obnovime prerusene spojeni (`c') a ukoncime program C-Kermit prikazem `q' - quit. B1) prenos MS-DOS <==== UNIX 1. prihlasit se do UNIXu, spustit C-Kermit (`kermit') >>> MS-Kermit C-Kermit >>> MS-DOS ------- spojeni -------> UNIX 2. je-li treba, nastavit typ souboru (`set file type text' nebo `set file type binary') a vyslat soubor (`s jmeno_souboru') >>> MS-Kermit <==data== C-Kermit >>> MS-DOS ------- spojeni -------> UNIX 3. prerusit spojeni (`Alt-x') >>> MS-Kermit <==data== C-Kermit >>> MS-DOS UNIX 4. prijmout data (`r') >>> MS-Kermit <==data== <==data== C-Kermit >>> MS-DOS UNIX 5. obnovit spojeni (`c') >>> MS-Kermit C-Kermit >>> MS-DOS ------- spojeni -------> UNIX 6. ukoncit C-Kermit (`q') >>> MS-Kermit >>> MS-DOS ------- spojeni -------> UNIX 7. odhlasit se ze systemu, zrusit spojeni a ukoncit MS-Kermit B2) prenos MS-DOS ====> UNIX 1. prihlasit se do UNIXu, spustit C-Kermit (`kermit') >>> MS-Kermit C-Kermit >>> MS-DOS ------- spojeni -------> UNIX 2. prijmout data (`r') >>> MS-Kermit ==data==> C-Kermit >>> MS-DOS ------- spojeni -------> UNIX 3. prerusit spojeni (`Alt-x') >>> MS-Kermit ==data==> C-Kermit >>> MS-DOS UNIX 4. je-li treba, nastavit typ souboru (`set file type text' nebo `set file type binary') a vyslat soubor (`s jmeno_souboru') >>> MS-Kermit ==data==> ==data==> C-Kermit >>> MS-DOS UNIX 5. obnovit spojeni (`c') >>> MS-Kermit C-Kermit >>> MS-DOS ------- spojeni -------> UNIX 6. ukoncit C-Kermit (`q') >>> MS-Kermit >>> MS-DOS ------- spojeni -------> UNIX 7. odhlasit se ze systemu, zrusit spojeni a ukoncit MS-Kermit Poznamka: misto prikazu `set file type binary' a `s' nebo `send' je mozne pouzit prikaz `bs' nebo `bsend'. Misto prikazu `set file type text' a `s' nebo `send' je mozne pouzit prikaz `ts' nebo `tsend'. PRIKAZOVE INTERPRETY Prikazovych interpretu je v UNIXu rada. Nejstarsi je Bourne-shell (zkratka `sh') a je nejspolehlivejsi. Z neho vychazi vylepseny Korn-shell (zkratka `ksh'). Nekdy se pouziva Restricted-shell (zkratka `rsh') s omezenymi funkcemi. V BSD systemu vznikl C-shell (zkratka `csh'). Tento (a jemu pribuzne) byva ruzne implementovan v systemech V. Z neho vychazi vylepseny TC-shell (zkratka `tcsh'). Shell klasickeho typu muze byt nahrazen jinym programem (napr. specialnim menu s volanim funkci pro uzivatele pouzivajici system ke spousteni stale stejne aplikace). Specialni znaky: Nektere znaky maji specialni vyznam (napr. expanze, presmerovani, atd.). Potlacit (nebo naopak zapnout) specialni funkci jednoho znaku je mozne uvedenim prefixu `\' pred timto znakem. Potlacit specialni vyznam znaku je take mozne jejich uzavrenim do apostrofu. Poznamka: pokud je napr. potreba zadat jako argument jmeno souboru obsahujici znak `*', lze to realizovat zapisem jmena do apostrofu. Expanze jmen souboru: Jedna z funkci shellu je expanze jmen souboru (i adresaru). Po jejim provedeni shell sam realizuje pozadovanou akci nebo casteji vyvola potrebny proces, kteremu preda expandovana jmena jako argumenty. Expanze se neprovadi na jmena souboru zacinajici znakem tecka `.' (neco jako hidden soubory v MS-DOSu). Expanzni znaky: * - znamena libovolnou posloupnost znaku, i nulove delky (pripony jsou soucasti jmena souboru, tj. v UNIXu ma `*' stejny vyznam jako v MS-DOSu `*.*') ? - znamena jeden libovolny znak (jako v MS-DOSu) [xyz] - znamena nektery ze znaku `xyz' (napr. `[ab]*' znamena vsechny soubory zacinajici znakem `a' nebo znakem `b') [x-y] - znamena nektery ze znaku `x' az `y' podle ASCII tabulky (napr. `*[0-9]' znamena vsechny soubory koncici cislici) Presmerovani vstupu a vystupu procesu: Kazdy proces ma v UNIXu standardne tri vstupne-vystupni soubory. Je to standardni vstup (stdin, 0), standardni vystup (stdout, 1) a standardni chybovy vystup (stderr, 2), na ktery se vypisuji chybova hlaseni. Default (implicitni) prirazeni techto souboru je stdin-klavesnice, stdout-obrazovka a stderr-obrazovka. +----------+ +---------->| stdout | | +----------+ +----------+ +----------+ (obrazovka) | stdin |---->| proces | +----------+ +----------+ (klavesnice) | +----------+ +---------->| stderr | +----------+ (obrazovka) Toto prirazeni je mozne presmerovat (podobne jako v MS-DOSu). Presmerovani v shellu je mozne provest nasledovne (jde vsak jen o nektere moznosti): < - presmerovani stdin ze souboru > - presmerovani stdout do souboru >> - pripojeni stdout za obsah souboru | - pipe (roura) proces < vstupni_soubor +----------+ +----------+ | stdin |--------->| proces | +----------+ +----------+ (vstupni_soubor) proces > vystupni_soubor (pokud vystupni soubor existuje, jeho puvodni obsah se prepise, pokud ne, vytvori se) proces >> vystupni_soubor (pokud vystupni soubor existuje, pripoji se vystup procesu za jeho obsah, pokud ne, vytvori se) +----------+ +----------+ | proces |--------->| stdout | +----------+ +----------+ (vystupni_soubor) proces_1 | proces_2 Ma podobny efekt, jako kdyby byl vystup prvniho procesu presmerovan do docasneho souboru, vstup druheho procesu presmerovan z docasneho souboru a nakonec byl docasny soubor vymazan. Procesu muze byt pomoci pipes zarazeno vice za sebou (tzv. kolona). Programy, ktere umi cist ze standardniho vstupu a zapisovat na standardni vystup, se nazyvaji filtry. +----------+ +----------+ | proces_1 |--------->| proces_2 | +----------+ +----------+ Promenne: Shelly vychazejici z `sh': Vypsani promennych je mozne prikazem `set'. Promenna `PATH' obsahuje adresare, ktere jsou prohledavany pri zadani prikazu bez specifikace uplneho jmena souboru (stejne jako v MS-DOSu, s tim rozdilem, ze aktualni adresar je prohledavan, jen kdyz je explicitne uveden jako `.'). Promenna `TERM' udava typ terminalu (rada utilit vyzaduje spravne nastaveny a systemu znamy typ terminalu). Promenna `SHELL' udava jmeno shellu. Promenna `PS1' definuje prompt (vyzvu) shellu (default jen `$ '). Shelly vychazejici z `csh': Vypsani promennych je mozne prikazy `set' a `env'. Promenna `path' obsahuje adresare, ktere jsou prohledavany pri zadani prikazu bez specifikace uplneho jmena souboru. Promenna `term' udava typ terminalu. Promenna `shell' udava jmeno shellu. Promenna `prompt' definuje prompt shellu (default jen `% '). Vyznam nekterych souboru z domovskeho adresare: .profile - soubor se interpretuje pri prihlaseni uzivatele do systemu (shelly vychazejici z `sh') .kshrc - soubor se interpretuje pri kazdem spusteni shellu (`ksh') .login - soubor se interpretuje pri prihlaseni uzivatele do systemu (shelly vychazejici z `csh') .cshrc - soubor se interpretuje pri kazdem spusteni shellu (shelly vychazejici z `csh') .logout - soubor se interpretuje pri odhlaseni uzivatele ze systemu (shelly vychazejici z `csh') PRIKAZY Unix pouziva zpravidla tento format prikazu: `prikaz volby argumenty'. prikaz - jmeno spustitelneho souboru nebo prikaz shellu volby - prepinace Volby je mozne vynechat, zpravidla zacinaji znakem `-' (v MS-DOSu znakem `/'). Dale je mozne volby kombinovat, napr. `-al' znamena, ze je mozne pouzit `-a', `-l', `-al' nebo `-la'. Posledni dva pripady maji shodny efekt. argumenty - argumenty (zpravidla jmena souboru, byva mozne je vynechat) Prikazu jsou v UNIXu stovky a vetsina obsahuje ruzne volby. Uvedena je jen mala cast prikazu v nejjednodussim tvaru. date - vypis datumu a casu who - vypis aktivnich uzivatelu ls [-agl] [soubor...] - vypis jmen (jmen a atributu) souboru l - provadi dlouhy vypis ve tvaru: `tuuugggooo links owner group len date name' t - typ souboru (`-' obycejny, `d' adresar, `b' spec. blokovy, `c' spec. znakovy, `l' symbolic link, `s' socket, `p' named pipe) uuu - pristupova prava pro vlastnika souboru (`-' pravo odepreno, `r' pravo cist, `w' pravo zapisovat, `x' pravo spoustet) ggg - pristupova prava pro skupinu souboru ooo - pristupova prava souboru pro ostatni links - pocet linku (odkazu) na soubor owner - vlastnik souboru group - skupina souboru len - delka souboru date - datum (a cas) posledniho zapisu do souboru name - jmeno souboru g - spolu s `l', u systemu V potlacuje vypis skupiny souboru, u BSD systemu naopak zapina vypis skupiny souboru a - vypisuje vsechny soubory (jinak nevypisuje soubory zacinajici znakem `.', neco jako hidden soubory v MS-DOSu) Pr.: -r--r--r-- 1 bin bin 2225304 Jan 31 1991 /unix Obycejny soubor unix v adresari /, vsichni mohou pouze cist, jeden link, vlastnik bin, skupina bin, delka asi 2 MB, posledni zapis 31. ledna 1991. Pr.: drwxr-x--- 2 novakj guest 512 Jan 23 22:30 /users/novakj Adresar novakj v adresari users, vlastnik muze vsechno, clenove skupiny nemohou zapisovat, ostatni nemohou nic, dva linky, vlastnik novakj, skupina guest, delka 512 B, posledni modifikace 23. ledna v 22h 30'. Pr.: crw-rw-rw- 1 root sys 16, 64 Jan 16 1991 /dev/lp0 Specialni znakovy soubor lp0 v adresari dev, vsichni mohou cist a zapisovat, jeden link, vlastnik root, skupina sys, major 16, minor 64, posledni zapis 16. ledna 1991. l [soubor...] - vypis jmen a atributu souboru (script: ls -al) ll [soubor...] - vypis jmen a atributu souboru (script: ls -al | pg) cp soubor soubor - kopirovani souboru 1 do souboru 2 mv soubor soubor - prejmenovani (presunuti) souboru 1 na soubor 2 rm [-i] soubor[...] - vymazani souboru i - pred vymazanim kazdeho souboru se zepta zda opravdu soubor smazat, soubor je vymazan pouze pri odpovedi `y' (yes, ano) Poznamka: undelete (unerase, obnoveni) jako v MS-DOSu na jiz jednou smazany soubor neni mozny. pwd - vypis jmena aktualniho adresare cd [adresar] - zmena aktualniho adresare (bez argumentu je aktualni adresar zmenen na domovsky) mkdir adresar - vytvoreni adresare rmdir adresar - zruseni adresare (musi byt prazdny) file soubor - urci typ souboru podle jeho obsahu find adresar -name soubor -print - hleda soubor od zadaneho adresare Jmeno souboru muze byt zadano pomoci metaznaku. Stejne metaznaky pouzivaji i jine prikazy (grep, vi, atd.). . - jeden libovolny znak x* - libovolny pocet znaku `x' [xyz] - nektery ze znaku `xyz' [x-y] - nektery ze znaku `x' az `y' [^xyz] - vsechny znaky mimo `xyz' [^x-y] - vsechny znaky mimo `x' az `y' cat [soubor] - vypsani obsahu textoveho souboru pg [soubor] - pager, vypsani obsahu textoveho souboru Po kazde strance se vypis zastavi (prompt `:'). Je mozne ridit vypis prikazy psanymi za prompt. - prechod na dalsi stranku (Enter) + - prechod na dalsi stranku - - prechod na predchozi stranku x - prechod na stranku cislo `x' $ - prechod na posledni stranku q - ukonceni Existuji i jine pagery (napr. less). Vystup nekterych programu (man, elm, atd.) byva rizen nejakym pagerem. more [soubor] - pager, vypsani obsahu textoveho souboru Space - prechod na dalsi stranku Enter - prechod na dalsi radek q - ukonceni grep [-v] reterec [soubor] - vypise radky textoveho souboru, ktere obsahuji zadany retezec v - vypise radky neobsahujici reterec sort [-u] [soubor] - setridi radky textoveho souboru podle ASCII tabulky (podle abecedy) u - vynecha duplicitni radky diff soubor_1 soubor_2 - porovna dva textove soubory Pro porovnavani binarnich souboru slouzi prikaz cmp. ps - vypis aktivnich procesu uzivatele (cisla procesu jsou v prvnim sloupci) kill -signal pid - zaslani signalu procesu s cislem pid Kazdy signal je oznacen cislem. Uvedeny jsou jen nektere. 1 - hangup, zaveseni 2 - interrupt, preruseni (Ctrl-c) 3 - quit, ukonceni (Ctrl-\) Poznamka: vytvari soubor core, ktery se pouziva pri ladeni 9 - kill, bezpodminecne ukonceni Poznamka: v pripade, ze jste se nemohli odhlasit ze systemu (napr. nejaka zavada na vasem pocitaci pri emulaci terminalu), prihlaste se znovu, zjistete cislo stareho shellu pomoci prikazu ps a ukoncete ho prikazem kill -9. df - vypise volne misto na discich v blocich nebo kB (jeden blok je nejcasteji 1/2 nebo 1 kB) du adresar - vypise soucet delek souboru v adresari v kB ulimit - vypise maximalni moznou velikost souboru v blocich (jen v `sh') limit filesize - vypise maximalni moznou velikost souboru (jen v `csh') quota -v - vypise obsazeni disku Leva polovina se tyka souctu velikosti souboru, prava poctu souboru. usage - kolik ma jiz uzivatel obsazeno quota - hranice, ktera muze byt prekrocen po omezenou dobu limit - hranice, kterou nelze prekrocit timeleft - cas, ktery zbyva do zablokovani konta uzivatele Poznamka: quoty jsou pouze v BSD systemech. chown uzivatel soubor - zmeni majitele souboru Defaultovym majitelem souboru je ten, kdo ho vytvoril. chgrp skupina soubor - zmeni skupinu souboru Defaultova skupina je skupina, kterou ma majitel souboru v okamziku jeho vytvoreni. chmod prava soubor - zmeni pristupova prava souboru Prava souboru jsou tri cislice (zleva pro majitele, skupinu a ostatni). Cislici dostaneme souctem cisel pro pozadovana prava (4-cteni, 2-zapis, 1-spousteni, 0-nic). Defaultova pristupova prava jsou dana maskou (umask). Nejcasteji byva maska nastavena tak, aby majitel mohl se souborem vsechno a ostatni do nej nemohli zapisovat. Pr.: prava vypocet vysledek rw-r--r-- 4+2+0, 4+0+0, 4+0+0 644 r--r--r-- 4+0+0, 4+0+0, 4+0+0 444 rw------- 4+2+0, 0+0+0, 0+0+0 600 rwxr-xr-x 4+2+1, 4+0+1, 4+0+1 755 r-xr-xr-x 4+0+1, 4+0+1, 4+0+1 555 rwxr-x--- 4+2+1, 4+0+1, 0+0+0 750 man prikaz - vypise manual prikazu V systemu jsou nainstalovany referencni manualy prikazu, knihovnich funkci, systemovych volani a formatu souboru. Vypis byva rizen napr. pagerem pg. news [novinky] - vypise novinky Prikaz news vypisuje novinky, pokud nejake jsou, ci jsou-li uvedeny jako parametr. Prikaz `news -a' vypise vsechny (tedy i ty, ktere jiz byly precteny prikazem `news'). Vypisovane soubory jsou ulozeny v adresari /usr/news. Vytvari soubor `.news_time' v domovskem adresari. lp soubor - vypise soubor na lokalni tiskarne Poznamka: lokalni tiskarnou se rozumi tiskarna pripojena primo k UNIXovemu serveru. lpr soubor - vypise soubor na sitove tiskarne Poznamka: sitovych tiskaren muze byt vic a muze je vyuzivat vice UNIXovych serveru. tar {ctxr}[f soubor] soubory - archivace souboru Provadi archivaci souboru (adresaru vcetne jejich obsahu) na medium (napr. paska, disketa, atd.). Je-li pouzita volba `f', mediem je nasledujici soubor. c - prenos z disku na medium, vytvoreni archivu t - vypis obsahu archivu x - prenos z media na disk r - prenos z disku na medium, pripojeni za konec archivu Pri vypisu archivu nebo prenosu z archivu na disk musi byt jmeno souboru zadano presne tak, jak bylo zadano pri prenosu z disku na medium. V nekterych systemech volby tohoto prikazu nezacinaji znakem `-', v nekterych naopak ano. Pr.: tar cf backup sources tar tf backup Vytvori archivni soubor backup z adresare sources vcetne jeho obsahu. Druhy prikaz vypise obsah archivniho souboru backup. compress, uncompress - komprese souboru Puvodni soubor ziskame prikazem uncompress. Prikaz compress pripoji k jmenu souboru defaultovou priponu `.Z', kterou pozaduje prikaz uncompress. uuencode, uudecode - konverze mezi 7 a 8-bitovymi soubory Mnoho programu (napr. pagery, editory, atd.) casto umi pracovat jen se soubory, ktere obsahuji pouze 7-bitove znaky. 8-bitove znaky obsahuji napr. binarni soubory, soubory se semigrafikou, soubory s cestinou atd. V pripade, pokud potrebujeme napr. poslat e-mailem takovyto soubor, nejprve ho prevedeme na 7-bitovy, potom posleme a prijemce jej opet konvertuje do puvodni podoby. Toto umoznuji programy uuencode a uudecode. Prikaz uuencode pracuje jako filtr. Je nutne zadat jmeno souboru, ktery bude vytvoren prikazem uudecode. Priklad pouziti (vstupni soubor je 8-bitovy, vystupni soubor je 7-bitovy): uuencode jmeno_souboru < vstupni_soubor > vystupni_soubor Opacny postup (vytvori 8-bitovy soubor jmena daneho jmenem souboru zadanym prikazu uuencode): uudecode vystupni_soubor btoa [-a] - konverze mezi 7 a 8-bitovymi soubory Pracuje jako filtr, na rozdil od `uuencode' se nezadava jmeno souboru, ktery bude nasledne vytvoren. Bez volby prevadi 8-bitovy soubor na 7-bitovy, s volbou `a' naopak. Kompilatory cc - standardni kompilator jazyka C v UNIXu (jsou i dalsi kompilatory jazyka C, napr. gcc, c++, atd.) lint - kontrola zdrojovych textu v jazyce C f77 - kompilator jazyka Fortran 77 (zase jsou i jine kompilatory, napr. fc, lpifortran, atd.) pc - kompilator jazyka Pascal (existuje napr. i preprocesor p2c; preprocesor prevadi zdrojovy text z jednoho jazyka zpravidla do jazyka C a ten se pak zkompiluje C kompilatorem; zase jsou i jine preprocesory, napr. f2c pro Fortran, atd.) ld - standardni sestavovaci program (object kod je jen jeden spolecny pro vsechny jazyky) dbx - debugger (jsou i jine, napr. adb, sdb, atd.) strip - odstraneni "nepotrebnych" informaci z programu Kompilatory vyzaduji standardni pripony souboru: .c - zdrojovy text pro C .h - include soubor pro C .f - zdrojovy text pro Fortran .p - zdrojovy text pro Pascal .o - program v object kodu Nektere nejbeznejsi options pouzivane u kompilatoru: -c - pouze preklad (vysledek je soubor s priponou `.o') -o soubor - jmeno vysledneho spustitelneho souboru (default `a.out') -lx - pripojeni standardni knihovny `libx.a' -g - pro debugging -O - optimalizace Managery Analogii MS-DOSovych XTREE, NC, atd. je v UNIXu minimum (jednim z nich je napr. utree). EDITORY Editoru je v UNIXu vice. Starsi jsou ed, sed a ex. Novejsi je vi. Jsou i lepsi editory nez vi, napr. emacs, ale vi je asi nejpouzivanejsi. Pro neinteraktivni editaci je i dnes vhodny napr. editor sed. Nasledujici popis editoru vi je jen malou podmnozinou jeho moznosti. Pracuje ve trech rezimech, zakladnim (je mozne si prohlizet text, mazat, atd.), vkladacim (je vepisovan text) a prikazovem (lze ho vyvolat jen ze zakladniho rezimu). Zakladni rezim: Left - kurzor vlevo h - kurzor vlevo Right - kurzor vpravo l - kurzor vpravo Up - kurzor nahoru k - kurzor nahoru Down - kurzor dolu j - kurzor dolu PgUp - stranka nahoru Ctrl-u - stranka nahoru PgDn - stranka dolu Ctrl-d - stranka dolu x - vymazani znaku dd - vymazani radku u - zruseni posledni zmeny Ctrl-l - prekresleni obrazovky Vkladaci rezim: i - vkladani pred kurzor a - vkladani za kurzor o - vkladani za radek Enter - novy radek Backspace - vymaz znaku Esc - konec vkladani Prikazovy rezim: :w - ulozeni souboru :w soubor - zapis do souboru :w! soubor - zapis do souboru :r soubor - cteni ze souboru :x - ukonceni s ulozenim zmen :q - ukonceni bez ulozeni zmen :q! - ukonceni bez ulozeni zmen TCP/IP Nasledujici text se vztahuje na site pouzivajici protokol (normu, predpis pro komunikaci v sitich) TCP/IP (TCP/IP je cela skupina protokolu, napr. E-mail, FTP, Telnet, atd.). Protokol TCP/IP neni vazan na konkretni operacni system (v omezenem rozsahu je implementovan i pod MS-DOSem). Protokol TCP/IP pouziva i metasit Internet. Internet dnes spojuje kolem milionu pocitacu nejruznejsiho hardware i software (od PC po superpocitace, systemy Unix, VMS, OS/2, atd.). Ruzne jsou i zpusoby propojeni techto pocitacu. Vetsina dnesnich rozsahlych (WAN), ale nekdy i lokalnich (LAN), siti je napojena do Internetu, at uz primo nebo prez jine site. Pri pouzivani siti je nutno dodrzovat urcita pravidla (viz `Pravidla') a zasady (napr. co nejmene zatezovat sit, ukoncovat komunikacni programy korektnim zpusobem, atd.). PRINCIP Pri prenosu dat z jednoho pocitace do druheho je vytvoreno pouze logicke propojeni techto pocitacu. Vysilana data jsou nejprve rozdelena do stejne velkych datovych bloku (tzv. paketu) a ty jsou postupne vyslany do site. Sit obsahuje celou radu ruzne navzajem propojenych pocitacu (uzlu site, tzv. routeru). Uzlove pocitace v siti si mezi sebou vymenuji informace o stavu site. Na zaklade nich se kazdy z nich rozhoduje, do ktereho dalsiho uzlu ma paket, ktery prez nej prochazi, vyslat (tzv. routing, smerovani). Kazdy paket se tedy v siti pohybuje nezavisle, prez ruzne uzly site, z vychoziho do ciloveho pocitace. V cilovem pocitaci se samozrejme data musi poskladat do podoby, ve ktere byla vyslana. Takto se sit muze dynamicky prizpusobovat momentalni situaci (napr. kdyz dojde k pretizeni linky mezi dvema pocitaci, dalsi pakety mohou byt smerovany jinudy a obejit toto kriticke misto). ADRESY Kazda sit ma svou unikatni logickou adresu (tzv. domenovou adresu). Domenova adresa je strukturovana - sklada se z nekolika casti, tzv. domen. Domen muze byt v adrese ruzny pocet a jsou oddeleny teckou. Domena nejvice vpravo se nazyva vrcholova (top level, je to kod statu nebo kategorie site), ostatni jsou subdomeny (subdomain). Kazdy pocitac (host) v dane siti ma unikatni jmeno (host name). Jmeno pocitace stoji v domenove adrese nejvice vlevo. Adresuje-li pocitac v dane siti jiny pocitac ve stejne siti, muze pouzit jako adresu pouze jmeno adresovaneho pocitace (sitova domena se doplni automaticky). Poznamka: ve Velke Britanii se poziva opacne poradi domen v domenove adrese site. Poznamka: mimo domenovych adres jsou i tzv. IP adresy a hardwarove adresy (pouzivaji se na nizsich urovnich). Pr.: zvonek.vscht.cs (host zvonek, domena vscht.cs, cs jako Ceskoslovensko), sun.fsid.cvut.cs (host sun, domena fsid.cvut.cs, cs jako Ceskoslovensko), nic.ddn.mil (host nic, domena ddn.mil, mil jako millitary), crcnis2.unl.edu (host crcnis2, domena unl.edu, edu jako education). TELNET Pokud chci pracovat na nekterem pocitaci v siti, nemusim byt fyzicky pritomen u jeho terminalu, mohu se k nemu dostat prez sit. Realizaci tohoto virtualniho terminalu `po siti' umoznuje program `telnet' (standardni soucast TCP/IP), `rlogin' (jen mezi systemy UNIX) nebo napr. MS-Kermit (v danem kontextu vyuziva protokol TCP/IP). Poznamka: v pocitaci, na kterem chci pracovat, musim mit samozrejme zrizen account. Pr.: kterykoliv z techto ctyr pocitacu se muze pomoci uvedeneho software chovat jako virtualni terminal pripojeny k nekteremu z UNIXu (k MS-DOSu to nejde, nebezi v nem potrebne procesy). +-----+ telnet nebo rlogin <--------------------->| | UNIX 1 | | | | telnet nebo rlogin <--------------------->| | UNIX 2 | | | sit | NCSA telnet nebo MS-Kermit <------------->| | MS-DOS 1 | | | | NCSA telnet nebo MS-Kermit <------------->| | MS-DOS 2 | | +-----+ Program telnet se spousti v lokalnim (local) pocitaci prikazem `telnet adresa', kde `adresa' je domenova adresa vzdaleneho (remote) pocitace v siti, na kterem chci pracovat. Potom se uz vypise `login' vzdaleneho pocitace. Po odhlaseni ze vzdaleneho systemu, se telnet ukonci (pokud mam prompt telnetu - `telnet>', mohu jej ukoncit prikazem `q' - quit). Ovladani telnetu v UNIXu i v MS-DOSu (NCSA telnet) je stejne. Pri pouziti MS-Kermitu se prikaz `telnet adresa' zadava jemu (za prompt `MS-Kermit>'). Po odhlaseni ze vzdaleneho systemu je potreba ukoncit MS-Kermit prikazem `q' - quit. Poznamka: v MS-DOSu je zpravidla nejprve nutne nainstalovat do pameti ovladac sitove karty. Poznamka: zda MS-Kermit emuluje terminal po seriove lince nebo po siti je dano jeho konfiguraci; prikaz `telnet' v MS-Kermitu je makro. FTP Program ftp umoznuje prenos souboru mezi libovolnymi dvema pocitaci v siti. Po spusteni ftp je potreba nejprve navazat logicke spojeni se vzdalenym (remote) pocitacem. K uspesnemu navazani spojeni je potreba mit v remote pocitaci zrizen account. V siti existuje rada specializovanych pocitacu - ftp file serveru, ktere obsahuji tzv. `public domain' software. Tento software je mozne volne kopirovat a upravovat. Nejsou na nej poskytovany zadne zaruky a samozrejmne se nelze na nem jakymkoli zpusobem obohacovat. V ftp serverech je zrizen anonymni account - uzivatel `anonymous' a jako heslo kazdy udava svou e-mailovou adresu. Pred samotnym prenosem je potreba nastavit mod prenosu - ascii pro textove soubory (presneji soubory obsahujici 7-bitove znaky; v tomto modu se provadi konverze, napr. se prevadeji znaky konce radku, atd.) a binary - pro binarni soubory (je vhodne nastavit tento mod i pro velmi dlouhe textove soubory). Poznamka: jako lokalni (local) je chapan pocitac, ze ktereho je spusteno ftp (pozor napr. pri soucasnem pouziti telnetu). Poznamka: pred samotnym kopirovanim je vhodne se presvedcit, zda je dostatek mista na disku, pripadne zda nebude prekrocen `ulimit' nebo `quota'. Poznamka: logicke spojeni je mozne navazat z MS-DOSu (pomoci NCSA ftp), ale ne do MS-DOSu (nebezi zde potrebne procesy). Prenos souboru: 1. spustim program `ftp' (vypise prompt `ftp>') 2. navazi spojeni se vzdalenym pocitacem prikazem `open adresa_vzdaleneho_pocitace'; vzdaleny pocitac pozaduje moje systemove jmeno a nasledne moje heslo 3. mohu vypsat obsah adresare vzdaleneho pocitace prikazem `ls' 4. mohu zmenit aktualni adresar vzdaleneho pocitace prikazem `cd adresar' (jako oddelovac adresaru je pouzit znak `/') 5. v pripade potreby nastavim mod prenosu prikazy `ascii' (ascii mod) nebo `binary' (binarni mod) 6. mohu nastavit prikazem `hash' prubezne vypisovani znaku `#' behem prenosu dat 7. pro prenos z lokalniho do vzdaleneho pocitace slouzi prikaz `put jmeno_lokalniho_souboru' 8. pro prenos ze vzdaleneho do lokalniho pocitace slouzi prikaz `get jmeno_vzdaleneho_souboru' 9. zrusim spojeni prikazem `close' a pokracuji bodem 2. nebo ukoncim program `ftp' prikazem `quit'. Poznamka: prikazy `mput' a `mget' funguji jako `put' a `get', ale navic provadeji expanzi jmen souboru. Archie: Pri hledani public domain software muze pomoci `archie'. Zadava se jmeno hledaneho souboru a vypisi se adresy pocitacu, ve kterych je tento soubor pristupny a v kterych adresarich. archie [-esr] `retezec' e - hledaji se jmena stejna jako `retezec' s - hledaji se jmena obsahujici `retezec' (mala a velka pismena se nerozlisuji) r - `retezec' muze obsahovat metaznaky Poznamka: je mozne se prihlasit primo na `archie server' jako uzivatel `archie' (napr. pomoci `telnet') a zadavat prikazy interaktivne. Vhodnejsi je ale pouzit prikaz `archie'. Gopher: Pristup do informaci ulozenych v tzv. gopher serverech je mozny pomoci prikazu `gopher' (nebo `gopher adresa_serveru', chceme-li pouzit jiny nez defaultove nastaveny gopher server). Vypisovane informace jsou usporadany po radcich, radek muze reprezentovat bud jiny gopher server, nebo adresar, nebo soubor (nebo prohledavani). Ovladani je mozne pomoci kurzoru (nebo poradove cislo radku a `Enter') a klavesy `Enter'. Jeji stlaceni zpusobi zmenu serveru (jde-li o gopher server), skok do podadresare (jde-li o adresar) nebo vypis informaci (jde-li o soubor). Vypsane informace je po jejich precteni (pagerem `pg') mozne ulozit do souboru v lokalnim pocitaci (klavesa `s', jinak `Enter'). Vratit se o adresar vys je mozne klavesou `u', ukoncit program je mozne klavesou `q'. E-MAIL Omezeni: - nejde posilat e-mailem dopisy delsi nez cca 100 kB - nejde posilat dopisy obsahujici 8-bitove znaky - neposilat dopisy s radky delsimi nez 80 znaku V techto pripadech pouzit `ftp', je-li to mozne. Spool: Kazdy uzivatel e-mailu ma v pocitaci, kam mu chodi mail v tzv. spoolu (adresar `/usr/mail' nebo `/usr/spool/mail') soubor sveho systemoveho jmena. Do neho se zapisuji jemu prisle dopisy. Tento prostor je spolecny pro vsechny uzivatele, proto je potreba presouvat si sve prisle dopisy do domovskeho adresare (viz elm) nebo je mazat. Adresy: Pokud posilam dopis z pocitace uzivateli, kteremu chodi mail na tento pocitac, mohu jako adresu pouzit jeho systemove jmeno. V ostatnich pripadech ma adresa tvar `user@host.dom', kde `user' je systemove jmeno adresata, `host' je pocitac, na ktery mu chodi mail v siti s domenovou adresou `dom'. Pokud je vyclenen specializovany pocitac (mail-hub), prez ktery prochazi vsechen mail a je takto nakonfigurovan, jsou dalsi moznosti adresovani: - je mozne (a vhodne) v adrese vynechat jmeno hostu - misto systemoveho jmena uzivatele je mozne pozit jmeno ve tvaru `Jmeno.Prijmeni' nebo `jmeno.prijmeni'; jmeno hostu v tomto pripade nesmi byt uvedeno, domenova adresa musi byt uvedena vzdy - je mozne posilat dopisy skupinam, misto jmena uzivatele se uvede jmeno mailove skupiny; jmeno hostu nesmi byt v tomto pripade uvedeno, domenova adresa site musi byt vzdy uvedena Poznamka: spravce systemu e-mail ma jmeno `postmaster' a obstarava cinnost spojenou se spravnym chodem posty. Pokud chcete znat neci adresu, nejjednodussi zpusob je otazat se postmastera pro tuto sit. Poznamka: Pokud neni dopis dorucen (napr. chybna adresa), posle ho zpatky `mailer-daemon' (je-li tak e-mail nakonfigurovan). Poznamka: v nekterych sitich muze byt zpusob adresace odlisny. Napr. EARN a BITNET (`user@node.bitnet') nebo EUnet, USENET a jine `uucp' site (`host.dom!user' nebo `host!host...!user'). Samozrejmne je vzdy nutne znat spravnou adresu adresata. ELM Uzivatel pouziva e-mail pomoci nejakeho rozhrani (user interface). Jednim z nich je program elm (jsou i jine napr. `mail'). Elm se spousti prikazem `elm' nebo automaticky hned po prihlaseni do systemu, pokud mate ve spoolu nejake dopisy. V hlavnim menu kazdemu doslemu dopisu odpovida jedna radka. Aktualni dopis je odlisen (sipkou nebo reverzne) a voli se pomoci kurzoru nebo zadanim sveho poradoveho cisla. Program se ovlada pomoci vyznacenych klaves, nejdulezitejsi jsou: d - oznaceni dopisu, ktery bude vymazan (delete) m - odeslani dopisu (mail) q - ukonceni programu (quit) s - presun dopisu ze spoolu do souboru (save) u - zruseni oznaceni dopisu, ktery mel byt smazan (undelete) Odeslani dopisu: 1. volba `mail' (`m') 2. napisi e-mailovou adresu adresata (za prompt `To: ') 3. napisi subject (vec, oznaceni) dopisu (za prompt `Subject: ') 4. napisi komu poslat kopii - nikomu `Enter' (za prompt `Copies to: ') 5. napisi dopis v editoru `vi' Poznamka: editaci dopisu ukoncujte posloupnosti klaves `Esc', `:', `x' a `Enter' (pokud pouzijete napr. `Esc:q!Enter' nebo napred zapisete text do nejakeho souboru, odesle se pouze hlavicka dopisu !) 6. poslu dopis - volba `send' (`s') Cteni a presun dopisu: 1. vyberu dopis a zmacknu `Enter' 2. prectu si dopis pagerem `pg'; po ukonceni pageru zmacknu volbu `index' (`i') 3. mohu presunout dopis ze spoolu do souboru - volba `save' (`s'), zadam jmeno souboru (za prompt `Save message to: ', `=' reprezentuje adresar `Mail' v domovskem adresari) Vymazani dopisu: 1. vyberu dopis 2. oznacim dopis, ktery bude vymazan - volba `delete' (`d') 3. mohu zrusit oznaceni dopisu - volba `undelete' (`u') Ukonceni programu: 1. volba `quit' (`q') 2. pri odpovedi `yes' (`y') na pripadnou otazku `Delete messages? ' budou dopisy urcene k smazani vymazany; u ostatnich otazek lze akceptovat nabizene odpovedi (`Enter') KONEC Autor: Jan Hrdonka e-mail: hrd@vscht.cz DODATKY JMENO Uzivatel se prihlasuje pod jemu pridelenym jmenem, pouzivaji se jen mala pismena (jmeno = prihlasovaci jmeno, systemove jmeno, login id). Toto jmeno zacina prijmenim a pokracuje jednim (pocatecnim) pismenem z krestniho jmena uzivatele. Pokud je prijmeni uzivatele delsi nez 7 znaku, pouzije se jen prvnich sedm. Pokud jiz existuje uzivatel se stejnym prijmenim a pismenem z krestniho jmena, pouzije se pro noveho uzivatele nejblizsi odlisne pismeno z jeho krestniho jmena. HESLO Heslo (password) musi splnovat nasledujici pozadavky: - delka prave 8 znaku (pripadne nadbytecne se ignoruji) - alespon 3 znaky musi byt pismena (mala nebo velka) - alespon 1 znak musi byt jiny nez pismeno (cislice, ``!'', ``"'', ``$'', ``.'', `` '', ``='', ...) - rozdil mezi starym a novym heslem alespon ve 3 znacich - nesmi obsahovat znaky ``#'' a ``@'', znaky s ASCII kodem nizsim nez 32 ("ridici", vetsinou sedive klavesy), znaky s ASCII kodem vyssim nez 126 ("cestina", "ramecky", ...) Heslo, uvedene pro prvni pouziti, si kazdy musi zmenit po prvnim prihlaseni a nevztahuji se na nej nasledujici pozadavky: - heslo nesmi obsahovat jmeno, prijmeni, krestni jmeno nebo posloupnost znaku (stejnych, vzestupnou nebo sestupnou). MALA A VELKA PISMENA SE V UNIXU VSUDE ROZLISUJI, TEDY I V HESLECH ! E-MAIL ADRESA E-mailova adresa (e-mail address) uzivatele ma nasledujici tvar: ``Jmeno.Prijmeni@vscht.cz'' nebo ``jmeno.prijmeni@vscht.cz''. Jsou i jine mozne tvary adres, doporucuje se tento. E-mail je mozne prijimat pouze na jednou pocitaci, odesilat jej je mozne z libovolneho pocitace. E-mail je plne funkci az nasledujici den po vytvoreni uzivatelskeho konta. POZNAMKA 1 Program ``elm'' muze mit kazdy spusten pouze jednou. Pokud dojde k nejakemu neregulernimu preruseni, vypise se pri dalsim pokusu o spusteni zprava: You seem to have ELM already reading this mail! You may not have two copies of ELM running simultaneously. -- Exiting -- this is in error, then you'll need to remove the following file: /tmp/mbox.xxx V tomto pripade dejte prikaz ``rm /tmp/mbox.${LOGNAME}'' a zkuste to znovu. POZNAMKA 2 Je mozne zmenit konfiguraci programu ``elm'', tak aby prikaz ``P)rint'' v hlavnim menu kopiroval zpravu na tiskarnu pripojenou k terminalu (PC). Toto se provede v menu ``O)ptions'' zmenou polozky ``P)rint mail using''. Posloupnost prikazu: ``o'', ``p'', ``cat %s | llp > /dev/tty[Enter]'', ``>'', ``q''. POZNAMKA 3 Program ``elm'' umoznuje vytvaret aliasy pro e-mailove adresy, tj. nahradit nejakou e-mailovou adresu (nebo adresy) (vcetne adres skupin) jinou, vlastni. Postup: 1) v hlavim menu ``elm'' stlacit ``a'' (alias) 2) v menu alias stlacit ``n'' (new alias - novy alias) a) zadat jmeno aliasu, tj. adresu, kterou chci pouzivat misto adresy (adres) uvedenych v bode c) Pr.1. Enter alias name: pepa Pr.2. Enter alias name: skupina b) zadat informacni pole (postupne last name - prijmeni, first name - jmeno, comment - nepovinny komentar) Tato pole mohou obsahovat libovolny text. Pr.1. Enter last name: Novak Enter first name: Josef Enter comment: tel. 3327401 Pr.2. Enter last name: Skupina Enter first name: E-Mailova Enter comment: c) zadat e-mailovou adresu (adresy), kterou chci nahradit Pozor, zda jsou vsechny tyto adresy spravne ! Pr.1. Enter address: Josef.Novak@vscht.cz Pr.2. Enter address: Josef.Novak@vscht.cz nejakaskupina@vscht.cz d) je-li vse v poradku, stlacit ``y'' (yes - ano), jinak ``n'' (no - ne) a pokracovat bodem 2) 3) pokud chci pridat dalsi alias, pokracovat bodem 2), jinak stlacit ``r'' (return - navrat) 4) nyni je jiz mozne pouzivat pri odesilani dopisu v polozce ``To:'' jmena aliasu misto adres uvedenych v bode 2c) Pr.1. To: pepa Pr.2. To: skupina # # .elm/elmrc - options file for the ELM mail system # - konfiguracni soubor pro ELM # # Poz.: adresar ``.elm'' se nachazi v domovskem adresari uzivatele # Poz.: vse na radku za znakem ``#'' je komentar # Poz.: jako vzor je pouzit uzivatel ``Josef Novak'', s prihlasovacim # jmenem ``novakj'' a domovskym adresarem ``/users/novakj''. # # For yes/no settings with ?, ON means yes, OFF means no # ``ON'' znamena ano, ``OFF'' znamena ne # how to sort the alias list, "Name" by default aliassortby = Name # name of editor to use for replies that have text alteditor = vi # should the default be to delete messages we've marked for deletion? alwaysdelete = OFF # should the default be to keep unread messages in the incoming mailbox? alwayskeep = ON # should the default be to store read messages to the "received" folder? alwaysstore = OFF # should we use the "->" rather than the inverse video bar? arrow = OFF # should the message disposition questions be displayed(ON) or # auto-answered(OFF) with the default answers when we resync or change folders? ask = ON # would you like to be asked for Carbon-Copies information each msg? askcc = ON # automatically copy message being replied to into buffer? autocopy = OFF # threshold for bouncing copies of remote uucp messages... # zero = disable function. bounceback = 0 # where to save calendar entries # kam zapisovat calendar entries ### calendar = /users/novakj/calendar # name of Character Set used with MIME text/plain Content-type # US-ASCII is default. Be aware that if you use a national charset # elm probably needs metamail to display US-ASCII. charset = US-ASCII # list of Character Sets, which are more or less a superset of US-ASCII # so we know that we can display messages with charset=US-ASCII without # help of metamail compatcharsets = ISO-8859-1 ISO-8859-2 ISO-8859-3 ISO-8859-4 ISO-8859-5 ISO-8859-7 ISO-8859-8 ISO-8859-9 # list of options that can be configured at the "o)ptions" screen configoptions = ^_cdefsopyv_am_un # save a copy of all outbound messages? # ukladat kopie vsech odesilanych dopisu ? copy = OFF # ^^^ # jestli ano, zde zmente na ``ON'' (viz dale volba ``forcename'') # name of editor for ~e command (when editor="builtin") easyeditor = emacs # what editor to use ("none" means simulate Berkeley Mail) # jaky editor se pouziva pro psani dopisu editor = vi # ^^ # zde muzete zmenit jmeno editoru (napr. ``editor = joe'') # the character to use in the builtin editor for entering commands escape = ~ # save outbound messages by login name of sender/recipient even if the # associated folder doesn't already exist? # ukladat kopie odeslanych dopisu do ruznych souboru podle adresatu ? forcename = OFF # jestli ano, zde zmente na ``ON'' (ma smysl pouze spolu s ``copy = ON'') # do we want to be able to mail out AT&T Mail Forms? forms = OFF # The full user name for outbound mail # plne jmeno uzivatele ### fullname = Josef Novak # should we keep folders from which all messages are deleted? keepempty = OFF # are we running on an HP terminal and want HOME, PREV, NEXT, etc...? keypad = OFF # where to save my mail to, default directory is "Mail" # adresar pro ukladani posty ### maildir = /users/novakj/Mail # should we display the three-line 'mini' menu? menu = ON # would you like a copy of a message you send to an alias you are on? metoo = OFF # when using the page commands (+ - ) change the current # message pointer...? movepage = OFF # just show the names when expanding aliases? names = ON # when messages are copied into the outbound buffer, don't include headers? noheader = ON # program to use for displaying messages ('builtin' is recommended) # jaky pager se pouziva pro prohlizeni dopisu pager = pg # ^^ # zde muzete zmenit jmeno pageru (napr. ``pager = less'') # start up by pointing to the first new message received, if possible? pointnew = ON # prefix sequence for indenting included message text in outgoing messages... prefix = >_ # how to print a message ('%s' is the filename) # jak tisknout dopisy print = lpr %s # ^^^ # pokud zde zmenite na ``print = llp %s > /dev/tty'', # budou se tisknou na Vasi lokalni tiskarne # prompt for a command after the external pager exits? promptafter = ON # where to save received messages to, default file is "=received" receivedmail = =received # emulate the mailx message increment mode (only increment after something # has been 'done' to a message, either saved or deleted, as opposed to # simply each time something is touched)? resolve = ON # save messages, incoming and outbound, by login name of sender/recipient? savename = ON # where to save copies of outgoing mail to, default file is "=sent" sentmail = =sent # The shell to use for shell escapes shell = /bin/sh # do we want dashes above signatures? (News 2.11 compatibility and convention) sigdashes = ON # are we running on an HP terminal and want softkeys available too? # (this implies "keypad=ON" too) softkeys = OFF # how to sort folders, "Reverse Sent" by default sortby = Reverse-Sent textencoding = 7bit # Set the main prompt timeout for resynching... timeout = 600 # display message title when displaying pages of message? titles = ON # where to place temporary files, default directory is "/tmp" tmpdir = /tmp/ # are we good at it? 0=beginner, 1=intermediate, 2+ = expert! userlevel = 0 # name of editor for ~v command (when editor="builtin") visualeditor = /usr/ucb/vi # enable the weedout list to be read? weed = ON # what headers I DON'T want to see, ever. weedout = "*end-of-user-headers*" # # EOF .elm/elmrc #