Ketahui asas bagaimana Linux I/O (Input/Output) Kerja Pengalihan

Ketahui asas bagaimana Linux I/O (Input/Output) Kerja Pengalihan

Salah satu topik yang paling penting dan menarik di bawah pentadbiran Linux ialah pengalihan I/O. Ciri baris arahan ini membolehkan anda mengalihkan input dan/atau output arahan dari dan/atau ke fail, atau menyertai pelbagai arahan bersama menggunakan paip untuk membentuk apa yang dikenali sebagai "Paip Perintah".

Semua arahan yang kami jalankan secara asasnya menghasilkan dua jenis output:

  1. hasil arahan - data program ini direka untuk menghasilkan, dan
  2. Status program dan mesej ralat yang memberitahu pengguna perincian pelaksanaan program.

Di Linux dan sistem seperti Unix yang lain, terdapat tiga fail lalai yang dinamakan di bawah yang juga dikenal pasti oleh shell menggunakan nombor deskriptor fail:

  1. stdin atau 0 - Ia disambungkan ke papan kekunci, kebanyakan program membaca input dari fail ini.
  2. stdout atau 1 - Ia dilampirkan ke skrin, dan semua program menghantar hasilnya ke fail ini dan
  3. stderr atau 2 - program menghantar mesej status/ralat ke fail ini yang juga dilampirkan ke skrin.

Oleh itu, pengalihan I/O membolehkan anda mengubah sumber input arahan serta di mana mesej output dan ralatnya dihantar ke. Dan ini dimungkinkan oleh "<” dan ">" pengendali pengalihan.

Cara mengalihkan output standard ke fail di linux

Anda boleh mengalihkan output standard seperti dalam contoh di bawah, di sini, kami ingin menyimpan output perintah atas untuk pemeriksaan kemudian:

$ top -bn 5> atas.log 

Di mana bendera:

  1. -b - membolehkan Atas untuk dijalankan dalam mod batch, supaya anda dapat mengalihkan outputnya ke fail atau arahan lain.
  2. -n - Menentukan bilangan lelaran sebelum arahan ditamatkan.

Anda boleh melihat kandungan Atas.log fail menggunakan arahan CAT seperti berikut:

$ kucing atas.log 

Untuk menambahkan output arahan, gunakan ">>" pengendali.

Contohnya untuk menambahkan output arahan atas di atas di Atas.log Fail terutamanya dalam skrip (atau pada baris arahan), masukkan baris di bawah:

$ top -bn 5 >> atas.log 

Catatan: Menggunakan nombor deskriptor fail, perintah redirect output di atas adalah sama seperti:

$ top -bn 5 1> atas.log 

Cara mengalihkan ralat standard untuk memfailkan di linux

Untuk mengalihkan ralat standard perintah, anda perlu menentukan dengan jelas nombor deskriptor fail, 2 untuk shell memahami apa yang anda cuba lakukan.

Contohnya arahan LS di bawah akan menghasilkan ralat apabila dilaksanakan oleh pengguna sistem biasa tanpa keistimewaan root:

$ ls -l /root / 

Anda boleh mengalihkan ralat standard ke fail seperti di bawah:

$ ls -l / root / 2> ls -error.Log $ Cat LS-EROR.log 
Mengalihkan ralat standard ke fail

Untuk menambahkan ralat standard, gunakan arahan di bawah:

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

Cara mengalihkan output/ ralat standard ke satu fail

Ia juga mungkin untuk menangkap semua output arahan (kedua -dua output standard dan ralat standard) ke dalam satu fail. Ini boleh dilakukan dalam dua cara yang mungkin dengan menentukan nombor deskriptor fail:

1. Yang pertama adalah kaedah yang agak lama yang berfungsi seperti berikut:

$ ls -l / root /> ls -error.Log 2> & 1 

