Základní orientace v systémech UNIX

Podobné dokumenty
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

Linux-příkazový řádek

Unix je víceuživatelský a víceúlohový OS

Základní příkazy UNIXu (Linuxu)

Ú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 pro práci se soubory

Základní příkazy OS UNIX

Úvod do Operačních Systémů

PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Identita uživatelů, přístupová práva. Linux

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese

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.

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

Úvod, jednoduché příkazy

Systém souborů (file system, FS)

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

PSK3-3. Základní příkazy. Zápis cesty

Systém souborů (File System)

Úvod do Operačních Systémů

Úvod do Operačních Systémů

Úvod. unx-predn_01-uvod.odt :13:43 1

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

Úvod do Linuxu. SŠSI Tábor 1

Úvod do Operačních Systémů

Lekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

LINUX přesměrování a roury

UŽIVATEL, SKUPINA, PROCES

PŘÍKAZY OVLÁDÁNÍ SHELLU

Téma 2: Práce s commands. Téma 2: Práce s Commands

Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x

ZOS CV1 Základy operačních systémů

Střední odborná škola a Střední odborné učiliště, Hořovice

Univerzita Pardubice Fakulta elektrotechniky a informatiky ISOSY Matěj Trakal

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.

PRACUJEME S SHELLEM Ať žije BASH.

Operační systémy. Cvičení 1: Seznámení s prostředím

Průvodce aplikací GTS Webový portál pro správce

NÁVOD K AKTIVACI A POUŽÍVÁNÍ OVÉHO ÚČTU V DOMÉNĚ PACR.EU

Průvodce instalací modulu Offline VetShop verze 3.4

Návod na používání webmailu

FILTRY V GNU/LINUXU ZLÍNSKÝ KRAJ. Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště

PŘÍKAZY PRÁCE SE SLOŽKAMI

EQAS Online. DNY kontroly kvality a speciálních metod HPLC, Lednice

Jemny u vod do operacˇnı ho syste mu Linux

Popis programu EnicomD

LINUX uživatelské účty (1)

Uživatelská příručka pro respondenty

Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Nástroj Setup. Uživatelská příručka

Základy programování (IZP)

Architektura systému GNU/Linux. Bohdan Milar

Úvod do Operačních Systémů

Manuál k ovládání aplikace INFOwin.

Úvod do UNIXu. Okruh č. 1 - přihlášení, historie, práce se soubory. Jakub Galgonek. verze r1. inspirováno materiály Davida Hokszy

Univerzální rezervační systém. Uživatelská příručka

BASH. Kouzla s příkazovou řádkou. Petr Koloros

C2110 Operační systém UNIX a základy programování

Pomůcka/manuál pro redakční systém verze 1.0

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem

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

Paralelní výpočty na clusteru KMD

Sentech AL 7000 C. Instalace a ovládání programu BREATH

Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka

1. Otevřete dokument, který chcete číst. 2. Na kartě Zobrazení klikněte ve skupině Zobrazení dokumentů na položku Čtení na celé obrazovce.

Sekvenční a podmíněné provádění

BRICSCAD V15. Licencování

Základy operačního systému LINUX část I

Téma 4: Správa uživatelského přístupu a zabezpečení II. Téma 4: Správa uživatelského přístupu a zabezpečení II

Postupy práce se šablonami IS MPP

PSK3-5. Přesměrování vstupu a výstupu. Vstup a výstup

Architektura systému. Tomáš Borland Valenta

Maturitní téma: Operační MS-DOS

Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde. find adresář -name "maska_souboru" [-print] [-exec proces {} \;]

Průvodce aplikací Webový portál pro správce Portal-uc.gtsce.com

Tomáš Borland Valenta

Operační systém GNU/Linux

Uživatelský manuál. Format Convert V3.1

AUTOMATICKÉ ZÁLOHOVÁNÍ DATABÁZE PRO SQL Express 2005

1 Uživatelská dokumentace

Certifikační autorita EET Modelové postupy vytvoření souboru žádosti o certifikát

Program Computer Setup

Téma 3: Správa uživatelského přístupu a zabezpečení I. Téma 3: Správa uživatelského přístupu a zabezpečení I

Úvod do Operačních Systémů

Tisk dokumentů na VŠPJ

Connect Genius V2. Instalace programu.

Jak používat program P-touch Transfer Manager

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

Kanboard Documentation. The Kanboard Authors

PROGRAMOVÁNÍ V SHELLU

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA

Úvod do Operačních Systémů

Administrace webu Postup při práci

Manuál QPos Pokladna V1.18.1

