GNU/Linux >> Znalost Linux >  >> Linux

Jak používat přesměrování příkazů pod Linuxem

Metaznaky shellu

Metaznaky shellu jsou specifické znaky, obecně symboly, které mají v rámci shellu zvláštní význam. Metaznaky podporované v bash jsou uvedeny následovně:

  • | :Odešle výstup příkazu doleva jako vstup příkazu napravo od symbolu
  • & :Spustí proces na pozadí, což vám umožní pokračovat v práci na příkazovém řádku
  • ; :Umožňuje vypsat více příkazů na jednom řádku oddělených tímto znakem
  • () :Seskupí příkazy a odešle jejich výstup na stejné místo
  • < :Získá vstup pro příkaz nalevo ze souboru uvedeného napravo od tohoto symbolu
  • > :Odešle výstup příkazu vlevo do souboru pojmenovaného vpravo od tohoto symbolu
  • záložka mezerník
Pozor :Při vytváření názvů souborů a adresářů nepoužívejte tyto metaznaky. Tyto znaky mají v shellu zvláštní význam.

Metaznaky přesměrování

Přesměrování příkazů je povoleno následujícími metaznaky shellu:

  • Přesměrování standardního vstupu (<)
  • Přesměrování standardního výstupu (>)
  • Přesměrování standardní chyby (2>)
  • Svislý znak (|)

Deskriptory souborů

Každý proces pracuje s deskriptory souborů. Deskriptory souborů určují, odkud pochází vstup příkazu a kam jsou směrovány výstupy a chybové zprávy. Tabulka vysvětluje popisy souborů.

Číslo deskriptoru souboru Zkratka deskriptoru souboru Definice
0 stdin Standardní příkazový vstup
1 stdout Standardní výstup příkazu
2 stderr Standardní chyba příkazu

Přesměrování příkazů

Ve výchozím nastavení shell přijímá nebo čte vstup ze standardního vstupu, klávesnice a zobrazuje výstup a chybové zprávy na standardní výstup, obrazovku. Přesměrování vstupu nutí příkaz číst vstup ze souboru namísto z klávesnice. Přesměrování výstupu odesílá výstup z příkazu do souboru namísto odesílání výstupu na obrazovku.

Přesměrování standardního vstupu

Menší než (< ) metaznak zpracovává soubor jako standardní vstup namísto čtení vstupu z klávesnice.

# command < filename

nebo

# command 0< filename

Například použijte soubor data.txt jako vstup pro příkaz mailx.

# mailx -s test [email protected] < data.txt

Přesměrování standardního výstupu

Větší než (> ) metaznak přesměruje standardní výstup do souboru namísto tisku výstupu na obrazovku.

# command > filename

nebo

# command 1> filename

Pokud soubor neexistuje, systém jej vytvoří. Když použijete jeden metaznak větší než (>), příkaz přepíše původní obsah souboru, pokud soubor již existuje. Když použijete dva znaky větší než (>>), příkaz připojí výstup k původnímu obsahu souboru.

$ command >> filename

Standardní chyba přesměrování

Příkaz používající číslo deskriptoru souboru (2) a znaménko větší než (>) přesměruje všechny standardní chybové zprávy do souboru /dev/null.

$ command 2> /dev/null

Následující příklad ukazuje standardní výstup a standardní chybu přesměrovanou do souboru data.txt.

$ ls /tmp 1> data.txt 2>&1
Poznámka :Syntaxe 2>&1 instruuje shell k přesměrování stderr (2) do stejného souboru, který přijímá stdout (1).

Postava potrubí

Znak roury přesměruje standardní výstup z jednoho příkazu na standardní vstup jiného příkazu. První příkaz zapíše výstup na standardní výstup a druhý příkaz přečte standardní výstup z předchozího příkazu jako standardní vstup.

$ command | command

Například použijte standardní výstup z příkazu who jako standardní vstup pro příkaz wc -l.

 $ who | wc -l 
35

Chcete-li zobrazit seznam všech podadresářů umístěných v adresáři /etc, zadejte následující příkaz.

$ ls -F /etc | grep "/" X11/
acct/
apache/
apache2/

Použijte výstup příkazu head jako vstup pro příkaz 'xargs ls'.

head -10 data.txt | xargs ls 


Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat příkaz tar pod Linuxem

  1. Jak používat Su Command v Linuxu

  2. Jak používat Linux Screen Command

  3. Jak efektivně používat Man Pages pod Linuxem

  1. Jak používat příkaz historie Linuxu

  2. Jak používat příkaz Disown v Linuxu

  3. Jak používat příkaz xargs pro Linux