Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah watak paip dalam linux

Apakah watak paip dalam linux

青灯夜游
青灯夜游asal
2022-06-17 15:42:019550semak imbas

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.

Apakah watak paip dalam linux

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.

Apakah watak paip dalam linux

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

  • 【1】Langkah pertama - lihat teks
  • Mula-mula gunakan arahan kucing untuk melihat teks, dan kandungan yang dicetak pada skrin ialah hasil keluaran perintah kucing
  • 【2】Proses kedua - pengisihan
    Apakah watak paip dalam linux Lemparkan hasil keluaran oleh perintah kucing sebelumnya ke perintah isihan melalui saluran paip, jadi perintah isih adalah untuk melaksanakan pengisihan pada output teks dengan arahan kucing sebelumnya

[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]#

Inilah perkara penting!

[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]#
Inilah maksudnya!

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]#
mempunyai dua fail berikut

[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]#
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
[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!

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