Úvod do UNIXu. Jirka Boháč Gymnázium Jaroslava Seiferta 2003/2004

Manuál k programu KaraokeEditor

Modul 2. Druhá sada úkolů:

Administrace OS Unix. Úvodní informace Principy administrace Uživatelé

Uživatelské postupy v ISÚI

Transkript:

Základní orientace v systémech UNIX Příkazový interpret (shell) Jak napovídá anglický název (ulita), příkazový interpret (shell) odděluje uživatele od operačního systému. Chrání uživatele před nepohodlím přímé práce se systémem (musel by pro každou akci napsat program ve vhodném programovacím jazyce) a před chybami, kterých by se mohl snadno dopustit při programování. Pracuje tak, že čte z klávesnice příkazy uživatele (napsané ve snadno srozumitelném jazyce shellu) a převádí je na akce prováděné systémem. V operačním systému DOS zastává tuto funkci program command.com. Historicky nejstarším shellem v UNIXu je Bourne shell, sh. Je to také jediný shell, který zaručeně najdete ve všech verzích UNIXu. Jak další se objevil C-shell, csh. Jeho syntaxe je odvozena od programovacího jazyka C, ve kterém byl napsán celý operační systém UNIX. Je dokonalejší a výkonnější než sh, ale také složitější a proto klade mnohem větší nároky na uživatele. V csh je již vestavěno řízení úloh (job control), které v původním sh nebylo. Paměť historie příkazů umožňuje snadno modifikovat a opakovat již jednou zadané příkazy. Také tento shell najdete ve většině verzí UNIXu. V současnosti se používá řada modifikací, které obvykle zachovávají kompatibilitu se sh nebo csh, jsou však rozšířeny o celou řadu dalších funkcí. Některé z nich jsou dnes velmi rozšířené, např. ksh a bash (vycházející z sh) nebo tcsh a cshe (vycházející z csh). V následujícím textu se seznámíte s některými základními vlastnostmi sh a csh. Přihlášení uživatele (logging in) Přihlášení probíhá formou zadání uživatelského jména a hesla. UNIX rozlišuje velká a malá písmena (tj Martin a martin jsou různá jména). Výjimečné postavení v systému má uživatel root správce systému Aktivace uživatele root v Kubuntu Jelikož ke skoro každé akci, která trochu zasahuje do systému (přidávání programů, změna nastavení obrazovky,...), potřebujete speciální práva, která má jen uživatel root (super-uživatel), jste při každé této operaci vyzváni k zadání hesla. Když ze začátku nastavujete systém, je to dosti nepohodlné, pořád zadávat heslo. Naštěstí lze tuto nepříjemnou ochranu následujícím způsobem "obejít": spusťte konzoli a napište do ní příkaz sudo passwd budete vyzváni k zadání nového UNIXového hesla (Enter new UNIX password) - nějaké pěkné s vymyslete (například: rootroot), napište jej, potvrďte ENTERem, zadejte jej ještě jednou a opět potvrďte; heslo pro roota je vytvořeno v adresáři /etc/kde3/kdm/ je soubor kdmrc; klikněte na něj pravým tlačítkem a vyberte volbu Actions --> Edit as root

najděte řádku AllowRootLogin=false, přepište false na true a soubor uložte Hotovo. Nyní se odhlašte a při přihlášení jako jméno zadejte root a jako heslo heslo, které jste zadávali ve druhém bodě jako new UNIX password. Pokud jste přihlášen jako root, pak samozřejmě nemusíte používat příkaz sudo, máte přístup ke všem složkám a můžete je libovolně editovat, mazat a přesouvat. Práce uživatele na více konzolích Můžete s výhodou využít práce na více konzolích Nápověda (help) Zkrácenou nápovědu k příkazu u většiny příkazů lze získat tak, že za příkazem napíšete jako argument -h nebo --help, např.: rm --help Podrobná nápověda pomocí příkazu man: man rm Nápověda k nápovědě: man man Pro začátečníka je největším problémem to, že pro získání zkrácené i podrobné nápovědy musí znát přesné jméno příkazu. Proto je v moderních verzích UNIXu implementováno hledání podle klíčových slov, založené na tzv. "whatis" databázi. Dotaz můžete zadat tak, že za příkazem man nejprve napíšete volbu -k a za ní napíšete požadované klíčové slovo. Příkaz vám vrátí přehled všech manuálových stránek, na kterých se zadané klíčové slovo nachází ve stručném popisu příkazu (odstavce označené na manuálových stránkách nadpisem NAME). Například: man -k cron vypíše: cron (8) -daemon to execute scheduled commands cron [crond] (8) -daemon to execute scheduled commands crontab (1) -maintain crontab files for individual users crontab (5) -tables for driving cron Manuálové stránky jsou rozděleny do sekcí, ve kterých se někdy mohou vyskytovat stejná hesla (např. heslo crontab je v sekcích 1 i 5). V takovém případě příkaz man vypíše pouze první nalezenou stránku (v našem příkladě ze sekce 1). Pokud chcete vypsat i případné stránky z dalších sekcí, je nutné použít volbu a (man a crontab) nebo specifikovat sekci, o kterou máte zájem (man 5 crontab). Podrobný popis příkazu man najdete na jeho manuálové stránce (příkaz man man). Zkuste si:

