GNU/Linux >> Znalost Linux >  >> Linux

Jak spouštět příkazy ze standardního vstupu pomocí Tee a Xargs v Linuxu

Při používání příkazového řádku můžete přímo předat výstup jednoho programu (například nástroje, který generuje nějaké systémové informace nebo statistiky) jako vstup pro jiný program (například nástroje pro filtrování textu nebo vyhledávání vzorů jako grep, sed nebo awk, pro další zpracování) pomocí potrubí.

Přečtěte si také :Naučte se základy toho, jak funguje přesměrování I/O (vstup/výstup) v systému Linux

Dva nejdůležitější nástroje příkazového řádku, které lze použít s potrubím k vytváření příkazových řádků, jsou:

  • xargs – čte proudy dat ze standardního vstupu, poté generuje a spouští příkazové řádky.
  • tee – čte ze standardního vstupu a současně zapisuje na standardní výstup a jeden nebo více souborů. Je to spíše příkaz pro přesměrování.

V tomto jednoduchém článku popíšeme, jak vytvořit a spustit více příkazů ze standardního vstupu pomocí potrubí , tričko a xargs příkazy v Linuxu.

Nejjednodušší syntaxe pro použití pipe , který jste již mohli vidět v příkazech v mnoha linuxových tutoriálech, je následující. Můžete však vytvořit delší příkazový řádek s několika příkazy.

$ command1 args | command2 args 
OR
# command1 args | command2 args | command3 args ...

Níže je příklad použití kanálu k předání výstupu příkazu dmesg příkazu head.

$ dmesg | head

Jak používat xargs ke spouštění příkazů

V tomto příkladu druhý příkaz převádí víceřádkový výstup na jednořádkový pomocí xargs.

$ ls -1 *.sh
$ ls -1 *.sh | xargs

Chcete-li spočítat počet řádků/slov/znaků v každém souboru v seznamu, použijte níže uvedené příkazy.

$ ls *.sh | xargs wc -l	    #count number of lines in each file
$ ls *.sh | xargs wc -w	    #count number of words in each file
$ ls *.sh | xargs wc -c	    #count number of characters in each file
$ ls *.sh | xargs wc	    #count lines, words and characters in each file

Níže uvedený příkaz vyhledá a rekurzivně odstraní adresář s názvem All v aktuálním adresáři.

$ find . -name "All" -type d -print0 | xargs  -0 /bin/rm -rf "{}"

Příkaz find s volbou -print0 akce umožňuje tisk celé cesty k adresáři na standardní výstup, po níž následuje znak null a -0 xargs flag se zabývá mezerou v názvech souborů.

Další praktický příkaz xargs najdete příklady použití v těchto článcích:

  1. Jak zkopírovat soubor do více adresářů v systému Linux
  2. Přejmenujte všechny názvy souborů a adresářů na malá písmena v systému Linux
  3. 4 způsoby hromadného převodu PNG na JPG a naopak
  4. 3 způsoby, jak odstranit všechny soubory v adresáři kromě jednoho nebo několika souborů s příponami

Jak používat Tee s příkazy v Linuxu

Tento příklad ukazuje, jak odeslat výstup příkazu na standardní výstup a uložit do souboru; příkaz níže vám umožňuje zobrazit nejběžnější procesy podle nejvyššího využití paměti a CPU v Linuxu.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt
$ cat  topprocs.txt

Chcete-li přidat data do existujícího souboru (souborů), předejte -a vlajka.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt 

Více informací najdete v tee a xargs manuálové stránky.

$ man xargs
$ man tee

To je vše! Nezapomeňte se podívat na náš speciální článek:A – Z Linux Commands – Přehled s příklady.

V tomto článku jsme popsali, jak generovat příkazové řádky pomocí potrubí; příkazy xargs a tee. Prostřednictvím formuláře pro zpětnou vazbu níže můžete položit jakékoli otázky nebo sdílet jakékoli myšlenky.


Linux
  1. 10 úžasných a záhadných použití (!) symbolu nebo operátoru v příkazech Linuxu

  2. Jak uložit příkazy Linuxu a používat je na vyžádání

  3. Jak nainstalovat MongoDB ze zdroje (a pomocí YUM) na Linuxu

  1. Linuxové příkazy:jobs, bg a fg

  2. Linux – Jak spustit bootloader z Linuxu?

  3. Jak zkontrolovat OS a verzi pomocí příkazu Linux

  1. Jak přidat a odstranit statickou trasu v Linuxu pomocí příkazu IP

  2. Jak odstranit adresáře a soubory pomocí Linuxu

  3. Jak odstranit soubory a adresáře pomocí příkazového řádku systému Linux