Jinsi ya Kuendesha Amri kutoka kwa Uingizaji Kawaida kwa Kutumia Tee na Xargs kwenye Linux


Unapotumia mstari wa amri, unaweza kupitisha moja kwa moja matokeo ya programu moja (kwa mfano chombo kinachozalisha awk, kwa usindikaji zaidi), kwa kutumia bomba.

Huduma mbili muhimu zaidi za mstari wa amri ambazo zinaweza kutumika na bomba kuunda mistari ya amri ni:

  • xargs - husoma mitiririko ya data kutoka kwa uingizaji wa kawaida, kisha hutoa na kutekeleza mistari ya amri.
  • tee - husoma kutoka kwa ingizo la kawaida na huandika kwa wakati mmoja hadi pato la kawaida na faili moja au nyingi. Ni zaidi ya amri ya kuelekeza kwingine.

Katika makala hii rahisi, tutaelezea jinsi ya kujenga na kutekeleza amri nyingi kutoka kwa pembejeo ya kawaida kwa kutumia mabomba, amri za tee na xargs katika Linux.

Sintaksia rahisi zaidi ya kutumia bomba, ambayo unaweza kuwa umeiona kwenye amri katika mafunzo mengi ya Linux, ni kama ifuatavyo. Lakini unaweza kuunda mstari wa amri mrefu na amri kadhaa.

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

Chini ni mfano wa kutumia bomba kupitisha pato la amri ya kichwa.

$ dmesg | head

Jinsi ya kutumia xargs Kuendesha Amri

Katika mfano huu, amri ya pili inabadilisha pato la mstari wa muti kuwa laini moja kwa kutumia xargs.

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

Ili kuhesabu idadi ya mistari/maneno/wahusika katika kila faili kwenye orodha, tumia amri zilizo hapa chini.

$ 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

Amri iliyo hapa chini hupata na kufuta kwa kurudia saraka inayoitwa Zote katika saraka ya sasa.

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

Amri ya kutafuta iliyo na chaguo -print0 kitendo huwezesha uchapishaji wa njia kamili ya saraka kwenye pato la kawaida, ikifuatiwa na herufi batili na -0 xargs hushughulikia nafasi katika majina ya faili.

Unaweza kupata mifano mingine ya utumiaji ya amri ya xargs katika vifungu hivi:

  1. Jinsi ya Kunakili Faili kwa Saraka Nyingi katika Linux
  2. Badilisha Faili Zote na Majina ya Saraka kuwa Herufi Ndogo katika Linux
  3. Njia 4 za Kuunganisha Kubadilisha PNG Yako hadi JPG na Kinyume chake
  4. Njia 3 za Kufuta Faili Zote katika Saraka Isipokuwa Faili Moja au Chache zenye Viendelezi

Jinsi ya kutumia Tee na Amri kwenye Linux

Mfano huu unaonyesha jinsi ya kutuma pato la amri kwa pato la kawaida na kuhifadhi kwenye faili; amri iliyo hapa chini hukuruhusu kutazama michakato ya juu inayoendesha kwa kumbukumbu ya juu zaidi na utumiaji wa CPU kwenye Linux.

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

Ili kuambatisha data katika faili zilizopo, pitisha alama ya -a.

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

Unaweza kupata habari zaidi katika kurasa za mtu za tee na xargs.

$ man xargs
$ man tee

Ni hayo tu! Usisahau kuangalia nakala yetu maalum: Amri za A - Z Linux - Muhtasari na Mifano.

Katika makala hii, tulielezea jinsi ya kuzalisha mistari ya amri kwa kutumia mabomba; xargs na amri za tee. Unaweza kuuliza maswali yoyote au kushiriki mawazo yoyote kupitia fomu ya maoni hapa chini.