V nápovědě vypsané příkazem man se můžete pohybovat pomocí a PgUp a PgDown a ukončíte jí klávesou q. Další pomoc v orientaci v unixu: V unixu funguje doplňování příkazů a cest pomocí tabulátoru Příklad: zkuste se přepnout pomocí příkazu cd do adresáře: /usr/x11r6/bin stiskněte / pak u pak TAB znovu TAB a znovu TAB pak X a tak dále. Je také možné použít historii příkazů pomocí Zjištění kde jsem pwd Zjištění kdo jsem whoami Moje identifikace id Zjištění kdo tu ještě je who (neukazuje roota, zkuste who -a) w Uživatelské účty a hesla Přidání nového uživatele do systému: Napište cat /etc/passwd sort less To co vidíte je soubor obsahující všechny uživatele v systému a některá jejich nastavení. Uživatele je možné přidat do systému manuálně (zapsáním do tohoto seznamu a vytvořením jeho uživatelského adresáře a začleněním do skupin ), či automaticky: 1. Napište useradd 1 m jméno - tím vytvoříte uživatele, včetně jeho domovského adresáře a všech nastavení v /etc/passwd 2. Pak passwd jméno - tím mu vytvoříte heslo do systému 3. Znovu se podívejte na /etc/passwd 4. Poté se zkuste jako tento uživatel přihlásit: Napište login 1 Pro přidání uživatele se přihlaste jako root. Není li v systému useradd, zkuste adduser

V některých systémech se kontroluje správnost hesla z hlediska systémové bezpečnosti (zda heslo není příliš krátké nebo snadno uhodnutelné). Nové heslo nevyhovující bezpečnostním požadavkům pak může být odmítnuto. Příklad: například změnit heslo roota na aaa - systém odpoví Bad password: to short a v závislosti na nastavení systémové politiky buď povolí takto jednoduché heslo nebo né. Pokud se chcete přihlásit jako jiný uživatel, je dobré se nejprve odhlásit: Odhlášení relace V grafickém režimu ODHLASIT na liště jinak ^D (CTRL + D) ^C (CTRL + C) indikuje konec dat (např. při čtení standardního vstupu z klávesnice); někdy může vyvolat odhlášení uživatele, ale obvykle je tato funkce v systému zablokována přerušení právě prováděného příkazu (nedokončí se) logout nebo exit odhlášení ze systému (konec relace) Přihlášení roota Pokud chcete na chvíli pracovat jako root, není nutné se odhlašovat. Stačí zadat příkaz: su heslo_roota Do odhlášení relace můžete vykonávat správu systému jako root. Práce s adresáři (složkami) Souborový systém UNIXu je organizován jako strom, vycházející z kořene (root). Kořenový adresář (root directory) souborového systému symbolizuje lomítko / (forward slash). Všechny ostatní adresáře (systémové i uživatelské) jsou začleněny do stromu kořenového adresáře. Ve většině verzí UNIXu najdete v kořenovém adresáři tyto adresáře: /bin, /etc, /lib, /sbin, /usr, /dev, /home, /tmp, /var... Uživatelé systému kořenový adresář běžně nepoužívají. Po přihlášení má každý uživatel obvykle nastaven tzv. domovský adresář (home directory). Domovské adresáře všech uživatelů se obvykle nacházejí v adresáři /home a jmenují se stejně jako uživatelé. Každý uživatel pak může ve svém domovském adresáři vytvářet podle potřeby další adresáře a ukládat do nich soubory. Následující seznam obsahuje hlavní příkazy pro práci s adresáři: cd directory změň aktuální pracovní adresář (change directory), přejdi do

