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 1 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 2 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,... 3 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: 4 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 5 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 6 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" 7 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 8 edituje, zobrazuje soubory, ... 9 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 10 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. 11 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----- 12 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 13 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 /\