Perintah di atas bermaksud shell terlebih dahulu akan menghantar output arahan LS ke fail LS-ERROR.log (Menggunakan > LS-ERROR.log), dan kemudian menulis semua mesej ralat ke deskriptor fail 2 (output standard) yang telah dialihkan ke fail LS-ERROR.log (Menggunakan 2> & 1). Menyiratkan bahawa ralat standard juga dihantar ke fail yang sama dengan output standard.

2. Kaedah kedua dan langsung ialah:

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

Anda juga boleh menambah output standard dan ralat standard ke satu fail seperti SO:

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

Cara mengalihkan input standard ke fail

Kebanyakan jika tidak semua arahan mendapatkan input mereka dari input standard, dan secara input standard lalai dilampirkan ke papan kekunci.

Untuk mengalihkan input standard dari fail selain papan kekunci, gunakan "<” pengendali seperti di bawah:

$ kucing   Mengalihkan input standard ke fail 

Cara mengalihkan input/output standard ke fail

Anda boleh melakukan input standard, pengalihan output standard pada masa yang sama menggunakan perintah sort seperti di bawah:

Sort $ sort.pengeluaran 

Cara Menggunakan Pengalihan I/O Menggunakan Paip

Untuk mengalihkan output satu arahan sebagai input yang lain, anda boleh menggunakan paip, ini adalah cara yang kuat untuk membina baris arahan berguna untuk operasi kompleks.

Sebagai contoh, arahan di bawah akan menyenaraikan lima fail teratas yang diubah suai baru -baru ini.

$ ls -lt | kepala -n 5 

Di sini, pilihan:

  1. -L - membolehkan format penyenaraian panjang
  2. -t - Sort dengan masa pengubahsuaian dengan fail terbaru ditunjukkan terlebih dahulu
  3. -n - Menentukan bilangan baris header untuk ditunjukkan

Perintah penting untuk membina saluran paip

Di sini, kami akan mengkaji secara ringkas dua arahan penting untuk membina saluran paip arahan dan mereka adalah:

Xargs yang digunakan untuk membina dan melaksanakan baris arahan dari input standard. Berikut adalah contoh saluran paip yang menggunakan Xargs, Perintah ini digunakan untuk menyalin fail ke dalam pelbagai direktori di Linux:

$ echo/home/aaronkilik/test//home/aaronkilik/tmp | xargs -n 1 cp -v/home/aaronkilik/bin/sys_info.sh 
Salin fail ke pelbagai direktori

Dan pilihan:

  1. -n 1 - Mengarahkan Xargs untuk menggunakan paling banyak satu argumen setiap baris arahan dan hantar ke arahan CP
  2. cp - menyalin fail
  3. -v - memaparkan kemajuan arahan salinan.

Untuk lebih banyak pilihan penggunaan dan maklumat, baca melalui Xargs Halaman lelaki:

$ man xargs 

A tee Perintah dibaca dari input standard dan menulis ke output dan fail standard. Kita dapat menunjukkan bagaimana tee berfungsi seperti berikut:

$ echo "Menguji Bagaimana Perintah Tee berfungsi" | TEE FILE1 
Contoh arahan tee

Penapis fail atau teks biasanya digunakan dengan paip untuk operasi fail Linux yang berkesan, untuk memproses maklumat dengan cara yang berkuasa seperti penstrukturan semula output arahan (ini boleh menjadi penting untuk penjanaan laporan Linux yang berguna), mengubah teks dalam fail ditambah beberapa pentadbiran sistem Linux lain tugas.

Untuk mengetahui lebih lanjut mengenai penapis dan paip Linux, baca artikel ini Cari 10 alamat IP teratas yang mengakses pelayan Apache, menunjukkan contoh berguna menggunakan penapis dan paip.

Dalam artikel ini, kami menjelaskan asas -asas pengalihan I/O di Linux. Ingatlah untuk berkongsi pendapat anda melalui bahagian maklum balas di bawah.