cd cd / cd.. cd../.. /.. cd /full/path/name/from/root cd path/from/current/location cd ~username/directory pwd mkdir Rmdir adresáře directory přejdi do domovského adresáře přejdi do kořenového adresáře systému (root) přejdi v hierarchii adresářů o jednu úroveň zpět (směrem ke kořenovému adresáři) přejdi v hierarchii adresářů o více úrovní zpět (každá posloupnost /.. označuje jednu úroveň) přejdi do adresáře definovaného absolutním jménem (na začátku cesty je lomítko) přejdi do adresáře definovaného relativním jménem (na začátku cesty není lomítko) přejdi do adresáře directory v domovském adresáři uživatele username (pozor -symbol ~ nelze použít v Bourne shellu, viz sekce 3) vypiš cestu do pracovního adresáře (print working directory) vytvoř nový adresář (make directory) odstraň adresář (remove directory) Poznámka: pomocí rmdir lze odstranit jen prázdný adresář; neprázdný adresář (včetně jeho obsahu) lze odstranit příkazem rm rf Příklady: Zjistěte aktuální adresář (pwd) Přesuňte se do kořenového adresáře (cd /) V adresáři /home vytvořte podadresář POKUS (mkdir /home/pokus) Vytvořte další podadresář /home/pokus/dobryden Vytvořte další podadresář /home/pokus/dobry den -(mkdir dobry den ) Výpis obsahu adresáře Obsah adresáře lze vypsat příkazem: ls -[options] [argument] Pokud není uveden argument, vypíše se obsah aktuálního pracovního adresáře. Příkaz lze modifikovat celou řadou voleb (options). Volby se zadávají za jménem příkazu jako řetězec, před kterým je znak "-". V následující tabulce je přehled hlavních voleb (options) příkazu ls: -a vypíší se údaje všech souborů, včetně skrytých (tj. začínajících tečkou ".") -d u adresářů se místo jejich obsahu vypíší pouze údaje o adresáři -F ve výpisu se indikuje typ položky předřazením následujících symbolů:

/ adresáře = sokety @ symbolické linky * proveditelné soubory (executables) -g zobrazí se skupina (group) přiřazená k souboru; vyžaduje současně volbu -l (BSD UNIX); v systémech odvozených od UNIXu System V má tato volba opačný efekt (potlačí výpis skupiny) -L pokud je položka symbolický link, vypíší se místo údajů o linku údaje o souboru, na který link vede -l dlouhý (long) formát výpisu; vypíše se mod, informace o počtu spojek (hard links), jméno vlastníka, velikost a čas poslední modifikace souboru. Pokud je soubor symbolická spojka (symbolic link), předchází jménu odkazovaného souboru šipka -->. Každý řádek začíná 10-znakovým polem mode. Význam prvního znaku v poli je následující: d Adresář -obyčejný soubor b speciální soubor (zařízení) blokového typu c speciální soubor (zařízení) znakového typu l symbolická spojka (odkaz na reálný soubor) s socket (vyrovnávací paměť síťového spojení) Následujících 9 znaků tvoří 3 sekce po 3 znacích. Znaky v každé sekci indikuje přístupová práva některých uživatelů k souboru -první 3 znaky specifikují přístupová práva vlastníka (owner), další 3 znaky přístupová práva členů skupiny přiřazené k souboru (group), poslední 3 znaky přístupová práva všech ostatních uživatelů systému (others). V každé sekci mohou být znaky: r právo ke čtení (read) w právo k zápisu (write) x právo k provádění (execute) Pomlčka "-" v příslušné pozici indikuje, že příslušné právo není přiděleno (např. kombinace r-x znamená, že uživatel má pouze právo ke čtení a k provádění, ale nemá právo zápisu). Existují ještě další málo používané symboly pro zvláštní práva (podrobnosti viz manuálová stránka příkazu ls). Zkuste si vypsat obsah adresář příkazy: ls ls /proc ls laf /proc ll - co je to ll?? viz dále ls d /proc/b* tzv. expanze jmen souborů, vypíše všechna začínající na b ls d /proc/c?u* vypíše všechna začínající na c a s 3. znakem u Co znamenají ta dr-xr-... ve výpisu programu ls? první znak reprezentuje: d - adresář

