340 likes | 455 Views
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
E N D
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
/- 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 lsobdoba „dir“ z MS DOS • Ls –l detailní výpis • Ls –a výpis včetně skrytých souborů Příklad: -rw-r—r— soubor.txtgroup 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: chmodparametry 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: Chmoda+r soubor
Změna vlastníka souboru • Příkaz: chown • chownuž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 • whereispří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 Mkdirvytvořeníadresáře Rmdirzrušení prázdného adresáře
Prácese 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_filenew_filevytvoření linku • find hledání souboru • scpbezpečné kopírování souborů mezi adresáři.
Práce se soubory • headfile– vypíše prvních 10 řádků ze souboru • more file • tailfile– 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 Přepínače: -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 souboru2. sloupec - řádek je ve druhém souboru, není v prvním 3. sloupce - řádek je v obou souborech