LINUX přesměrování a roury Trocha teorie: Veškerá komunikace uživatelů a jednotlivých procesů v LINUXu probíhá přes vstupně/výstupní (I/O) kanály. STDIN - standardní vstup (klávesnice) STDOUT - standardní výstup (monitor) STDERR - standardní chybový výstup (monitor nebo soubor) Ne vždy je ovšem požadován vstup/výstup na standardní zařízení. Často je možno setkat se s požadavkem výstupu do souboru nebo na tiskárnu místo na monitor, stejně tak je možno přesměrovat vstup dat pro nějaký program třeba ze souboru místo z klávesnice. Přesměrování I/O je možno pomocí operátorů : >,>>, 1> - přesměrování výstupu (přepsání, přidání na konec) 2> - přesměrování chybového výstupu &> - přesměrování výstupu a chybového výstupu na jedno místo < - přesměrování vstupu Přesměrování standardního výstupu: Standardní výstup je nejčastěji přesměrováván buď do souboru (to co se má objevit na monitoru je uloženo v souboru) nebo na jiné koncové zařízení : Použití : příkaz > cíl $ ls -l /tmp > vypis.txt [Enter] //výpis obsahu adresáře je uložen v souboru vypis.txt (je přepsán) $ ls -l /tmp >> vypis.txt [Enter] //výpis obsahu adresáře je uložen na konec souboru vypis.txt $ cat vypis.txt [Enter] //můžete se přesvědčit $ fsck > /dev/null [Enter] //spuštění programu fsck, přičemž jeho výstup na monitor je přesměrován do /dev/null ( černá díra ) Přesměrování standardního vstupu: Standardní vstup je nejčastěji přesměrováván na program/proces, který data následně použije místo vstupu z klávesnice : $ mysql < prikazy.sql [Enter] //zašle serii příkazů uložených v prikazy.sql DB serveru MySQL
LINUX - přesměrování a roury Roura: Někdy je nutno výstup jednoho procesu použít jako vstup pro proces následující. K tomuto účelu slouží roury. Operátor pro rouru je Použití : proces1 proces2 [ proces3...] $ ps aux [Enter] //výpis běžících procesů $ ps aux grep root [Enter] //výpis běžících procesů, které vlastní uživatel root $ ps aux grep root head -3 [Enter] //výpis 3. prvních běžících procesů, které vlastní uživatel root POZOR : Nepleťte si přesměrování a rouru! Přesměrování je vždy chápáno jako uložení do nebo načtení z. Oproti tomu u roury platí, že výstup z jednoho procesu je chápán jako vstup do procesu dalšího. $ ps aux more [Enter] //stránkovaný výpis běžících procesů $ ps aux > more [Enter] //uložení výpisu běžících procesů do souboru more
LINUX užitečné příkazy a programy cat jako editor : Občas se dostaneme do situace, kdy chceme vytvořit nový soubor a zároveň do něj vložit nějaký obsah. Jednou z cest je použít příkaz cat jako primitivní editor. Příkazem cat > cilovy_soubor se shell přepne do interaktivního režimu, kdy je možno vkládat text, který se stane obsahem souboru cilovy_soubor. Ukončení vkládání dat a jejich uložení do souboru se provádí stisknutím Ctrl-D. Použití : cat > cílovy_soubor $ cat > jmena.txt [Enter] //budu vkládat seznam jmen do souboru jmena.txt Pepa Janacek Franta Jezek Saddam Husajn Jiri Paroubek Ctrl D //režim vkládání skončí a data jsou zapsána do souboru $ cat jmena.txt [Enter] //můžeme se přesvědčit... Další informace viz manuálová stránka příkazu (man cat);
LINUX - užitečné příkazy a programy less: Vypsat obsah souboru delšího, než se vejde na monitor, je lepší pomocí příkazu less. Název je slovní hříčkou vzhledem k more (viz níže) a jeho použití je mnohem příjemnější: Použití : less [přepínače] soubor $ less /etc/services [Enter] //pohodlný výpis souboru services z adresáře /etc Nejužitečnější klávesové zkratky : - Ctrl-Q ukončení prohlížení - šípky pohybování v textu nahoru / dolů - PgUp, PgDn stránkování výpisu - / retezec vyhledání textu retezec - n,p zobrazení dalšího /předešlého výskytu hledaného textu Další informace viz manuálová stránka příkazu (man less). more: Vypíše obsah souboru na monitor po jednotlivých stránkách. V tomto výpisu je možno pohybovat se (listovat) pouze směrem dopředu. More je tzv. filtr a používá se často ve spojení s rourou: Použití : more [přepínače] soubor $ more /etc/services [Enter] // výpis souboru services z adresáře /etc Nejužitečnější klávesové zkratky : - Ctrl-Q ukončení prohlížení - Enter pohybování v textu dolů po řádcích - mezera stránkování výpisu dolů Další informace viz manuálová stránka příkazu (man more).
LINUX - užitečné příkazy a programy tail : Vypsat několik posledních řádek (standardně 10 )souboru : Použití : tail [přepínače] soubor $ tail /etc/services [Enter] //výpis posledních 10 řádek souboru services z adresáře /etc $ tail -20 /etc/services [Enter] //býpis posledních 20 řádek souboru services z adresáře /etc Nejužitečnější přepínače : - n kde n je číslo udávající počet vypsaných řádek - f výpis není ukončen, ale zastaví se a čeká, zda-li přibudou řádky nové a poté je vypíše (logy) Další informace viz manuálová stránka příkazu (man tail). head : Vypsat několik prvních řádek (standardně 10 )souboru : Použití : head [přepínače] soubor $ head /etc/services [Enter] //výpis prvních 10 řádek souboru services z adresáře /etc $ head -20 /etc/services [Enter] //býpis prvních 20 řádek souboru services z adresáře /etc Nejužitečnější přepínače : - n kde n je číslo udávající počet vypsaných řádek Další informace viz manuálová stránka příkazu (man head).