@ - odkaz - - soubor a ostatní znaky: Přístupová práva souborů Každý soubor (a za soubory jsou považovány také adresáře, programy či zařízení) má samostatně nastavitelná přístupová práva. Pomocí těchto práv lze specifikovat, kdo může příslušné soubory číst (read), kdo do nich smí zapisovat (write) a/nebo provádět je (execute). Nastavení přístupových práv souborů lze jednoduše zjistit příkazem ls s volbou l. Výstup příkazu pak vypadá asi takto: vlastník skupina ostatní Pole vyplněné znaky rwxr-x---specifikuje přístupová práva, jak bylo popsáno u voleb příkazu ls. V našem příkladu rwxr-x---dovoluje vlastníkovi (user) souboru soubor číst, zapisovat do něj a provádět ho, uživatelům patřícím do skupiny (group) soubor číst a provádět. Všichni ostatní (other) uživatelé systému k souboru nemají přístup, tj. nemohou ho ani číst, ani modifikovat, ani provádět. Přístupová práva souboru lze změnit příkazem chmod (change mode). Přístupová práva lze nastavovat číselným vyjádřením, nebo pomocí atributů. 2 Číselné vyjádření: chmod 755 a.txt nastaví práva souboru a.txt podle předchozího obrázku na: rwxr-xr-x Vyjádření pomocí atributů: 2 Poznámka: pokud dáváte skupině a ostatním uživatelům právo číst soubor, musí mít všechny adresáře na cestě k tomuto souboru nastavené minimálně právo x (execute), které u adresářů povoluje uživateli nastavení tohoto adresáře jako pracovního (právo přejít do něj příkazem cd). Toho lze jednoduše dosáhnout příkazem: chmod 711. - tečka (.) indikuje "tento adresář", tzn. určuje, že příkaz má změnit mod aktuálního pracovního adresáře. Unixové systémy umožňují u adresářů při nastavení práva čtení vypsat obsah adresáře (s vyjímkou některých, pak je potřeba nastavit i x)

user = u read = r group = g write = w other = o execute = x chmod u=rwx g=rx o=rx a.txt - shodné s předchozím 755 chmod og=rw a.txt - přidá sk. a ostat. právo číst a zapisovat chmod u=+x a.txt - přidá vlastníkovi právo spustit chmod ugo=-x a.txt - odebere všem právo spustit soubor Utility Jedním z nejvýznamnějších přínosů UNIXu do praxe operačních systémů byla koncepce jednoduchých, vzájemně propojitelných utilit (= užitečných programů), umožňujících provádět běžné úlohy či získávat požadované informace bez psaní vlastních programů. UNIXové utility jsou napsány tak, že umožňují řetězení do "roury" (pipelining), tj. výstup jedné utility lze zavést jako vstup do druhé. Tato modularita spolu s pružností příkazů měnitelných volbami (options) a propracovaností příkazového interpretu (shell) umožňuje realizovat většinu úloh tzv. příkazovými soubory (skripty). Struktura příkazu Příkaz je program, který operačnímu systému dává nějaký úkol. Formát příkazů je následující: command [options][arguments] Volby (options) modifikují chování příkazu (např. volbou lze vybrat některou z variant výstupního formátu). Argumenty udávají, s čím má příkaz pracovat (argumentem může být např. jméno souboru). Volby se v příkazech obvykle uvozují pomlčkou(-). Ve většině příkazů lze symboly voleb spojit do řetězce, připojeného za úvodní pomlčku: command -[option][option][option] Zkuste si: ls l a je shodné s ls la Přesměrování vstupu a výstupu V unixu jsou standartně 3 zařízení STDIN pro vstup (většinou klávesnice), STDOUT pro výstup (většinou obrazovka terminálu) a STDERR pro chybový výstup (většinou také obr.) Přesměrováním lze dosáhnout toho, že výstup utility, který by se normálně vypisoval na obrazovku (STDOUT), bude uložen do pojmenovaného souboru nebo předán na vstup jiného příkazu. Např. příkaz: ls > a.txt

