Vstup a výstup procesů, přesměrování

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Oprava vzhledu)
(Varianty přesměrování: Podrobné vysvětlení významu operátorů)
Řádka 29: Řádka 29:
  
 
== Varianty přesměrování ==
 
== Varianty přesměrování ==
* >
+
 
* >>
+
; Přesměrování standardního výstupu do souboru
* |
+
* <tt>program '''>''' soubor</tt>
* přesměrování chybového výstupu: 2>
+
*: Zápis výstupu programu do souboru.
* <
+
*: Spustíme program s názvem <tt>program</tt> (tedy vznikne proces).
 +
*: Výstup procesu budeme zapisovat do souboru <tt>soubor</tt>.
 +
*: Pokud soubor neexistuje, vytvoří se. Pokud soubor již existuje, nová data přepíší ta, která v něm byla.
 +
*: Příklad: <tt>ls -l > ~/obsah_adresare.txt</tt>
 +
* <tt>program '''>>''' soubor</tt>
 +
*: Stejně jako předchozí, ale pokud soubor již existuje, nově zapisovaná data se připojí na konec souboru.
 +
*: Příklad: <tt>echo "Druhy adresar:" >> ~/obsah_adresare.txt<br />ls druhy -l >> ~/obsah_adresare.txt</tt>
 +
 
 +
; Přesměrování chybového výstupu do souboru
 +
* <tt>program '''2>''' soubor</tt>
 +
*: Chyby, které vypisuje program <tt>program</tt> se zapisují do souboru <tt>soubor</tt>.
 +
*: Příklad: <tt>cp a b 2> /dev/null</tt>
 +
*: Příklad: <tt>mv archiv.tar.gz zalohy 2> ~/zaloha_chyby.log</tt>
 +
 
 +
; Přesměrování standardního vstupu
 +
* <tt>program '''<''' soubor</tt>
 +
*: <tt>program</tt> čte data ze souboru <tt>soubor</tt> místo ze standardního vstupu (z klávesnice).
 +
 
 +
; Propojení programů
 +
* <tt>program1 '''|''' program2</tt>
 +
*: Roura (anglicky pipe). Slouží k propojení dvou procesů.
 +
*: Spustí se <tt>program2</tt>. Jako vstup dostane „konec roury“ (anglicky pipe). Pak se spustí program <tt>program1</tt>. Výstup z programu <tt>program1</tt> se posílá do „roury“ a <tt>program2</tt> ho dále zpracovává.
 +
*: Příklad: <tt>ls | sort | head</tt>
 +
*: Příklad: <tt>cat /etc/passwd | cut -d : -f 1 | sort</tt>
  
 
== Speciální soubory ==
 
== Speciální soubory ==

Verze z 20. 1. 2012, 09:28


„Write programs that do one thing and do it well.
  Write programs to work together.
  Write programs that handle text streams, because that is an universal interface.“

(McIlroy)

Obsah

K čemu to je? (modelová situace)

Poznámka

Vlastně se tedy jedná o způsob komunikace mezi procesy.

Hrátky: program cat

Varianty přesměrování

Přesměrování standardního výstupu do souboru
Přesměrování chybového výstupu do souboru
Přesměrování standardního vstupu
Propojení programů

Speciální soubory

Virtuální soubory reprezentující standardní vstup a výstup
Pomocné
cp ~/ahoj.txt /home/student/ahoj.txt 2> /dev/null

Pojmy

Roura jako způsob komunikace mezi procesy

Příklady

Filtry

tar --help | less
tail /var/log/apache2/error_log
ls | wc -l
tar -c * | gzip > archiv.tar.gz
tar -czf archiv.tar.gz *
tar -xzf archiv.tar.gz
cat /etc/passwd | cut -d : -f 1,5 | sort
$ date | tee file1 file2   
Thu Jun 10 11:10:34 CEST 2004
$ cat file1   
Thu Jun 10 11:10:34 CEST 2004

Zopakujte si

Vyzkoušejte si

Zdroje

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje