FILTRY V GNU/LINUXU Název školy Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště Název DUMu Filtry v GNU/Linuxu Autor Martin Šimůnek Datum 6. 1. 2013 Stupeň atypvzdělávání Střední odborné vzdělávání Odvětví / Vzdělávací oblast dle RVP.cz Vzdělávací obor Obchodní akademie / Informační technologie Tematická oblast GNU/Linux a příkazový řádek Druh učebního materiálu Výukový materiál Cílová skupina Žák, 15 19 let Anotace a popis způsobu použití ve výuce Vybavení, pomůcky Klíčová slova Výukový materiál určen k frontální prezentaci učitelem, případně jako materiál pro samostudium, nutno doplnit výkladem, náplň: Číslo projektu Název šablony CZ.1.07/1.5.00/34.0534 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT ZLÍNSKÝ KRAJ
V minulém DUM jsme si vysvětlili princip práce procesů se vstupem v GNU/Linuxu a Unixu. ÚVOD V tomto materiálu uvedeme pojem filtr a prozkoumáme, jaké filtry máme k dispozici.
FILTR Proces označujeme jako filtr, když: čte (nejlépe textová) data ze vstupu zpracovává data (nejlépe textové) výsledky posílá na výstup Typické procesy v Unixu se chovají jako filtry. Způsob práce filtrů přebírají příkazy dalších operačních systémů. Příkazy v GNU Linuxu, Windows, BSD či Mac OS X se tedy také většinou chovají více či méně jako filtry.
PŘÍKLAD FILTRU: CAT Filtr cat: Čte data ze standardního vstupu. Opisuje načtená data (nezměněná) na standardní výstup. K čemu tedy takový filtr je Vstup můžeme přesměrovat tak, že filtr čte data ze souboru. V případě filtru cat (a mnoha dalších) stačí připojit jako parametr název souboru: $ cat a.txt
PŘÍKLAD FILTRU: SORT Filtr sort: Čte řádky ze standardního vstupu. Seřadí je podle abecedy. Vypíše seřazené řádky na standardní výstup. Použití Vstup lze zadávat z klávesnice (ale to není moc užitečné): $ sort První řádek Druhý řádek <Ctrl> <D> Vstup můžeme přesměrovat tak, že filtr čte data ze souboru: $ sort a.txt Vypíše obsah souboru a.txt (řádky) seřazené podle abecedy.
PROČ SE FILTRY JMENUJÍ FILTRY Nejspíš podle filtru grep: Filtr grep dostane jako parametr text (obecně regulární výraz). Filtr čte řádky standardního vstupu. Opisuje na standardní výstup ty řádky, které obsahují slovo zadané jako parametr. Příklad filtru grep: $ grep slovo a.txt Vypíše ze souboru a.txt pouze řádky, obsahují text slovo.
KOMBINACE VÍCE FILTRŮ: ROURA Činnost filtrů lze provázat operátorem (roura, pipe): Spustí se nejprve filtr vpravo od operátoru Na jeho vstup se připojí výstup programu vlevo od operátoru, ten se spustí jako druhý. Filtr vpravo zpracovává data vygenerovaná programem vlevo. Příklady: $ grep slovo a.txt sort Vypíše ze souboru a.txt pouze řádky, obsahují text slovo, řádky budou seřazené podle abecedy. $ ls sort r Vypíše obsah aktuálního adresáře seřazeného abecedně pozpátku.
POJEM KOLONA Pojem kolona Propojení více filtrů pomocí operátoru se nazývá kolona. Filtry vpravo čekají na výstup programů vlevo, aby jej zpracovaly.
PŘÍKLAD KOLONY PŘÍKAZŮ Příklad spolupráce procesů sort vstup.txt head >> vystup.txt sort head vstup.txt vystup.txt
DALŠÍ PŘÍKLADY FILTRŮ head tail tar gzip less cut Vypisuje pouze řádky ze začátku souboru. Vypisuje pouze řádky z konce souboru. spojení více souborů do jednoho (používá se při kompresi) komprimuje vstupní data umožňuje listovat dlouhým vstupem vybírá sloupečky tabulky (viz dokumentace)
ÚKOL 1: ZAPIŠTE KOLONU PŘÍKAZŮ Seřazený obsah složky: Vypište obsah aktuální složky seřazený podle abecedy sestupně. Prvních pár řádků souboru: Vypište první 3 řádky souboru /etc/group. Vypište údaje o svém uživatelském účtu Najdete je v souboru /etc/passwd na řádku začínajícím vaším uživatelským jménem. Vypište uživatelská jména v systému: Vypište seznam uživatelských účtů v systému (použijte cut pro výběr jen uživatelského jména ze souboru /etc/passwd). Vypište pouze prvních 5 jmen (bráno v abecedním pořadí).
POUŽITÉ ZDROJE 1) MACH, Petr. ÚSL úvod do systému Linux. MACH, Petr. Wraithovy stránky [online]. 2003, 2004 03 12 [cit. 2012 10 29]. Dostupné z: http://usl.wraith.cz/usl.html 2) FISHER, Tim. Command Prompt: What It Is and How To Use It. About.com [online]. c2012, c2012 [cit. 2012 10 29]. Dostupné z: http://pcsupport.about.com/od/termsc/p/commandprompt.htm 3) http://www.abclinuxu.cz/ucebnice/zaklady/prikazova radka/standardni vstup a vystup 4) ŠIMŮNEK, Martin. Vstup a výstup procesů, přesměrování. e MiŠ.cz [online]. c2010, c2012 [cit. 2012 11 26]. Dostupné z: http://mis.e mis.cz/index.php/vstup a výstup procesů, přesměrování
Seřazený obsah složky: ls sort r Prvních pár řádků souboru: head n 3 /etc/group. KLÍČ ŘEŠENÍ: ÚKOL 1 Vypište údaje o svém uživatelském účtu cat /etc/passwd grep ^$USER: Vypište uživatelská jména v systému: cut d : f 1 /etc/passwd cut d : f 1 /etc/passwd sort head n 5