Operační systém UNIX Soubory a adresářová struktura Roman Danel VŠB TU Ostrava Institut ekonomiky a systémů řízení
Literatura Petrlík, L.: Jemný úvod do systému UNIX. Kopp Shah, S. – Soyinka, W.: Administrace systému Linux. Grada 2007
Obsah Adresářová struktura Soubory Příkaz ls Adresáře v Unixu Příkazy pro manipulaci se soubory
Obyčejný soubor – posloupnost bytů / - root, kořen Obyčejný soubor – posloupnost bytů Adresář – vazba mezi jménem souboru a souborem. Adresář obsahuje minimálně dva speciální soubory: adresář samotný rodičovský adresář
Určení souboru Absolutně od kořene Relativně k pracovnímu adresáři
Druhy souborů Obyčejný Adresář Speciální
Minimální adresářová struktura bin adresář s příkazy systému dev speciální soubory zařízení (device) etc systémové programy a data tmp usr další adresáře systému /usr/bin /usr/include hlavičky pro progr.jazyk C /usr/lib /usr/local zde je programové vybavení
Další adresáře Home domovské adresáře uživatelů Lib sdílené knihovny Mnt rezervovaný adresář pro připojení svazků (mount) Var soubory, které za běhu systému mění svou velikost
Výpis obsahu adresáře Příkaz ls obdoba „dir“ z MS DOS Ls –l detailní výpis Ls –a výpis včetně skrytých souborů Příklad: -rw-r—r— soubor.txt group 37 První znak – typ souboru: d adresář - obyčejný soubor l symbolický odkaz (link, obdoba „Zástupce“) s sockety p roury (pipe) b,c blokový/znakový speciální soubor
Metaznaky Metaznaky - *, ?, ! (negace), - (rozsah od do) \ - shell nepovažuje následující znak za speciální Příklad: ls -l /bin/l*
Cvičení Jaký je rozdíl mezi následujícími příkazy? # ls /etc # ls /etc/* # ls /etc/\*
Výpis souborů - ls Dalších 9 znaků – přístupová práva pro tři skupiny uživatelů: Vlastník souborů Skupina uživatelů Ostatní V každé trojici: r jen pro čtení w lze zapisovat x soubor je spustitelný - přístupové právo je odepřeno
Soubory Soubory dle typu: Spustitelný soubor Binární Soubor s příkazy shellu Každý binární soubor má hlavičku, podle kterého ho systém rozpozná. UNIX nepoužívá přípony Příkaz file – přečte prvních 512 B a uhodne typ souboru
Adresáře - práva r lze vypsat příkazem ls (musí být nastaven také „x“) w soubory v adresáři mohou být vytvářeny nebo rušeny x adresář může být prohledáván a lze nastavit jako pracovní
Změna přístupových práv Příkaz: chmod parametry soubor třídy uživatelů: u(user), g(group), o(other), a(all) třídy přístupových práv: r, w, x + přidej - odeber Příklad: Chmod a+r soubor
Změna vlastníka souboru Příkaz: chown chown uživatel soubor[y]uživatel soubor[y] Může provést pouze vlastník souboru nebo root Poznámka: Příkaz: groups – výpis, které skupiny jsou uživateli přiřazeny
Speciální soubory Odpovídají fyzickým zařízením – disky, mechaniky, terminály, tiskárny Umístěny v adresáři /dev Dvou typů: blokové, znakové /dev/console systémová konzole /dev/tty aktuální (právě používaný) terminál
Nápověda Příkaz: man ukončení: q whereis příkaz
Příkaz echo Příkazem echo se vypíše text nebo proměnná na standardní výstup Jaká je funkce následujících příkazů? # echo $HOME # echo "$HOME" # echo '$HOME' # echo "\$HOME"
Pohyb v adresářové struktuře Ls výpis obsahu (=“dir“) Pwd zjištění, kde jsem Cd [cesta] změna pracovního adresáře
Práce s adresáři Mkdir vytvoření adresáře Rmdir zrušení prázdného adresáře
Práce se soubory cat [-n] spojování a výpis souborů split soubor rozdělení souboru cp [zdroj] [cíl] kopírování souboru mv [zdroj] [cíl] přesun souboru rm [soubor] výmaz souboru ln originál_file new_file vytvoření linku find hledání souboru scp bezpečné kopírování souborů mezi adresáři.
Práce se soubory head file – vypíše prvních 10 řádků ze souboru more file tail file – vypíše posledních 10 řádků souboru tail -20 file – posledních 20 řádků
Split split [-počet řádků] [soubor] název Rozdělí soubor na několik souborů (název) podle zadaného počtu řádků (implicitně 1000)
Přesměrování příkaz >soubor příkaz <soubor příkaz >>soubor Pipe (roura): příkaz | příkaz | ... Tj. výstup z jednoho příkazu je vstupem pro druhý
Filtry tee – kopíruje standardní vstup na výstup a současně i do souboru sort – setřídění standardního vstupu (souboru) uniq – vyhází duplicitní řádky wc - počet řádků/slov/sloupců wc [-lwc] [soubor] tr – nahrazuje znaky v řetězci
Filtr uniq uniq [parametry] [soubor] Parametry: číslo přeskočí se zadaný počet sloupců od začátku, -u budou se vypisovat pouze řádky, které nejsou duplicitní, -d budou se vypisovat pouze řádky, které jsou duplicitní, -c na začátku každého řádku se vypíše počet výskytů.
Filtr tr tr [-cds] stare-znaky nove-znaky d - znaky specifikované v prvním řetězci se zruší, c - první řetězec označuje znaky, které se nemají nahrazovat, s - pokud je více stejných nových znaků za sebou, vypíše se pouze jeden,
Otázky Kolik je založeno uživatelů na počítači? (= kolik je řádků v souboru /etc/passwd)
Grep grep [přepínače] řetězec soubor vyhledání řetězců v souborech -c vypíše počet řádků, ve kterých byl nalezen vzor, -i ignoruje rozdíly mezi malými a velkými písmeny, -l zobrazuje pouze jména souborů, ve kterých byl nalezen vzor, -n zobrazí čísla řádků obsahujících vzor, -s je potlačen standardní výstup, grep vrací pouze návratovou hodnotu (používá se při psaní příkazových procedur), -v vypíše řádky neobsahující vzor
Grep Při hledání řetězce lze využít regulérní výrazy: ^ začátek řádku, $ konec řádku, . libovolný znak, * libovolný počet opakování předchozího znaku, [] právě jeden znak z množiny znaků uvedených v těchto závorkách, při specifikaci lze použít následující dva speciální znaky: - používá se pro označení intervalu znaků z množiny ASCII (načtení intervalu znaků z množiny ASCII (např. a-z, 0-9), ^ negace výčtu znaků \ potlačení speciálního významu následujícího znaku
Příklady regulérních výrazů ^p řádky začínající písmenem p ^$ prázdné řádky ^.$ řádky obsahující právě jeden znak ^[a-z]*$ řádky obsahující pouze malá písmena \.[0-9] výraz označuje tečku následovanou číslicí
Porovnání souborů cmp -porovnání dva soubory po bytech cmp [-s] soubor1 soubor2 diff – porovnává změny diff [-b] soubor1 soubor2 comm – které řádky ve dvou souborech jsou stejné comm [-123] soubor1 soubor2 1. sloupec - řádek je v prvním souboru, není ve druhém souboru 2. sloupec - řádek je ve druhém souboru, není v prvním 3. sloupce - řádek je v obou souborech