Pengalihan Output Input di Contoh Linux/Unix

⚡ Ringkasan Cerdas

Pengalihan (redirection) di Linux dan Unix mengubah tempat suatu perintah membaca input atau mengirim output, atau menukarnya.ping Papan ketik dan layar untuk file atau perangkat yang menggunakan operator seperti tanda lebih besar dari, tanda kurang dari, dan operator tambah.

  • 🔀 Pengalihan: Pengalihan mengubah input atau output standar suatu perintah dari keyboard dan layar ke file atau perangkat.
  • ➡️ Keluaran: Operator > menulis output ke file, sedangkan >> menambahkan ke file yang sudah ada tanpa menghapusnya.
  • ⬅️ Memasukkan: Operator < memasukkan sebuah file ke dalam perintah sebagai input standar, bukan melalui keyboard.
  • 🔢 Deskriptor berkas: Setiap file yang dibuka akan diberi nomor: 0 untuk stdin, 1 untuk stdout, dan 2 untuk stderr.
  • ⚠️ Pengalihan kesalahan: Menggunakan 2> mengirimkan pesan kesalahan ke file terpisah sehingga tidak mengacaukan output normal.
  • 🔗 Aliran gabungan: Sintaks 2>&1 mengarahkan kesalahan standar ke target yang sama dengan output standar.
  • 🤖 Bantuan AI: Asisten AI dan GitHub Copilot dapat membangun dan menjelaskan perintah pengalihan dan skrip shell.

Pengalihan Input Output di Linux dan Unix dengan contoh

Pengalihan adalah salah satu fitur yang paling berguna dari Linux dan shell Unix, karena memungkinkan Anda memutuskan ke mana sebuah perintah membaca inputnya dan mengirimkan outputnya. Halaman ini menjelaskan pengalihan output, input, dan error dengan contoh-contoh yang telah dikerjakan.

Apa itu Pengalihan?

Pengalihan (redirection) adalah fitur di Linux yang memungkinkan Anda mengubah perangkat input dan output standar saat menjalankan perintah. Alur kerja dasar dari setiap perintah adalah sebagai berikut: perintah Linux Artinya, ia menerima input dan memberikan output.

  • Perangkat input standar (stdin) adalah keyboard.
  • Perangkat keluaran standar (stdout) adalah layar.

Dengan pengalihan, input dan output standar di atas dapat diubah.

Pengalihan Keluaran

Grafik di bawah ini menandai awal contoh pengalihan output.

Grafik judul bagian pengalihan keluaran

Simbol ">" digunakan untuk pengalihan output (STDOUT).

Contoh:

ls -al > listings

Di sini, output dari perintah ls -al dialihkan ke file "listings" alih-alih ke layar Anda. Tangkapan layar di bawah menunjukkan hasilnya.

Terminal menampilkan daftar ls -al yang dialihkan ke file listings.

Catatan: Gunakan nama file yang benar saat mengalihkan output perintah ke file. Jika file dengan nama yang sama sudah ada, perintah yang dialihkan akan menghapus isinya lalu menimpanya.

Jika Anda tidak ingin file ditimpa tetapi ingin menambahkan konten ke file yang sudah ada, gunakan operator '>>'. Tangkapan layar di bawah menunjukkan konten yang ditambahkan dengan '>>'.

Terminal menampilkan output perintah yang ditambahkan ke file yang sudah ada dengan operator lebih besar dari ganda.

Anda dapat mengalihkan output standar tidak hanya ke file, tetapi juga ke perangkat.

$ cat music.mp3 > /dev/audio

Perintah cat membaca file musik.mp3 dan mengirimkan output ke /dev/audio, yang merupakan perangkat audio. Jika konfigurasi suara di PC Anda benar, perintah ini akan memutar file musik.mp3.

Pengalihan masukan

Grafik di bawah ini memperkenalkan pengalihan input.

Grafik judul bagian pengalihan input

Simbol '<' digunakan untuk pengalihan input (STDIN).

Contoh: Program email di Linux dapat membantu Anda mengirim email dari terminal.

Anda dapat mengetik isi email menggunakan keyboard, perangkat input standar. Namun, jika Anda ingin melampirkan file ke email, Anda dapat menggunakan operator pengalihan input dalam format berikut.

mail -s "Subject" to-address < Filename

Tangkapan layar di bawah ini menunjukkan perintah mail yang membaca sebuah file sebagai inputnya.

Perintah mail menggunakan pengalihan input untuk melampirkan file ke email.

Ini melampirkan file ke email, dan email tersebut dikirim ke penerima.

Contoh-contoh di atas sederhana. Sekarang mari kita lihat beberapa teknik pengalihan tingkat lanjut yang memanfaatkan deskriptor file.

File Descriptatau (FD)

Di Linux dan Unix, semuanya adalah berkas. Berkas biasa, direktori, dan bahkan perangkat adalah berkas. Setiap berkas memiliki nomor terkait yang disebut deskriptor berkas (FD).

Diagram di bawah ini menunjukkan aliran standar dan deskriptor file-nya.

Diagram dari aliran input, output, dan error standar beserta deskriptor file-nya.

Layar Anda juga memiliki deskriptor file. Ketika sebuah program dijalankan, output dikirim ke deskriptor file layar, dan Anda melihat output program di monitor Anda. Jika output dikirim ke deskriptor file printer, output program akan dicetak.

Pengalihan Kesalahan

Setiap kali Anda menjalankan program atau perintah di terminal, tiga file selalu terbuka, yaitu input standar, output standar, dan error standar.

