Salah satu operator shell yang paling kuat di Linux adalah pipa. Dalam artikel ini, kita akan melihat cara kerja pipa biasa dan pipa bernama, cara menggunakannya, dan perbedaannya satu sama lain.
Pipes adalah salah satu kemampuan baris perintah paling berharga dari sistem operasi Linux dan mirip Unix. Pipa digunakan dalam berbagai aplikasi. Jika Anda melihat artikel baris perintah Linux, Anda akan melihat bahwa pipa sering muncul.
Simbol batang vertikal |
menunjukkan pipa. Karena pipa, Anda dapat mengambil output dari satu perintah dan memasukkannya ke perintah lain sebagai input.
Akibatnya, output dari satu perintah dapat digunakan sebagai input untuk perintah lain, dan output dari perintah tersebut dapat digunakan sebagai input untuk perintah berikutnya, dan seterusnya.
Jadi Anda tidak terbatas pada satu perintah pipa. Anda dapat menumpuknya sebanyak yang Anda suka.
Dengan kata lain, pipa adalah bentuk pengalihan yang digunakan di Linux untuk mengirim output dari satu program ke program lain untuk diproses lebih lanjut. Pipa memungkinkan Anda melakukan operasi yang tidak didukung shell secara langsung.
Sintaks untuk perintah pipe atau pipa tanpa nama adalah |
karakter antara dua perintah:
command1 | command2 | ... | commandN
Bagaimana Cara Kerja Pipa di Linux
Untuk melihat cara kerja pipa, mari kita lihat contoh di bawah ini.
Kami memiliki direktori yang penuh dengan berbagai jenis file. Jadi kami ingin mengetahui berapa banyak file dari jenis tertentu dalam direktori ini.
Jadi kita bisa mendapatkan daftar file dengan mudah menggunakan ls
perintah:
ls -l
Kami akan menggunakan grep untuk memisahkan jenis file yang kami cari. Misalnya, kami mencari file dengan kata txt
dalam nama mereka atau sebagai ekstensi file.
Kami akan menggunakan karakter shell khusus |
untuk mengarahkan ls
' output ke grep
.
ls | grep txt
Seperti yang Anda lihat dari gambar di atas, output dari ls
perintah tidak dikirim ke jendela terminal.
Oleh karena itu hasilnya tidak ditampilkan di layar. Alih-alih, alih-alih diarahkan ke input grep
memerintah. Output yang kita lihat di atas berasal dari grep
, perintah terakhir dalam rantai ini.
Sekarang, mari kita mulai memperluas rantai kita. Kami dapat menghitung file txt
dengan menambahkan wc
perintah ke rantai. Kami akan menggunakan -l
opsi (jumlah baris) dengan wc
.
ls | grep txt | wc -l
Pada contoh di atas, grep
bukan lagi perintah terakhir dalam rantai, jadi kami tidak melihat hasilnya. Sebagai gantinya, output dari grep
dimasukkan ke dalam wc
perintah.
Hasil yang kita lihat di jendela terminal berasal dari wc
. Ini melaporkan dua file, txt
dalam direktori.
Apa Itu Named Pipe di Linux?
Seperti namanya sendiri, ini adalah pipa dengan nama. Salah satu perbedaan utama antara pipa biasa dan&pipa bernama adalah bahwa pipa bernama ada di sistem file . Artinya, mereka muncul seperti file.
Pipa bernama di Linux adalah metode untuk melewatkan informasi dari satu proses komputer ke komputer lain menggunakan pipa yang diberi nama tertentu. Pipa bernama juga dikenal sebagai FIFO, yang merupakan singkatan dari First In, First Out .
Anda dapat membuat pipa bernama menggunakan mkfifo
memerintah. Misalnya:
mkfifo mypipe
Anda dapat mengetahui apakah suatu file adalah pipa bernama dengan p
bit di bagian izin file.
ls -l mypipe
prw-r--r-- 1 root root 0 Mar 20 12:58 mypipe
Pipa bernama adalah file pada sistem file itu sendiri. Tidak seperti pipa standar, pipa bernama diakses sebagai bagian dari sistem file, sama seperti jenis file lainnya.
Konten pipa bernama berada di memori daripada ditulis ke disk. Jadi itu dilewatkan hanya ketika kedua ujung pipa telah dibuka. Dan Anda dapat menulis ke pipa beberapa kali sebelum dibuka di ujung yang lain dan membaca.
Menggunakan pipa bernama memungkinkan Anda membuat proses di mana satu proses menulis ke pipa, dan proses lain membaca dari pipa tanpa banyak perhatian tentang mencoba mengatur waktu atau hati-hati mengatur interaksi mereka.
Untuk melihat cara kerja pipa bernama, mari kita lihat contoh di bawah ini. Pertama-tama mari kita buat pipa bernama kita:
mkfifo mypipe
Sekarang mari kita konsumsi pesan dengan pipa ini.
tail -f mypipe
Buka jendela terminal lain, tulis pesan ke pipa ini:
echo "hi" >> mypipe
Sekarang di jendela pertama, Anda dapat melihat "hai" tercetak:
tail -f pipe1
hi
Karena itu adalah pipa dan pesan telah dikonsumsi, jika kami memeriksa ukuran file, Anda dapat melihatnya masih 0:
ls -l mypipe
prw-r--r-- 1 root root 0 Mar 20 14:11 mypipe
Karena pipa bernama hanyalah file Linux, kita dapat menggunakan perintah rm untuk menghapusnya. Oleh karena itu, untuk menghapus pipa yang kita buat pada contoh sebelumnya, kita akan menjalankan:
rm mypipe
Kapan Menggunakan Pipa Reguler atau Bernama
Menggunakan pipa biasa alih-alih pipa bernama di Linux tergantung pada karakteristik yang kita cari. Beberapa dapat berupa ketekunan, komunikasi dua arah, memiliki nama file, membuat filter, dan membatasi izin akses.
Misalnya, jika kita ingin memfilter output dari suatu perintah beberapa kali, menggunakan pipa anonim tampaknya merupakan opsi yang paling tepat.
Di sisi lain, jika kita membutuhkan nama file dan kita tidak ingin menyimpan data di disk, yang kita cari adalah pipa bernama.
Kesimpulannya, lain kali Anda bekerja dengan perintah di terminal Linux dan mendapati diri Anda memindahkan data antar perintah, semoga, sebuah pipa akan membuat prosesnya cepat dan mudah.
Kesimpulan
Artikel ini menunjukkan kepada Anda keserbagunaan pipa saat digunakan dalam perintah Linux. Namun, ini relatif sederhana, tetapi dapat menyelesaikan berbagai pertanyaan rumit.
Selain itu, alat baris perintah ini sederhana dan berfungsi dengan platform UNIX dan Linux.
Untuk informasi lebih lanjut tentang pipe
perintah di Linux, lihat halaman manualnya.