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 Datum
Martin Šimůnek 6. 1. 2013
Stupeň a typ vzdělávání Odvětví / Vzdělávací oblast Vzdělávací obor Tematická oblast Druh učebního materiálu Cílová skupina Anotace a popis způsobu použití ve výuce
Střední odborné vzdělávání ‐‐ dle RVP.cz ‐‐ ‐‐ Obchodní akademie / Informační technologie ‐‐ GNU/Linux a příkazový řádek Výukový materiál Žák, 15 – 19 let 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ň: …
Vybavení, pomůcky Klíčová slova
‐
Čí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
ÚVOD V minulém DUM jsme si vysvětlili princip práce procesů se vstupem v GNU/Linuxu a Unixu. 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
‐ • 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
vstup.txt
head
vystup.txt
DALŠÍ PŘÍKLADY FILTRŮ head • Vypisuje pouze řádky ze začátku souboru.
tail • Vypisuje pouze řádky z konce souboru.
tar • spojení více souborů do jednoho (používá se při kompresi)
gzip • komprimuje vstupní data
less • umožňuje „listovat“ dlouhým vstupem
cut • 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/command‐ prompt.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í
KLÍČ ŘEŠENÍ: ÚKOL 1 Seřazený obsah složky: • ls | sort ‐r
Prvních pár řádků souboru: • head –n 3 /etc/group.
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