File-file ini selalu ada setiap kali sebuah program dijalankan. Seperti yang dijelaskan sebelumnya, deskriptor file dikaitkan dengan setiap file ini.

File File Descriptor
STDIN Masukan Standar 0
STDOUT Keluaran Standar 1
Kesalahan Standar STDERR 2

Secara default, aliran kesalahan ditampilkan di layar. Pengalihan kesalahan mengarahkan kesalahan ke file selain layar.

Mengapa Pengalihan Kesalahan?

Pengalihan kesalahan adalah salah satu fitur yang sangat populer di Unix dan Linux.

Pengguna Unix yang sering menggunakan pasti tahu bahwa banyak perintah menghasilkan banyak sekali kesalahan. Misalnya, saat mencari file, biasanya akan muncul pesan kesalahan. izin Kesalahan yang ditolak biasanya tidak membantu orang yang mencari file tertentu. Saat menjalankan skrip shell, Anda seringkali tidak ingin pesan kesalahan mengacaukan output program normal.

Solusinya adalah mengarahkan pesan kesalahan ke sebuah file.

Contoh 1

$ myprogram 2>errorsfile

Screenshot di bawah ini menunjukkan perintah ini di terminal.

Terminal menjalankan myprogram dengan kesalahan standar yang dialihkan ke file errorsfile.

Di atas, kita menjalankan program bernama myprogram. Deskriptor file untuk kesalahan standar adalah 2. Dengan menggunakan “2>”, kita mengarahkan output kesalahan ke file bernama “errorsfile”. Dengan demikian, output program tidak dipenuhi dengan kesalahan.

Contoh 2

Berikut contoh lain yang menggunakan pernyataan find.

find . -name 'my*' 2>error.log

Dengan menggunakan perintah find, kita mencari di direktori saat ini “.” untuk sebuah file yang namanya diawali dengan “my”, dan mengirimkan setiap kesalahan ke error.log.

Contoh 3: Mari kita lihat contoh yang lebih kompleks.

Administrator server sering kali membuat daftar direktori dan menyimpan output kesalahan serta output standar dalam sebuah file, yang dapat diproses kemudian. Berikut adalah perintahnya.

ls Documents ABC> dirlist 2>&1

Diagram di bawah ini menunjukkan kedua aliran data tersebut digabungkan dalam satu file.

Diagram keluaran standar dan kesalahan standar yang keduanya dialihkan ke file dirlist.

Sini:

  • 2>&1 berarti bahwa STDERR dialihkan ke target yang sama dengan STDOUT (yaitu daftar direktori file).
  • Output kesalahan dialihkan ke output standar, yang kemudian dialihkan lagi ke direktori file. Oleh karena itu, kedua aliran tersebut ditulis ke direktori file.

Diagram di bawah ini merangkum bagaimana input, output, dan pengalihan kesalahan saling terkait.

Diagram yang merangkum pengalihan input, output, dan kesalahan di Linux dan Unix.

Pertanyaan Umum Demo Slot

A pipa (|) mengirimkan output dari satu perintah langsung ke perintah lain sebagai inputnya. Pengalihan (redirection) menghubungkan perintah ke file atau perangkat, menulis output ke dalamnya atau membaca input darinya. Pipa (|) menggabungkan perintah; pengalihan menggabungkan perintah dengan file.

Operator > menulis output perintah ke dalam file, mengganti konten yang sudah ada. Operator >> menambahkan output ke akhir file, sehingga konten yang sudah ada tetap ada.ping apa yang sudah ada. Gunakan >> setiap kali Anda ingin menambahkan ke file, bukan menimpanya.

/dev/null adalah file khusus yang membuang semua yang ditulis ke dalamnya. Menambahkan 2>/dev/null ke sebuah perintah akan mengalihkan pesan kesalahan ke file tersebut, membuangnya secara diam-diam sehingga hanya output normal yang muncul di layar. Ini adalah cara umum untuk menyembunyikan pesan kesalahan yang tidak diinginkan.

Perintah `tee` membaca dari input standar dan menulis data ke layar dan satu atau lebih file sekaligus, misalnya `ls -al | tee listing.txt`. Perintah ini memungkinkan Anda menyimpan output perintah ke file sambil tetap melihatnya di layar.

Here document menggunakan operator << untuk memasukkan beberapa baris teks sebaris ke dalam perintah sebagai inputnya, yang diakhiri dengan kata penanda yang Anda pilih. Ini berguna dalam skrip shell untuk meneruskan input multi-baris, seperti isi email, tanpa file terpisah.

Gunakan sintaks 2>&1 setelah mengalihkan output, seperti pada perintah > file 2>&1, sehingga kesalahan standar mengikuti output standar ke dalam file. Di Bash modern, perintah singkat &> file melakukan hal yang sama. Urutan penting: letakkan 2>&1 setelah pengalihan output.

Asisten AI dapat mengubah permintaan dalam bahasa Inggris biasa menjadi perintah pengalihan yang benar, menjelaskan fungsi operator seperti 2>&1 atau &>, dan menandai kesalahan sebelum dijalankan. Alat pembelajaran mesin juga memindai file log dan kesalahan yang dialihkan untuk menemukan anomali yang mungkin terlewatkan oleh peninjauan manual.

Ya. Kopilot GitHub Dapat menghasilkan perintah dan skrip yang mengalihkan input, output, dan kesalahan dari komentar singkat yang menjelaskan tujuannya, dan menyelesaikannya saat Anda mengetik. RevPeriksa setiap perintah yang disarankan terhadap file Anda, terutama yang menggunakan > yang menimpa data yang sudah ada.

Ringkaslah postingan ini dengan: