GNU/Linux >> Belajar Linux >  >> Linux

Pengalihan Input/Output di Linux/Unix

Apa itu Pengalihan?

Pengalihan adalah fitur di Linux sehingga ketika menjalankan perintah, Anda dapat mengubah perangkat input/output standar. Alur kerja dasar dari setiap perintah Linux adalah perintah tersebut mengambil input dan memberikan output.

Jenis Pengalihan

1. Timpa

  • “>” Perangkat input (stdin) standar adalah keyboard.
  • “<” Perangkat keluaran standar (stdout) adalah layar.

2. Menambahkan

  • “>>” keluaran standar
  • “<<” masukan standar

3. Gabungkan

  • “p> &q” Menggabungkan output dari aliran p dengan aliran q
  • “p <&q” Menggabungkan input dari aliran p dengan aliran q
Pengalihan Output

‘> ' simbol digunakan untuk pengalihan keluaran (STDOUT).

Contoh:

ls -al > listings

Di sini output dari perintah ls -al diarahkan kembali ke file "daftar" alih-alih layar Anda.

Catatan :“Gunakan nama file yang benar saat mengarahkan output perintah ke file. Jika ada file yang sudah ada dengan nama yang sama, perintah redirect akan menghapus konten file tersebut dan mungkin akan ditimpa.”

— Jika Anda tidak ingin file ditimpa tetapi ingin menambahkan lebih banyak konten ke file yang ada, maka Anda harus menggunakan ‘>> ‘operator.

— Anda dapat mengarahkan output standar, tidak hanya ke file, tetapi juga perangkat!

cat music.mp3 > /dev/audio

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

Pengalihan masukan

‘< ' simbol digunakan untuk pengalihan input (STDIN)

Ini akan melampirkan file dengan email, dan itu akan dikirim ke penerima.

“News Today” adalah Subjek E-mail, “[email protected]” adalah alamat E-mail dan “NewsFlash” adalah File Lampiran.

Contoh-contoh di atas sangat sederhana. Mari kita lihat beberapa teknik re-direction tingkat lanjut yang menggunakan File Descriptors.

Descriptor File (FD)

Di Linux/Unix, semuanya adalah file. File biasa, Direktori, dan bahkan Perangkat adalah file. Setiap File memiliki nomor terkait yang disebut File Descriptor (FD).

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

Pengalihan Kesalahan

Setiap kali Anda menjalankan program/perintah di terminal, 3 file selalu terbuka, yaitu, input standar, output standar, kesalahan standar.

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

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

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

Mengapa Pengalihan Kesalahan?

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

Pengguna UNIX yang sering akan menganggap bahwa banyak perintah memberi Anda sejumlah besar kesalahan.

  • Misalnya, saat mencari file, seseorang biasanya mendapatkan kesalahan izin yang ditolak. Kesalahan ini biasanya tidak membantu orang yang mencari file tertentu.
  • Saat menjalankan skrip shell, Anda sering TIDAK ingin pesan kesalahan mengacaukan output program normal.

Solusinya adalah mengarahkan ulang pesan kesalahan ke file.

Contoh 1

 myprogram 2>errorsfile

Di atas kita sedang mengeksekusi nama program myprogram.

Deskriptor file untuk kesalahan standar adalah 2.

Menggunakan "2>" kami mengarahkan ulang output kesalahan ke file bernama "errorfile"

Dengan demikian, keluaran program tidak dipenuhi kesalahan.

Contoh 2

Berikut adalah contoh lain yang menggunakan pernyataan find –

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

Menggunakan "temukan ”, kita mencari “. ” direktori saat ini untuk file dengan “nama ” dimulai dengan “saya

Contoh 3

Jadi Mari kita lihat contoh yang lebih kompleks,

Administrator Server sering, membuat daftar direktori dan menyimpan kesalahan dan keluaran standar ke dalam file, yang dapat diproses nanti. Ini perintahnya.

ls Documents ABC> dirlist 2>&1

Di sini,

  • yang menulis output dari satu file ke input file lain. 2>&1 berarti STDERR dialihkan ke target STDOUT (yang merupakan direktori file)
  • Kami mengarahkan keluaran kesalahan ke keluaran standar yang pada gilirannya diarahkan kembali ke daftar direktori file. Oleh karena itu, kedua output ditulis ke file dirlist

Ringkasan

  • Setiap file di Linux memiliki File Descriptor terkait yang terkait dengannya
  • Keyboard adalah perangkat input standar sedangkan layar Anda adalah perangkat output standar
  • “>” adalah operator pengalihan output. ">>" menambahkan output ke file yang ada
  • “<” adalah operator pengalihan input
  • “>&”mengarahkan ulang output dari satu file ke file lain.
  • Anda dapat mengarahkan ulang kesalahan menggunakan File Descriptor 2 yang sesuai.

Linux
  1. Cara Menghitung baris dalam file di UNIX/Linux

  2. contoh perintah tail di UNIX/Linux

  3. Bagaimana cara menghapus setgid (linux/unix)?

  1. Mengarahkan output dari blok fungsi ke file di Linux

  2. Bagaimana cara mencetak keluaran perintah Linux ke file?

  3. Unix/Linux membatalkan penghapusan/memulihkan file yang dihapus

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

  2. Cara Menyimpan Output Perintah ke File di Linux

  3. Cara Mengarahkan Output ke File dan Stdout di Linux