Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah yang dilakukan oleh watak paip linux?

Apakah yang dilakukan oleh watak paip linux?

青灯夜游
青灯夜游asal
2023-04-14 11:36:574403semak imbas

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.

Apakah yang dilakukan oleh watak paip linux?

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().

Watak | daripada objek arahan berikutnya, format arahannya ialah "Arahan 1 | Arahan 2 | ..." Arahan seterusnya arahan ini mesti boleh menerima arahan aliran input standard sebelum ia boleh dilaksanakan. Pengendali arahan saluran paip

ialah: "

", 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

  • Tapis

  • 【1 】Proses pertama - lihat teks

  • Mula-mula gunakan arahan kucing untuk melihat teks, dan kandungan yang dicetak pada skrin adalah hasil output arahan kucing

Apakah yang dilakukan oleh watak paip linux?[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

Apabila parameter baris arahan adalah kosong , output arahan sebelumnya digunakan sebagai input arahan ini secara lalai Laksanakan arahan: cat a.txt | sort b.txt

Anda boleh melihatnya apabila arahan isihan Apabila parameter baris (di sini b.txt) tidak kosong, isihan tidak akan membaca parameter dalam input standard, tetapi akan membaca parameter baris arahan

dan laksanakan arahan: cat a. txt |. sort b. txt -
[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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn