WWW zdroje o UNIXu Unix – návody, příkazy UNIX --- přednášky na FI http://www.fi.muni.cz/usr/brandejs/unix/ UNIX --- materiály ke cvičení na VŠE http://nms.vse.cz/unix/unix.html Linux --- dokumentační projekt, kniha od CPressu http://www.cpress.cz/knihy/linux Neziskový server na podporu UNIXu http://www.penguin.cz/ Root.cz – recenze, diskuse o různých distribucích http://www.root.cz/ Proč používat Linux http://proc.linux.cz/ Linux software http://www.linuxsoft.cz/ Zpravodaj UVT - návody, příklady, co nového na UVT http://www.ics.muni.cz/zpravodaj/ Wikipedie o UNIXu: http://cs.wikipedia.org/wiki/UNIX UNIX Základní práce s terminálem --- přihlášení: login: uživatel zadá své uživatelské jméno, které mu bylo přiděleno password: uživatel zadá své heslo, které je povinen udržet v tajnosti. 6- 8 znaků, netriviální, obsahuje ne-alfanumerické znaky ($, @, #, &, !, ?,. ,...). Odhlášení: exit ↵ Uživatel je povinen řídit se Pravidly Domovský adresář HOME... po přihlášení se nastaví jako pracovní adresář Př.: cp  /home/evaf/pravidla  /home/login ↵ … zkopírování pravidel do domovského adresáře more  pravidla ↵ ... prohlížení souboru po stránkách V domovském adresáři jsou systémové soubory: .profile ... spouští se při nalogování, nastavuje proměnné, shell, terminál, vykoná uživatelské aliasy,... Jednoznačná identifikace uživatele v systému … uživatelské číslo UID (user ID). Každý živatel je členem minimálně jedné skupiny ... GID (group ID). UID a GID se vypíšou příkazem $ id Uživatel chrání svá data i sebe pomocí přístupových práv (čtení/kopírování, zápis/modifikace, provedení) Speciální uživatel – root – jediný uživatel, kterému se přístupová práva nekontrolují = systémový administrátor Obecný tvar UNIXovského příkazu jméno_příkazu  -volby  jméno souboru(event. souborů) ↵ Spojování příkazů: příkaz1 && příkaz2 ↵ ... příkaz2 se provede jen tehdy, když příkaz1 skončí úspěšně příkaz1 || příkaz2 ↵ ... příkaz2 se provede jen tehdy, když příkaz1 skončí neúspěšně příkaz & ↵ ... spuštění příkazu na pozadí příkaz < vstupní soubor > výstupní soubor 2> výstupní soubor pro chybová hlášení ↵ … přesměrování vstupu, výstupu, chybových hlášení příkaz 1 | příkaz2 ↵ ... | = trubka = roura = zařízení, které posílá výstup z 1.příkazu na vstup 2.příkazu. Zástupné znaky ve jménech souborů (maska, filtr): * … zastupuje libovolný počet znaků, včetně prázdného (mezera) ? … zastupuje právě jeden znak [] … shoduje se s kterýmkoliv (jedním) znakem v závorce []* … shoduje se s nula nebo více znaky,které jsou v závorce Př.: ls  example? ↵ … vypíše soubory example1, example2, exampleA, … ls  ex* ↵ … vypíše soubory exot, example.doc, exitus, exAM,... rm  example.[0-9] ↵ … smaže soubory example.0, example.1, example.2, …, example.9 ls  [aA]* ↵ … vypíše soubory A, a, animal, axes, Azurit,... Vybrané příkazy UNIXu passwd ↵ ... změna uživatelského hesla date ↵ ... datum a čas Př.: date  +"%m" ↵ ... formát výstupu [%n --- nový řádek, %y --- year, %d --- day, %h --- hour] date  +"Dnes je: %nden: %d %nmesic: %m %nrok: %y" ↵ Př.: date > datum1 ↵ ... přesměrování výstupu příkazu date do souboru datum1 date >> datum1 ↵ ... připojení výstupu příkazu date k již existujícímu souboru datum1 date > datum2 ↵ cat  datum? > data ↵ ... spojení souborů datum1 a datum2 do souboru data time ... měří délku procesu Př.: time  date ↵ ... změří délku vykonávání příkazu date echo ... "ozvěna" --- opakuje to, co se zadá jako argument, užitečné k výpisu proměnných. Př.: echo  HOME ↵ ... počítač odpoví HOME echo  $HOME ↵ ... počítač odpoví tím, �že vypíše obsah proměnné HOME /home/login --- jméno domovského adresáře Nápověda: man příkaz ... manuál ke každému příkazu Př.: man man ↵ … manuál k příkazu man. Aneb UNIX v kostce apropos řetězec ... které příkazy obsahují řetězec whatis příkaz ... 1 řádková nápověda Práce se soubory a adresáři: ls  volby  soubory/adresáře ... výpis souborů nebo adresářů, asi 30 voleb, lze použít zástupné (expanzní) znaky ve jménech souborů (*, ?, [],...) Př.: ls qq* ↵ ... vylistuje všechny soubory, jejichž jmého začíná na qq ls text?.txt ↵ ... vylistuje všechny soubory, které mají na místě ? jakýkoliv 1 znak ls -a ↵ ... výpis všech souborů včetně tzv. skrytých, tj. jejich jména začínají tečkou "." ls -F ↵ ... výpis všech souborů, adresáře jsou označeny /, spustitelné programy * ls -t ↵ ... výpis všech souborů a seřazení podle času poslední změny Př.: ls -l ↵ ... tzv. dlouhý výpis souborů a adresářů Vypíše se: drwxr-xr-x 5 evaf group 512 Nov 8 1994 amber -rw-r--r-- 1 evaf group 851 Feb 4 10:00 backup drwxr-xr-x 2 evaf group 512 Sep 6 1995 bin r,w,x ... přístupová práva ls -l > vypis ↵ ... výpis adresáře se uloží do souboru vypis ls -l | more ↵ ... výpis adresáře po stránkách. cat ... výpis souborů, případně spojování Př.: cat  pravidla … vypíše soubor pravidla. cat  soubor1  soubor2 > soubor3 ↵ ... spojí soubor1 a soubor2 do souboru3 cat soubor1 >> alles ↵ ... připojí soubor1 k souboru alles more soubor ... vypsání obsahu souboru po stránkách mkdir jmeno ... vytvoření adresáře jmeno Př.: mkdir  /home/login/bin ↵ ... vytvoří se adresář bin rmdir jmeno ... smazání prázdného adresáře jmeno pwd ... vypsání pracovního (aktuálního) adresáře. cd  adresář ... přechod do jiného adresáře. Př.: cd ↵ ... návrat do domovského adresáře /home/login cd  /home/evaf/unix ↵ ... skok do jiného adresáře cd  .. ↵ ... přechod do adresáře o úroveň výš cp  vstupni_soubor  vystupni_soubor ↵ ... kopírování souborů Př.: cp  /home/evaf/unix/bb  /home/login ↵ ... zkopírování souboru bb do domovského adresáře cp  /home/evaf/unix/*  unix ↵ ... zkopírování všech (expanzní znak *) souborů z adresáře /home/evaf/unix do uživatelského adresáře unix. mv  vstupní_soubor  výstupní_soubor ↵ ... přejmenování souboru nebo přemístění do jiného adresáře. rm soubor(y) ... smazání souboru(ů), ev. adresářů. ln  zdrojový_soubor  cílový_soubor ↵ ... podobný efekt jako cp, ale nevytvoří se nová položka na disku, pouze vazba (odkaz) na soubor. Př.: ln  /home/evaf/bin/c1  /home/login/bin ↵ ... přilinkování skriptu c1 do adresáře bin. Změny, které provede vlastník (evaf), se projeví i v linku (c1 musí mít přístupová práva 755). wc soubor ... zjištění počtu řádků, slov, znaků v souboru grep "" soubor ... vyhledávání výrazů v souborech. Možnost použití regulárních výrazů pro vyhledávání. Více "man  regexp" (regular expressions). Př.: grep  energy  vysledek_vypoctu.dat ...vyhledá a vypíše všechny řádky obsahující řetězec "energy" grep  "^Energy  = " vysledek_vypoctu.dat … vyhledá a vypíše všechny řádky začínající (^) řetězcem Energy, po němž následuje znak "=" obalený mezerami. grep "EPtot" vysledek_vypoctu.dat > enepotencialni.dat … vyhledání řetězce EPtot v souboru a přesměrování výsledku vyhledávání do souboru enepotencialni.dat Midnight Commander Spuštění: mc ↵ Nahrazuje příkazy: ls, cp, mv, rm, mkdir, rmdir edituje, zobrazuje soubory, … Zjištění, kdo pracuje v systému: who nebo w nebo finger Př.: finger @dior.ics.muni.cz ↵ ... výpis uživatelů právě pracujících na počítači dior Archivování a komprese: tar  ... archivování, sbalení adresáře do jednoho souboru gzip soubor ... komprese souboru, vzniká soubor.gz gunzip soubor ... dekomprese souboru něco.gz Př.: tar cf - adresar | gzip > adresar.tar.gz ↵ df ... zjištění zaplnění disku du ... zjištění, kolik místa na disku zabírá aktuální adresář včetně podadresářů (velikost je udána v blocích) alias definice_příkazu ... zjednodušení často používaných příkazů Př.: alias 'l=ls -l' ↵ ... písmeno l teď zastupuje příkaz ls -l touch novy_soubor … vytvoření nového prázdného souboru Přístupová práva Vypíšou se příkazem ls -l - --- --- --- user group all d rwx rwx rwx 1.znak: - ... obyčejný soubor d ... directory = adresář něco jiného speciální soubor user ... 3 znaky vyjadřující oprávnění vlastníka group ... 3 znaky vyjadřující oprávnění skupiny all ... 3 znaky vyjadřující oprávnění všech uživatelů Symbol Význam Numerická hodnota r soubor je povoleno číst 4 w do souboru je povoleno zapisovat 2 x soubor je povoleno spustit (provést) 1 Př.: -rw-r----- 1 evaf group 851 Feb 4 10:00 backup drwxr-xr-x 2 evaf group 512 Sep 6 1995 bin Soubor backup může číst uživatel evaf a skupina group. uživatel evaf může do souboru i psát. all nemají k souboru žádný přístup. Adresář (d) bin je přístupný všem (uživateli, skupině i ostatním) pro čtení a vstup (provedení příkazu cd). Jen uživatel evaf tam smí vytvářet a rušit soubory. Nastavení přístupových práv chmod  ↵ Př.: chmod  u+x  soubor ↵ ... přidání práva spouštět soubor uživateli. chmod go-r soubor ↵ ... odebrání prava čtení skupině a ostatním. chmod g+r soubor ↵ ... přidání práva čtení skupině Nastavení pomocí numerických hodnot: - součet numerických hodnot práv ve trojicích. Př.: chmod  644  soubor ↵ ... nastavení práv rw-r--r-- chmod 740 soubor ↵ ... nastavení práv rwxr----- Regulární výrazy $ man regexp Regulární výrazy se využívají ve správě souborů (1. typ) nebo v řádkovém modu editoru VI a v příkazu egrep (2. typ – komplexnější – tabulka 2). Odlišnosti obou typů – viz tabulka 1. V regulárním výrazu představují písmena a číslice sebe sama. Několik málo znaků má zvláštní význam. Tabulka 1. Správa souborů (příkazy ls, mv, rm, …). Tzv. zástupné/expanzní znaky. Znak Význam ? shoduje se s právě jedním znakem * shoduje se s 0 nebo více znaky [ ] shoduje se s kterýmkoliv (jedním) znakem v závorce [! ] shoduje se s kterýmkoliv (jedním) znakem, který NENÍ v závorce [ ]* opakování znaků, tj. shoduje se s 0 nebo více znaky, které jsou v závorce Př.: ls example? … vypíše soubory example1, example2, example9, exampleA, ... ls ex* … vypíše soubory exot, example.doc, exitus.tex, exAM, ... rm example.[0-9] … smaže soubory example.0, example.1, example.2,... example.9 ls [aA]* … vypíše soubory A, a, animal, axes, Azurit,... Tabulka 2. Editor VI, příkaz grep Znak Význam . (tečka) shoduje se s právě jedním znakem .* (* = opakování), tj. shoduje se s 0 nebo více znaky [ ] shoduje se s kterýmkoliv (jedním) znakem v závorce [^ ] shoduje se s kterýmkoliv (jedním) znakem, který NENÍ v závorce [ ]* opakování znaků, tj. shoduje se s 0 nebo více znaky, které jsou v závorce pro VI se dále používá \< začátek slova \> konec slova ^ začátek řádku $ konec řádku \( začátek definovaného výrazu \) konec definovaného výrazu Př.: pro VI v řádkovém modu: /sample … hledá slovo sample /^sample … hledá výskyt slova sample na začátku řádku /\