Di Linux, watak paip ialah "|", yang digunakan terutamanya untuk menyambung dua atau lebih arahan bersama-sama dan menggunakan output satu arahan sebagai input bagi arahan seterusnya ialah "perintah1 | perintah2 [ |. commandN... ]", output perintah di sebelah kiri aksara "|" akan digunakan sebagai input perintah di sebelah kanan aksara "|". Watak paip boleh digunakan secara berterusan Output perintah pertama akan digunakan sebagai input perintah kedua, dan output perintah kedua akan digunakan sebagai input perintah ketiga, dan seterusnya.
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
Shell juga mempunyai fungsi, iaitu untuk menyambung dua atau lebih arahan (program atau proses) bersama-sama, dan menggunakan output satu arahan sebagai input arahan seterusnya Kedua-duanya bersambung dengan cara ini Atau berbilang arahan membentuk saluran paip.
Paip Linux menggunakan bar menegak |
untuk menyambungkan berbilang arahan, yang dipanggil watak paip.
command1 | command2 command1 | command2 [ | commandN... ]
Apabila paip ditetapkan di antara dua arahan, output arahan di sebelah kiri simbol paip menjadi input arahan di sebelah kanan. Selagi arahan pertama menulis kepada output standard dan arahan kedua dibaca daripada input standard, kedua-dua arahan boleh membentuk paip. Kebanyakan arahan Linux boleh digunakan untuk membentuk paip.
Aksara paip boleh digunakan secara berterusan Output arahan pertama akan digunakan sebagai input perintah kedua, dan output perintah kedua akan digunakan sebagai input perintah ketiga, dan. seterusnya.
Perlu diperhatikan di sini bahawa command1 mesti mempunyai output yang betul, dan command2 mesti boleh memproses hasil output command2 dan command2 hanya boleh memproses yang betul hasil keluaran arahan1, bukan Kendalikan mesej ralat arahan1.
Contohnya: isikan fail hello.sh dan cari baris yang mengandungi "lebih baik" selepas mengisih dan menyahgandakannya
Arahannya ialah : cat hello.sh |. uniq |.
[3] Proses ketiga - penyahduplikasi
Seperti yang dinyatakan dalam artikel sebelumnya yang memperkenalkan uniq, isihan boleh. dinyahduplikasi secara berkesan dengan menggunakan gabungan isihan dan uniq, jadi melalui saluran paip Output teks selepas pemprosesan isihan dibuang ke uniq untuk diproses, jadi uniq memproses teks yang diisih, yang boleh mengalih keluar pendua dengan berkesan
[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]#
[4] Proses keempat - penapisan
Langkah terakhir penapisan ialah menapis output teks selepas diproses oleh arahan sebelumnya, arahan uniq
[root@linuxforliuhj test]# cat hello.sh | sort be 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]#
[root@linuxforliuhj test]# cat hello.sh | sort | uniq be better dddddddd gggggggggggggggggggg have a nice day hello this is linux i am lhj zzzzzzzzzzzzzz [root@linuxforliuhj test]#
Perkara penting datang Baiklah!
[root@linuxforliuhj test]# cat hello.sh | sort | uniq | grep 'better' be better [root@linuxforliuhj test]#
arahan di atas seperti cat, sort, uniq, grep, dsb. semuanya menyokong watak paip kerana arahan ini Teks yang akan diproses boleh dibaca daripada input standard (iaitu, parameter dibaca daripada input standard tetapi untuk beberapa arahan, seperti rm, kill dan arahan lain, mereka tidak menyokong parameter bacaan daripada input standard dan hanya menyokong bacaan daripada baris arahan dalam parameter (iaitu, fail atau direktori yang akan dipadamkan mesti ditentukan selepas Arahan rm, nombor proses untuk dibunuh mesti dinyatakan selepas arahan bunuh, dsb.)
Apakah jenis arahan yang 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 | sort be 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]#
[root@linuxforliuhj test]# ls beifen.txt hello.sh mk read.ln read.sh read.txt sub.sh [root@linuxforliuhj test]# ls | grep read.sh read.sh [root@linuxforliuhj test]# ls | grep read.sh | rm rm: missing operand Try 'rm --help' for more information. [root@linuxforliuhj test]#
[root@linuxforliuhj test]# cat a.txt aaaa dddd cccc bbbb [root@linuxforliuhj test]# cat b.txt 1111 3333 4444 2222 [root@linuxforliuhj test]#
dan laksanakan arahan: cat a. txt |. sort b. txt -
[root@linuxforliuhj test]# cat a.txt | sort aaaa bbbb cccc dddd [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]# sort a.txt b.txt 1111 2222 3333 4444 aaaa bbbb cccc dddd [root@linuxforliuhj test]#
思考:对于rm、kill等命令,我们写脚本时常常会遇到需要查询某个进程的进程号然后杀掉该进程,查找某个文件然后删除它这样的需求,该怎么办呢?那就用xargs吧!
相关推荐:《Linux视频教程》
Atas ialah kandungan terperinci Apakah watak paip dalam linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!