GNU/Linux >> Belajar Linux >  >> Linux

Apa itu Pipes di Linux? Bagaimana Cara Kerja Pengalihan Pipa?

Anda mungkin telah menggunakan sintaks seperti cmd0 | cmd1 | cmd2 di terminal Anda terlalu sering.

Anda mungkin juga tahu bahwa itu adalah pengalihan pipa yang digunakan untuk mengarahkan output dari satu perintah sebagai input ke perintah berikutnya.

Tapi tahukah Anda apa yang ada di bawahnya? Bagaimana sebenarnya pengalihan pipa bekerja?

Tidak perlu khawatir karena hari ini saya akan mengungkap pipa Unix sehingga lain kali Anda berkencan dengan bar vertikal mewah itu, Anda akan tahu persis apa yang terjadi.

Catatan:Saya telah menggunakan istilah Unix di beberapa tempat karena konsep pipa (seperti banyak hal lain di Linux) berasal dari Unix.

Pipa di Linux:Ide umum

Inilah yang akan Anda lihat di mana-mana tentang "apa itu pipa Unix?":

  • Pipa Unix adalah mekanisme IPC (Inter Process Communication), yang meneruskan output dari satu program ke input program lain.

Sekarang, ini adalah penjelasan umum yang diberikan semua orang. Saya ingin masuk lebih dalam. Mari kita ulangi baris sebelumnya dengan cara yang lebih teknis dengan menghilangkan abstraksi:

  • Pipa Unix adalah mekanisme IPC (Inter Process Communication) yang mengambil stdout program dan meneruskannya ke stdin dari program lain melalui buffer.

Jauh lebih baik. Menghilangkan abstraksi membuatnya jauh lebih bersih, dan lebih akurat. Anda dapat melihat diagram berikut untuk memahami cara kerja pipa:

Salah satu contoh paling sederhana dari perintah pipa adalah meneruskan beberapa keluaran perintah ke perintah grep untuk mencari string tertentu.

Misalnya, Anda dapat mencari file dengan nama yang mengandung txt seperti ini:

Perhatikan:Pipe mengalihkan stdout ke stdin tetapi tidak sebagai argumen perintah

Satu hal yang sangat penting untuk dipahami adalah bahwa pipa mentransfer stdout dari perintah ke stdin dari yang lain tetapi bukan sebagai argumen perintah. Saya akan menjelaskannya dengan contoh.

Jika Anda menggunakan cat perintah tanpa argumen apa pun, defaultnya adalah membaca dari stdin . Ini contohnya:

$ cat
Subscribe to Linux Handbook for more articles like this
^D
Subscribe to Linux Handbook for more articles like this

Di sini saya menggunakan cat tanpa melewatkan file apa pun, jadi defaultnya adalah stdin . Selanjutnya saya menulis satu baris dan kemudian menggunakan Ctrl+d untuk memberi tahu bahwa saya sudah selesai menulis (Ctrl+d menyiratkan EOF atau End Of File). Setelah saya selesai menulis, cat membaca dari stdin , dan menulis baris itu ke stdout .

Sekarang perhatikan perintah berikut:

echo hey | cat

Perintah kedua TIDAK setara dengan cat hey . Di sini, stdout , "hei", dibawa ke buffer, dan ditransfer ke stdin dari cat . Karena tidak ada argumen baris perintah, cat default ke stdin untuk dibaca, dan sudah ada sesuatu di stdin, jadi perintah cat mengambilnya, dan mencetak ke stdout .

Sebenarnya, saya membuat file bernama hey dan memasukkan beberapa konten ke dalamnya. Anda dapat melihat perbedaannya dengan jelas pada gambar di bawah ini:

Jenis pipa di Linux

Ada dua jenis pipa di Linux:

  • Pipa tanpa nama, juga disebut pipa anonim
  • Pipa bernama

Baca cerita selengkapnya

Sisa artikel hanya tersedia untuk anggota LHB. Anda dapat mendaftar sekarang secara GRATIS untuk membaca sisa artikel ini bersama dengan akses ke semua posting khusus anggota. Anda juga berlangganan buletin Linux dua minggu sekali.

BerlanggananSudah punya akun? Masuk
Linux
  1. Apa itu Perintah Chown di Linux dan Cara Menggunakannya

  2. Bagaimana cara mengetahui apa yang dilakukan perintah Linux

  3. Pipes dan Redirection di Linux - Dijelaskan!

  1. Cara menggunakan pengalihan perintah di Linux

  2. Apa maksud - dalam perintah linux ini?

  3. Bagaimana cara mem-pipe ke perintah split Linux?

  1. Cara Menggunakan Pipes dan Named Pipes di Linux (dengan Contoh)

  2. Bagaimana Cara Kerja Perintah Tee??

  3. Bagaimana cara melihat perintah linux yang paling sering saya gunakan?