Rumah > Artikel > Operasi dan penyelenggaraan > Apakah yang dilakukan oleh watak paip linux?
Di Linux, aksara paip "|" digunakan untuk menyambungkan berbilang arahan 2 |. ... ”, arahan berikut bagi arahan ini mesti boleh menerima arahan aliran input standard sebelum ia boleh dilaksanakan. Watak paip digunakan terutamanya untuk pemprosesan arahan berbilang, dan hasil cetakan arahan sebelumnya digunakan sebagai input arahan berikutnya.
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
Pipeline ialah kaedah komunikasi yang sangat penting dalam Linux Ia menghubungkan secara langsung output satu program ke input program lain. Paip sering merujuk kepada paip yang tidak dinamakan hanya boleh digunakan antara proses yang berkaitan Ini adalah perbezaan terbesar antara mereka dan paip bernama.
Paip yang terkenal dipanggil paip atau FIFO (first in first out), yang boleh dibuat dengan fungsi mkfifo().
", yang hanya boleh memproses maklumat output yang betul yang dihantar oleh arahan sebelumnya dan tidak mempunyai keupayaan pemprosesan langsung untuk maklumat ralat. Kemudian, ia dihantar ke arahan seterusnya sebagai objek operasi. |
Sintaks: |
Watak paip digunakan terutamanya untuk pemprosesan perintah berbilang Hasil cetakan arahan sebelumnya digunakan sebagai input arahan berikut . Secara ringkasnya, ia seperti barisan pemasangan kilang Selepas satu proses selesai, ia terus dihantar ke proses seterusnya...
指令1 | 指令2 | …Contohnya: susun fail hello.sh dan. cari selepas deduplikasi. Ekstrak baris yang mengandungi "lebih baik"
Arahannya ialah: cat hello.sh | sort | Lihat teks
IsihAlih keluar pendua
【1 】Proses pertama - lihat teks
[2] Proses kedua ——Isih
Lemparkan output hasil mengikut perintah kucing sebelumnya ke perintah isihan melalui saluran paip, jadi perintah isih mengisih output teks mengikut arahan kucing sebelumnya
【4】Langkah keempat - penapisan[root@linuxforliuhj test]# cat hello.sh hello this is linux be better be better i am lhj hello this is linux i am lhj i am lhj be better i am lhj have a nice day have a nice day hello this is linux hello this is linux have a nice day zzzzzzzzzzzzzz dddddddd gggggggggggggggggggg[root@linuxforliuhj test]#
Langkah terakhir penapisan ialah juga untuk memproses arahan sebelumnya, iaitu perintah uniq, tapis teks output
[root@linuxforliuhj test]# cat hello.sh | sortbe better be better be better dddddddd gggggggggggggggggggg have a nice day have a nice day have a nice day hello this is linux hello this is linux hello this is linux hello this is linux i am lhj i am lhj i am lhj i am lhj zzzzzzzzzzzzzz[root@linuxforliuhj test]#Inilah titiknya!
[root@linuxforliuhj test]# cat hello.sh | sort | uniqbe better dddddddd gggggggggggggggggggg have a nice day hello this is linux i am lhj zzzzzzzzzzzzzz[root@linuxforliuhj test]#
Inilah maksudnya!
[root@linuxforliuhj test]# cat hello.sh | sort | uniq | grep 'better'be better[root@linuxforliuhj test]#Inilah perkara penting!
Arahan kucing, sort, uniq, grep dan lain-lain di atas semuanya menyokong watak paip kerana arahan ini boleh membaca keperluan daripada input standard Teks yang diproses (iaitu, membaca parameter daripada input standard, seperti rm, kill dan arahan lain, tidak menyokong parameter bacaan daripada input standard, dan hanya menyokong parameter bacaan daripada baris arahan (iaitu, apa yang mengikuti arahan rm Fail atau direktori yang akan dipadamkan mesti ditentukan, dan nombor proses yang akan dibunuh mesti dinyatakan selepas arahan bunuh)
Jadi apakah jenis arahan yang menyokong paip, dan apakah jenis arahan yang tidak menyokong paip? Secara umum, perintah yang memproses teks, seperti isihan, uniq, grep, awk, sed, dll., semua perintah yang tidak memproses teks, seperti rm dan ls, tidak menyokong paip
Apabila tiada parameter selepas isihan, output arahan sebelumnya yang dilemparkan kepadanya oleh watak paip diproses (iaitu, output standard arahan sebelumnya digunakan sebagai input standard bagi arahan ini)
Apabila fail yang dipadam tidak dinyatakan selepas rm, ralat akan dilaporkan sebagai parameter yang tiada Oleh itu, arahan seperti rm tidak menyokong parameter bacaan daripada input standard menentukan parameter pada baris arahan, iaitu, menentukan fail yang dipadam.
Manakah yang diutamakan antara input standard dan parameter baris arahan?
[root@linuxforliuhj test]# cat hello.sh | sortbe better be better be better dddddddd gggggggggggggggggggg have a nice day have a nice day have a nice day hello this is linux hello this is linux hello this is linux hello this is linux i am lhj i am lhj i am lhj i am lhj zzzzzzzzzzzzzz[root@linuxforliuhj test]#mempunyai dua fail berikut
[root@linuxforliuhj test]# lsbeifen.txt hello.sh mk read.ln read.sh read.txt sub.sh[root@linuxforliuhj test]# ls | grep read.shread.sh[root@linuxforliuhj test]# ls | grep read.sh | rmrm: missing operand Try 'rm --help' for more information.[root@linuxforliuhj test]#Laksanakan arahan: cat a.txt | sort
[root@linuxforliuhj test]# cat a.txt aaaa dddd cccc bbbb[root@linuxforliuhj test]# cat b.txt 1111333344442222[root@linuxforliuhj test]#" - "Menunjukkan input standard, iaitu output perintah cat a.txt, yang bersamaan dengan mengisih fail b.txt dan input standard bersama-sama , yang bersamaan dengan mengisih a.txt b.txt
[root@linuxforliuhj test]# cat a.txt | sortaaaa bbbb cccc dddd[root@linuxforliuhj test]#
[root@linuxforliuhj test]# sort a.txt b.txt1111222233334444aaaa bbbb cccc dddd[root@linuxforliuhj test]#
思考:对于rm、kill等命令,我们写脚本时常常会遇到需要查询某个进程的进程号然后杀掉该进程,查找某个文件然后删除它这样的需求,该怎么办呢?那就用xargs吧!
相关推荐:《Linux视频教程》
Atas ialah kandungan terperinci Apakah yang dilakukan oleh watak paip linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!