uloží výpis programu ls do souboru a.txt cat file1 file2 > file3 sloučí obsah souboru file1 s obsahem souboru file2 a výsledný soubor uloží do souboru file3. Pokud soubor file3 dosud neexistuje, bude vytvořen. Pokud existuje, jeho obsah bude buďto přepsán, nebo se příkaz neprovede (záleží na nastavení parametrů shellu -viz volba noclobber v sekci 3). Původní soubory file1 a file2 zůstanou nezměněny. Podobně příkaz: cat file1 file2 >> file3 sloučí obsah souboru file1 s obsahem souboru file2 a výsledek připojí na konec již existujícího souboru file3 (tj. ponechá jeho původní obsah a za něj připojí obsah souborů file1 a file2). Podobně lze přesměrovat také vstup, takže utilita čte příkazy nebo data místo z klávesnice (STDIN), ze souboru. Protože většina příkazů UNIXu umí alternativně číst data ze standardního vstupu (obvykle klávesnice) i ze souboru, používá se přesměrování vstupu pomocí znaku < jen řídce. Například příkaz: cat < a.txt vypíše na obrazovku obsah souboru file1, tj. udělá totéž co příkaz: cat a.txt Podobně jako v MSDOSu je i linuxu zařízení null, které lze občas s výhodou použít (uvidíme dále ) Například: ls > null vypíše obsah do zařízení null všechno se ztratí. Větší význam bude mít přesměrování vstupu, jak uvidíme dále. Řetězení (roury, kolony) Mnohem častěji se využívá přesměrování vstupu při řetězení příkazů. V příkazu: ll /proc more porovnejte s ll /proc představuje symbol rouru (pipe), tj. propojuje standardní výstup příkazu ll (vlastně ls) se standardním vstupem příkazu more. Tímto způsobem lze propojit i několik příkazů za sebou. Příklad: ll /proc sort more program sort setřídí výpis podle abecedy, q- ukončení výpisu program more vypíše vše po obrazovkách (raději používejte less umí toho více, např. pohybovat se pomocí...)

Příklad: ll /proc less cat /etc/bash.bashrc less Příklad: who grep root wc -l greep okopíruje ze vstupu pouze řádky s výrazem root wc l spočítá počet řádků výraz tedy vrátí číslo, odpovídající tomu, kolikrát je uživatel v systému přihlášen Jak je vidět, příkazy v Unixu jsou psány jako filtry s filozofií: je lepší, když program dělá jednu věc, ale dělá jí dobře. Přehled často používaných příkazů cat [options] file cd [directory] příkaz a syntaxe chmod [options] file cmp [options] file1 file2 compress [options] file Popis vypiš soubor, při zadání více souborů sluč soubory (concatenate) a výsledek vypiš změň pracovní adresář nastav přístupová práva souboru porovnej soubory komprimuj soubor, výsledek ulož jako soubor file.z cp [options] file1 file2 ulož kopii souboru file1 pod jménem file2; pokud soubor file2 existuje, je přepsán cut [options] file vyjmi specifikované znaky/znaková pole z jednotlivých řádků souboru dd [options] univerzální kopírovací program; umožňuje např. okopírování diskety do souboru a obráceně, uložení či přepsání libovolné části disku, okopírování disku na jiný disk nebo magnetickou pásku,...; podrobnosti viz manuálová stránka diff [options] file1 file2 porovnej soubory file1 a file2 a ohlas rozdíly; výsledek porovnání lze uložit jako soubor, který pak může být použít k automatické opravě starší verze dokumentu du [options] directory nebo file vypiš přehled využití diskového prostoru (soubory, uživateli...) ed nebo ex [options] file jednoduché řádkové editory (někdy se používají ve skriptech) find [options] program pro vyhledávání souborů podle různých kriterií a provedení zvolené akce v případě, že je soubor nalezen; podrobnosti viz manuálová stránka ftp [options] host přenos souborů mezi počítači grep [options] 'search string' file prohledej soubor (soubory) a vypiš řádky, obsahující hledaný řetězec (nebo jen vypiš informace o výskytu...)

lpr nebo lp [options] file vytiskni obsah souboru na tiskárně ls [options] directory nebo file výpis obsahu adresáře (informace o uložených souborech) mail nebo mailx nebo Mail odešli elektronický dopis uživateli user (klient služby e- [options] user mail); text zprávy lze obvykle ukončit tečkou (.) na novém řádku. Bez argumentu user zobrazí informace o nově došlé poště. man [options] cmd vypiš manuálovou stránku příkazu cmd mkdir [options] file vytvoř adresář direktory more nebo less file mv [options] file1 file2 passwd [options] paste [options] file ps [options] pwd rm [options] file rmdir [options] file script file sed [options] file sort [options] file source nebo. file tar key [options] file telnet [host[port]] touch [options] [date] file uncompress file.z uudecode [file] uuencode [file] newname wc [options] vypiš obsah souboru po částech přejmenuj soubor file1 na file2; soubor file2 nesmí existovat. Pokud existuje a je to adresář, přesuň soubor file1 do adresáře file2 nastav nebo změň heslo vlož pole znaků do souboru vypiš informace o aktivních procesech vypiš, jaký je nastaven aktuální pracovní adresář zruš (smaž) soubor nebo adresář; volba -r umožňuje mazání celého stromu zruš (smaž) adresář vše, co se bude vypisovat na obrazovce, ukládej do souboru, dokud nepřijde příkaz exit proudový (stream) editor, umožňující edici textových souborů pomocí příkazů zapsaných v poli options nebo uložených v jiném souboru setřiď řádky souboru podle pravidel, zadaných volbou čti příkazy ze souboru file a prováděj je v aktivním shellu. univerzální archivační program; podrobnosti viz manuálová stránka přihlášení uživatele ke vzdálenému počítači uprav čas poslední modifikace souboru file; pokud soubor file neexistuje, vytvoř nový soubor dekomprimuj obsah souboru file.z a výsledek ulož do souboru file dekóduj soubor zakódovaný příkazem uuencode zakóduj binární soubor jako textový soubor (7-bitové ASCII znaky); používá se při přenosu binárních souborů mailem vypiš informaci o počtu znaků, slov a řádků textu v souboru file

