Ketahui asas bagaimana Linux I/O (Input/Output) Kerja Pengalihan
- 1624
- 6
- Chris Little I
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:
- hasil arahan - data program ini direka untuk menghasilkan, dan
- 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:
- stdin atau 0 - Ia disambungkan ke papan kekunci, kebanyakan program membaca input dari fail ini.
- stdout atau 1 - Ia dilampirkan ke skrin, dan semua program menghantar hasilnya ke fail ini dan
- 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:
-b
- membolehkan Atas untuk dijalankan dalam mod batch, supaya anda dapat mengalihkan outputnya ke fail atau arahan lain.-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.logMengalihkan 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:
$ kucingMengalihkan 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.pengeluaranCara 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 5Di sini, pilihan:
-L
- membolehkan format penyenaraian panjang-t
- Sort dengan masa pengubahsuaian dengan fail terbaru ditunjukkan terlebih dahulu-n
- Menentukan bilangan baris header untuk ditunjukkanPerintah 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.shSalin fail ke pelbagai direktoriDan pilihan:
-n 1
- Mengarahkan Xargs untuk menggunakan paling banyak satu argumen setiap baris arahan dan hantar ke arahan CPcp
- menyalin fail-v
- memaparkan kemajuan arahan salinan.Untuk lebih banyak pilihan penggunaan dan maklumat, baca melalui Xargs Halaman lelaki:
$ man xargsA 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 FILE1Contoh arahan teePenapis 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.
- « Replikasi SYSVOL Persediaan di Dua Samba4 AD DC dengan RSYNC - Bahagian 6
- Perbezaan antara su dan sudo dan cara mengkonfigurasi sudo di linux »