Pipe digunakan untuk mengalihkan suatu aliran dari satu program kepada program lain. Ketika suatu standard output dari suatu program dikirim kepada program yang lain melalui suatu pipe/penyaluran, data dari program pertama, yang diterima oleh program kedua, tidak akan ditampilkan pada terminal. Hanya data yang difilter atau disaring yang dikembalikan oleh program yang akan ditampilkan.
Pipe Linux diwakili oleh batang vertikal.
*|*
Contoh dari perintah yang menggunakan suatu pipe:
ls | less
Perintah ini mengambil keluaran dari perintah ls, yang menampilkan isi dari direktori Anda saat ini, dan menyalurkannya kepada program less. Program less lalu
menampilkan data yang dikirim kepadanya baris demi baris.
Program ls secara normal tanpa opsi, menampilkan isi direktori dalam bentuk kolom ganda. Ketika Anda menjalankannya melalui program less, setiap entri ditempatkan pada baris baru.
Walaupun fungsi dari pipe hampir sama dengan perintah > dan >> (pengalihan standard output), perbedaannya adalah bahwa pipe mengalihkan data dari satu command kepada perintah lainnya, sementara > dan >> digunakan untuk mengalihkan secara eksklusif kepada file.
h. Filter
Filter adalah perintah yang merubah pengalihan pipe dan output. Perintah filter juga merupakan perintah standar Linux yang dapat digunakan tanpa pipe.
find - perintah find mengembalikan file dengan nama file yang cocok dengan argumen yang dilewatkan kepada perintah find.
grep - printah grep mengembalikan teks yang cocok dengan pola string yang dilewatkan kepada perintah grep.
tee - perintah tee mengalihkan standard input kepada standard output dan satu file lainnya lagi atau lebih.
tr - perintah tr mencari-dan-mengganti satu string dengan string lainnya.
wc - perintah wc menghitung huruf, baris, dan kata.
Contoh
Sekarang Anda telah diperkenalkan kepada redireksi, pipe, dari filter dasar, mari lihat pada beberapa pola pengalihan dasar, berikut contoh-contohnya.
perintah > file
Pola ini mengalihkan standard output dari suatu perintah kepada suatu file.
ls ~ > isi_dir.txt
Perintah di atas melewatkan isi dari direktori saat ini sebagai standar output, dan menulis output kepada suatu file yang bernama isi_dir.txt. Perintah itu akan menghapus isi apa pun yang sebelumnya ada pada file tersebut, karena ia adalah perintah dengan satu kurung.
perintah > /dev/null
File /dev/null adalah suatu file khusus yang digunakan untuk menampung data apa pun yang diarahkan kepadanya. File itu digunakan untuk membuang standar output yang tidak diperlukan, dan mungkin mengganggu fungsionalitas dari suatu perintah atau suatu skrip. Keluaran apa pun yang dikirim kepada file /dev/null dibuang.
Di masa mendatang, Anda mungkin menemukan praktek pengalihan standard output dan standard error kepada file /dev/null ketika menulis skrip shell.
ls > /dev/null
Perintah ini membuang aliran standard output yang dikembalikan dari perintah ls dengan menyalurkannya kepada file /dev/null.
perintah 2> file
Pola ini mengalihkan aliran standard error dari suatu perintah kepada suatu file, dengan cara menulis ulang isi yang ada.
mkdir '' 2> mkdir_log.txt
Perintah ini mengalihkan error yang dihasilkan oleh nama direktori yang tidak valid, dan menulisnya kepada file mkdir_log.txt.
perintah >> file
Pola ini mengalihkan standar output dari suatu perintah kepada suatu file tanpa menulis ulang isi file yang telah ada.
echo Tulis ke suatu file baru > data.txt
echo Tambah isi file tersebut >> data.txt
Pasangan perintah ini bekerja dengan cara pertama mengalihkan teks yang diinputkan oleh pengguna melalui perintah echo kepada suatu file baru. Ia kemudian menambah teks yang diterima oleh perintah echo yang kedua kepada file yang ada, tanpa menulis ulang isinya.
perintah 2>> file
Pola di atas mengalihkan aliran error standar dari suatu perintah kepada suatu file tanpa menulis ulang isi dari file yang ada. Pola ini berguna untuk menciptakan log error untuk suatu program atau layanan, karena setiap kali file ditulis, isi sebelumnya tidak dihapus.
find '' 2> stderr_log.txt wc '' 2>> stderr_log.txt
Perintah di atas mengalihkan pesan error yang ditimbulkan oleh suatu argumen yang tidak valid dari perintah find kepada suatu file yang bernama stderr_log.txt.
Kemudian perintah berikutnya menambahkan pesan error yang ditimbulkan oleh suatu argumen yang tidak valid dari perintah wc kepada file yang sama.
perintah | perintah
Perintah di atas mengalihkan standard output dari perintah pertama kepada standard input dari perintah kedua.
find /var lib | grep deb
Perintah ini mencari pada direktori /var dan direktori di bawahnya untuk nama file dan ekstensi yang cocok dengan string deb, dan mengembalikan path file untuk file tersebut, dengan porsi yang cocok dalam setiap path yang disorot dalam warna merah.
perintah | tee file
Pola ini (yang menyertakan perintah tee) mengalihkan standard output dari perintah tersebut kepada suatu file dan menulis ulang isinya. Kemudian, ia menampilkan output yang dialihkan di dalam terminal. Ia menciptakan suatu file baru apabila file tersebut belum ada.
Di dalam konteks dari pola ini, tee biasa digunakan untuk melihat suatu output dari suatu program sambil secara bersamaan menyimpannya kepada suatu file.
wc /etc/magic | tee magic_count.txt
Perintah ini menyalurkan hitungan huruf, baris, dan kata di dalam file magic (yang digunakan oleh shell Linux untuk menetapkan tipe file) kepada perintah tee, yang kemudian membagi keluaran dari perintah wc di dalam dua arah, dan mengirimnya kepada tampilan terminal dan file magic_count.txt. Untuk perintah tee, bayangkanlah huruf T. Bagian bawah dari huruf tersebut adalah data awal, dan bagian atasnya adalah data yang dipisahkan di dalam dua arah yang berbeda (standard output dan terminal).
Penyaluran ganda dapat digunakan untuk mengalihkan output melalui banyak perintah dan filter.
perintah | perintah | perintah >> file
Pola ini mengarahkan standard output dari perintah pertama dan mem-filter-nya melalui dua perintah berikutnya. Kemudian ia menambahkan hasil akhir kepada suatu file.
ls ~ | grep *tar | tr e E >> ls_log.txt
Ini dimulai dengan menjalankan perintah ls di dalam direktori Anda saat ini (~) dan menyalurkan hasilnya kepada perintah grep. Dalam hal ini, grep mengembalikan suatu daftar dari file yang memuat tar di dalam nama file atau ekstensinya.
Hasil dari perintah grep kemudian disalurkan kepada tr, yang menggantikan huruf e yang ditemukan dengan E, karena e dilewatkan sebagai argumen pertama (string yang dicari), dan E dilewatkan sebagai argumen kedua (string yang menggantikan apa pun yang cocok untuk argumen pertama). Hasil akhirnya kemudian ditambahkan kepada file ls_log.txt, yang dibuat apabila file tersebut belum ada).
i. Kesimpulan
Mempelajari bagaimana menggunakan kemampuan pengalihan yang dibenamkan di dalam perintah Linux mungkin sedikit membingungkan, tetapi setelah menyelesaikan tutorial ini seharusnya sudah ada sedikit gambaran. Sekarang Anda telah melihat dasar bagaimana pengalihan/redireksi dan penyaluran/pipe bekerja, Anda akan mampu memulai ‘penggerebekan’ ke dalam dunia skrip shell, yang sering digunakan dalam program.
Apabila Anda ingin menggali lebih dalam ke dalam perintah tersebut yang
diperkenalkan di dalam tutorial ini, Anda dapat melakukannya dengan perintah man perintah | less. Contoh:
man tee | less
Perintah ini akan menunjukkan kepada Anda daftar penuh dari perintah-perintah yang tersedia untuk program tee. Anda dapat menggunakan pola ini untuk menampilkan informasi dan opsi penggunaan untuk suatu program atau perintah di Linux.
===================
6. Cara Melihat Log Linux
a. Pengantar
Administrator sistim Linux sering perlu untuk melihat file log untuk keperluan troubleshooting. Pada dasarnya, ini adalah hal pertama yang dilakukan oleh seorang sistim administrator.
Linux dan aplikasi yang berjalan di atasnya dapat menghasilkan berbagai jenis pesan yang berbeda, yang direkam di dalam bermacam file log. Linux menggunakan seperangkat file konfigurasi, direktori, program, perintah dan daemon untuk
menciptakan, menyimpan dan mendaur-ulang pesan-pesan log ini. Karena itu, dengan mengetahui di mana sistim menyimpan file log tersebut dan bagaimana menggunakan perintah terkait, dapat membantu menghemat waktu dalam men-troubleshooting.
Di dalam tutorial ini, kita akan melihat pada bagian-bagian yang berbeda dari mekanisme pencatatan file log di Linux.