which cmd who nebo w zcat file.z vypiš úplnou cestu na příkaz cmd (tj. kde je příkaz uložen jako soubor) vypiš informace o uživatelích přihlášených do systému vypiš obsah souboru komprimovaného příkazem compress Ekvivalence s příkazy DOS

Další časté akce Kopírování souboru: cp /odkud/jmeno_souboru /kam Smazání souboru: rm /odkud/jmeno_souboru /kam Vypsání obsazení disků df h Vypsání velikosti adresáře du ha adresar Komprese souboru compress a Dekomprese souboru uncompress a Práce s kompresí TAR tar [parametr] [soubor] c vytvoření archívu x rozbalení archívu t výpis obsahu archívu tar má jednu zvláštnost: parametry se zadávají bez znaménka Komprese: tar c a.tar Dekomprese: tar x a.tar Zjištění typu souboru (ASCII, bin, special ) file a Hledání souboru na disku (např. všechny txt soubory na disku - v adresáři /) find / name *txt Zjištění volné paměti free Řízení úloh (Job Control) V sh i csh můžete spustit úlohu na pozadí (background) připojením znaku & za příkaz. Jestliže např. napíšete příkaz sleep 12 bez znaku & na konci, objeví se prompt znovu až za 12 sekund a do té doby nemůžete zadat další příkaz. Pokud však napíšete sleep 12 &, se spustí se příkaz sleep na pozadí, prompt se objeví okamžitě a můžete zadávat ihned další příkazy. Příklad: sleep 12 sleep 12 & V csh lze přesunout na pozadí i právě rozpracovanou úlohu tak: že se úloha nejprve pozastaví stiskem ^Z (CTRL+Z) a pak se příkazem bg spustí na pozadí. Zpět do popředí (foreground) může být kterákoliv úloha běžící na pozadí přesunuta příkazem fg %n, kde kde n je číslo úlohy. Čísla všech úloh běžících na pozadí lze vypsat příkazem jobs.

