Pelajari Dasar-dasar Cara Kerja Pengalihan I/O (Input/Output) Linux


Salah satu topik terpenting dan menarik dalam administrasi Linux adalah pengalihan I/O. Fitur baris perintah ini memungkinkan Anda mengalihkan input dan/atau output perintah dari dan/atau ke file, atau menggabungkan beberapa perintah menggunakan pipa untuk membentuk apa yang dikenal sebagai “pipa perintah ” .

Semua perintah yang kita jalankan pada dasarnya menghasilkan dua jenis keluaran:

  1. hasil perintah – data yang dirancang untuk dihasilkan oleh program, dan
  2. status program dan pesan kesalahan yang memberi tahu pengguna tentang rincian eksekusi program.

Di Linux dan sistem mirip Unix lainnya, ada tiga file default bernama di bawah ini yang juga diidentifikasi oleh shell menggunakan nomor deskriptor file:

  1. stdin atau 0 – terhubung ke keyboard, sebagian besar program membaca input dari file ini.
  2. stdout atau 1 – melekat pada layar, dan semua program mengirimkan hasilnya ke file ini dan
  3. stderr atau 2 – program mengirimkan pesan status/kesalahan ke file ini yang juga dilampirkan ke layar.

Oleh karena itu, pengalihan I/O memungkinkan Anda mengubah sumber masukan suatu perintah serta ke mana keluaran dan pesan kesalahannya dikirim. Dan hal ini dimungkinkan oleh operator pengalihan “< ” dan “> ”.

Cara Mengarahkan Output Standar ke File di Linux

Anda dapat mengarahkan keluaran standar seperti pada contoh di bawah ini, di sini, kami ingin menyimpan keluaran dari perintah teratas untuk pemeriksaan nanti:

top -bn 5 >top.log

Dimana benderanya:

  1. -b – memungkinkan top dijalankan dalam mode batch, sehingga Anda dapat mengarahkan outputnya ke file atau perintah lain.
  2. -n – menentukan jumlah iterasi sebelum perintah berakhir.

Anda dapat melihat isi file top.log menggunakan perintah cat sebagai berikut:

cat top.log

Untuk menambahkan output suatu perintah, gunakan operator “>> ”.

Misalnya untuk menambahkan output dari perintah top di atas pada file top.log terutama di dalam skrip (atau pada baris perintah), masukkan baris di bawah ini:

top -bn 5 >>top.log

Catatan: Menggunakan nomor deskriptor file, perintah pengalihan keluaran di atas sama dengan:

top -bn 5 1>top.log

Cara Mengalihkan Kesalahan Standar ke File di Linux

Untuk mengalihkan kesalahan standar suatu perintah, Anda perlu secara eksplisit menentukan nomor deskriptor file, 2 agar shell dapat memahami apa yang Anda coba lakukan.

Misalnya perintah ls di bawah ini akan menghasilkan kesalahan ketika dijalankan oleh pengguna sistem normal tanpa hak root:

ls -l /root/

Anda dapat mengarahkan kesalahan standar ke file seperti di bawah ini:

ls -l /root/ 2>ls-error.log
cat ls-error.log 

Untuk menambahkan kesalahan standar, gunakan perintah di bawah ini:

ls -l /root/ 2>>ls-error.log

Cara Mengarahkan Output/Error Standar Ke Satu File

Dimungkinkan juga untuk menangkap semua output dari suatu perintah (baik output standar dan kesalahan standar) ke dalam satu file. Hal ini dapat dilakukan dengan dua cara yang mungkin dilakukan dengan menentukan nomor deskriptor file:

1. Yang pertama adalah metode yang relatif lama yang berfungsi sebagai berikut:

ls -l /root/ >ls-error.log 2>&1

Perintah di atas berarti shell pertama-tama akan mengirimkan output dari perintah ls ke file ls-error.log (menggunakan >ls-error.log), dan kemudian menulis semua pesan kesalahan ke deskriptor file 2 (output standar) yang telah dialihkan ke file ls-error.log (menggunakan 2>&1 ). Menyiratkan bahwa kesalahan standar juga dikirim ke file yang sama dengan keluaran standar.

2. Metode kedua dan langsung adalah:

ls -l /root/ &>ls-error.log

Anda juga dapat menambahkan keluaran standar dan kesalahan standar ke satu file seperti:

ls -l /root/ &>>ls-error.log

Cara Mengarahkan Input Standar ke File

Sebagian besar, jika tidak semua perintah, mendapatkan masukannya dari masukan standar, dan secara default masukan standar dipasang ke keyboard.

Untuk mengalihkan input standar dari file selain keyboard, gunakan operator “< ” seperti di bawah ini:

cat <domains.list 

Cara Mengarahkan Input/Output Standar ke File

Anda dapat melakukan input standar, pengalihan output standar secara bersamaan menggunakan perintah sortir seperti di bawah ini:

sort <domains.list >sort.output

Cara Menggunakan Pengalihan I/O Menggunakan Pipa

Untuk mengarahkan output dari satu perintah ke input perintah lain, Anda dapat menggunakan pipa, ini adalah cara yang ampuh untuk membangun baris perintah yang berguna untuk operasi yang kompleks.

Misalnya, perintah di bawah ini akan mencantumkan lima file teratas yang baru saja diubah.

ls -lt | head -n 5 

Di sini, pilihannya:

  1. -l – mengaktifkan format daftar panjang
  2. -t – mengurutkan berdasarkan waktu modifikasi dengan file terbaru ditampilkan terlebih dahulu
  3. -n – menentukan jumlah baris header yang akan ditampilkan

Perintah Penting untuk Membangun Saluran Pipa

Di sini, kami akan meninjau secara singkat dua perintah penting untuk membangun jalur pipa perintah, yaitu:

xargs yang digunakan untuk membangun dan mengeksekusi baris perintah dari input standar. Di bawah ini adalah contoh pipeline yang menggunakan xargs, perintah ini digunakan untuk menyalin file ke beberapa direktori di Linux:

echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh

Dan pilihannya:

  1. -n 1 – memerintahkan xargs untuk menggunakan paling banyak satu argumen per baris perintah dan mengirimkannya ke perintah cp
  2. cp – menyalin file
  3. -v – menampilkan kemajuan perintah penyalinan.

Untuk informasi dan opsi penggunaan lebih lanjut, baca halaman manual xargs:

man xargs 

Perintah tee membaca dari masukan standar dan menulis ke keluaran dan file standar. Kami dapat mendemonstrasikan cara kerja tee sebagai berikut:

echo "Testing how tee command works" | tee file1 

Filter file atau teks biasanya digunakan dengan pipa untuk operasi file Linux yang efektif, untuk memproses informasi dengan cara yang ampuh seperti merestrukturisasi output perintah (ini penting untuk menghasilkan laporan Linux yang berguna), memodifikasi teks dalam file ditambah beberapa administrasi sistem Linux lainnya tugas.

Untuk mempelajari lebih lanjut tentang filter dan pipa Linux, baca artikel ini Temukan 10 Alamat IP Teratas yang Mengakses Server Apache, menunjukkan contoh berguna dalam menggunakan filter dan pipa.

Pada artikel ini, kami menjelaskan dasar-dasar pengalihan I/O di Linux. Ingatlah untuk membagikan pemikiran Anda melalui bagian umpan balik di bawah.