Příklad: 1. sleep 120 byl spuštěn proces na popředí 2. CTRL+Z došlo k stopnutí procesu 3. bg 1 proces 1 pokračuje na pozadí 4. jobs vypíše všechny procesy běžící na pozadí 5. fg 1 proces 1 byl přenesen do popředí Skládání příkazů Příkazy je možné skládat pomocí složených závorek {}. Je tak možné vynutit si společné provedení více příkazů. Zkuste: sleep 10; echo Budicek! sleep 10; echo Budicek! & sleep 10 &; echo Budicek! {sleep 10; echo Budicek!;} & Časové plánování úloh Úlohy mohou v systému běžet zcela nezávisle na shellu. K jednorázovému spuštění úlohy ve stanoveném čase se plánuje příkazem at, zatímco periodické spouštění úloh ve stanoveném cyklu se plánuje pomocí příkazu crontab. Protože při časově plánovaném spuštění úlohy nemusí být uživatel přihlášen do systému, nelze standardní výstup odeslat na terminál uživatele. Proto se zpravidla textový výstup úloh zasílá uživateli elektronickou poštou (mailem). Při jednorázovém plánování je nutné specifikovat úlohu (obvykle jménem příkazového souboru) a čas spuštění. Formát časové specifikace je velmi pružný -lze zadat absolutní čas, relativní čas vztahující se k okamžiku spuštění a pod. Příklad: Vytvořte textový soubor atjob s tímto obsahem (např. pomocí mc): echo uloha spustena v case `date` sleep 12s echo uloha ukoncena v case `date` ( ` = znak pod ESC) Změňte jej na spustitelný: Chmod 755 atjob a naplánujte jeho spuštění za 1 minutu příkazem: at -f atjob now + 1 minutes 3 3 Pokud služba ATD neběží, je nutné jí spustit: /etc/init.d/atd start

Specifikace času může vypadat také např. takto: at -f atjob 9:45 Dec 9 at -f atjob 3 am Saturday at -f atjob noon next day Periodické spouštění úloh umožňuje démon cron, který se při své činnosti řídí obsahem tabulek crontab. Démon prohlédne každou minutu tabulky všech uživatelů a spustí úlohy, u kterých je splněna podmínka spuštění. Čas a periodu spouštění určuje obsah prvních 5 sloupců: Minuta (minuty) v hodině hodina (hodiny) ve dni den (dny) v měsíci měsíc (měsíce) v roce 0 až 59 0 až 23 1 až 31 1 až 12 den (dny) v týdnu 0 až 7 (0 i 7 = neděle) V každém sloupci může být jedna hodnota (číslo), seznam hodnot (čísla oddělená čárkami), interval hodnot (dolní mez horní mez), kombinace uvedených výrazů nebo hvězdička. Hvězdička znamená každý, tj. je ekvivalentní intervalu min max (hodnoty min a max viz druhý řádek tabulky). Např. položka tabulky: 20,25 15 * * 5 echo Je patek, koukej nechat prace a padej způsobí, že cron provede příkaz uvedený za časovou specifikací (echo) každý pátek v 15:20 a 15:25. Text, odesílaný příkazem echo normálně na terminál, je ovšem místo toho odeslán mailem uživateli, takže uživatel každý pátek dostane mailem zprávu Je pátek, koukej nechat práce a padej. Každý uživatel má svoji tabulku crontab, ve které může specifikovat vlastní periodicky spouštěné úlohy (pokud to nemá zakázáno správcem systému). Vypsat aktuální obsah tabulky lze příkazem crontab l, modifikovat tabulku příkazem crontab e a vymazat tabulku příkazem crontab r. Podrobný popis syntaxe příkazů a příklady na jejich použití najdete v manuálových stránkách a v řadě dokumentů na Internetu. Textové editory Pokud je v systému přítomen Midnight Commander máme situaci velmi ulehčenu. Pokud tomu tak není, musíme použít odlišný editor: Editor vi Editor vi má příšerné ovládání, ale jeho výhodou je, že je prakticky v každé distribuci linuxu a má celkem velké možnosti. Spuštění editoru: vi spustí editor vi soubor otevři soubor (neexistuje-li, vytvoř ho) Po spuštění přejde editor do příkazového režimu. Znaky psané na klávesnici v tomto režimu se interpretují jako příkazy.

Stisknutí a nebi i vyvolají přechod do vkládacího režimu, kdy se znaky psané na klávesnici interpretují jako text a vkládají se do souboru. Zpět do příkazového režimu se editor vrátí po zadání znaku ESC následovaném dvojtečkou (:) 4 Příkazem w jméno_souboru dojde k uložení souboru pod určitým jménem Příkazem w dojde k uložení souboru Příkazem w! dojde k uložení souboru se zakázaným zápisem (někdy velmi důležité) Příkazem q dojde k ukončení práce s editorem (q! čtěte nápovědu editoru) Mezi oběma režimy lze plynule přecházet pomocí kláves (ESC + : ) a klávesou a. Příklad: zkuste napsat jednoduchý text do souboru /home/a.txt Další možnost vytvoření jednoduchého souboru je příkaz echo: echo TENTO TEXT SE ZAPIŠE DO SOUBORU > a.txt Aliasy tzv. ALIASY usnadňují používání některých často používaných příkazů výpis všech v systému již nadefinovaných aliasů: alias všiměte si: na většině systémů je předefinován příkaz ls na jiný l, ll přidání vlastního aliasu např. program df ukazuje obsazení disku, s parametrem h jej ukazuje ve smysluplných jednotkách: alias d= df h nyní zadejte df a d a porovnejte Kalkulátor bc Sem tam je třeba něco jednoduchého spočítat, něco převést. Téměř v každé distribuci je jednoduchý kalkulátor bc. Zkuste: bc 10*20 vypočítá součin dvou čísel převod mezi soustavami 4 Dvojtečkou se přejde do řádkového režimu, ve kterém je editor vi kompatibilní se starším typem editoru (řádkovým editorem ex). Do řádkového režimu přejde editor také po znacích lomítko (/) a otazník (?), ale v tomto případě se nejedná o příkazy editoru ex, ale speciální (vyhledávací) příkazy editoru vi.

ibase=10 základ soustavy vstupujícího čísla obase=2 základ soustavy výsledku 34 převede 34 d bin. vypněte pípání klávesnice: setterm blength 0