Bash - mengalihkan output standard dan ralat standard ke fail yang sama

Bash - mengalihkan output standard dan ralat standard ke fail yang sama

The Bash Shell adalah shell yang paling popular di sistem linux, dan menggunakan shell dengan cekap, anda memerlukan sedikit pengetahuan mengenai pengalihan shell bash. Ini juga merupakan langkah penting dalam mempelajari skrip bash.

Dalam panduan ini, kami akan menunjukkan cara mengalihkan output standard dan ralat standard ke fail yang sama pada baris perintah shell bash. Ini termasuk beberapa contoh supaya anda boleh memilih kaedah yang betul dalam sebarang senario.

Dalam tutorial ini anda akan belajar:

  • Cara mengalihkan output standard dan ralat standard ke fail yang sama
  • Cara mengalihkan output standard dan ralat standard ke fail dan terminal
  • Cara mengalihkan output standard dan ralat standard ke /dev /null
Pelbagai contoh bash untuk mengalihkan output standard dan ralat standard ke fail yang sama Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Mana -mana distro Linux
Perisian Shell bash
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Mengalihkan output standard dan ralat standard



Mari kita tutup terlebih dahulu cara mengalihkan output standard ke fail. Sekiranya anda sudah mempunyai asas -asas bash ini, jangan ragu untuk melangkah ke hadapan untuk perintah contoh.

Anda biasanya menggunakan > untuk pengalihan, dan untuk ditambahkan ke fail yang ada, anda akan menggunakan >>.

$ echo "linuxconfig.org "> fail baru.txt dan $ echo "linuxconfig.org ">> fail sedia ada.txt 

Dengan arahan ini, output standard akan diarahkan ke fail, dan ralat standard ditunjukkan pada skrin anda. Sekiranya anda baru ke Linux, "output standard" hanyalah output biasa, yang diharapkan dari menjalankan arahan atau skrip, dan "ralat standard" adalah sebarang mesej ralat yang berlaku.

Untuk mengalihkan ralat standard, kita boleh menggunakan 2>. Ini akan menjadikan output standard muncul di skrin kami, dan menghantar semua mesej ralat ke fail.

$ echo "linuxconfig.org "2> fail baru.txt 

Dengan asas -asas, kami sekarang akan merangkumi pelbagai contoh arahan untuk mengalihkan output standard dan ralat standard ke fail yang sama.

  1. Untuk mengalihkan output standard dan ralat standard ke fail yang sama, gunakan sintaks perintah berikut. Khususnya, tambah 2> & 1 hingga akhir arahan biasa anda.
    $ echo "linuxconfig.org "> fail baru.txt 2> & 1 


  2. Cara yang sedikit lebih mudah untuk mencapai fungsi ini adalah dengan &> pengendali. Perhatikan bahawa ini berfungsi dengan baik di bash dan zsh, tetapi bukan cangkang lain, jadi gunakan contoh sebelumnya untuk keserasian maksimum dengan sistem lain.
    $ echo "linuxconfig.org "&> fail baru.txt 
  3. Untuk menambah output standard dan ralat standard ke fail yang sudah ada, gunakan sintaks yang sama di atas, tetapi dengan >> pengendali pengalihan.
    $ echo "linuxconfig.org ">> fail sedia ada.txt 2> & 1 
  4. Untuk menindas output standard dan ralat standard dari terminal anda, dan elakkan menjana fail juga, anda boleh mengalihkan kedua -dua mereka /dev/null.
    $ echo "linuxconfig.org "> /dev /null 2> & 1 
  5. Untuk mengalihkan output standard ke satu fail, dan mengalihkan ralat standard ke fail yang berbeza, gunakan sintaks berikut.
    $ echo "linuxconfig.org "2> std-err.txt 1> std-out.txt 


  6. Sekiranya anda ingin mengalihkan output standard dan ralat standard ke fail yang sama, sementara juga melihatnya di terminal anda, kami boleh mendapatkan sedikit bantuan dari tee perintah.
    $ echo "linuxconfig.org "2> & 1 | TEE File baru.txt 
  7. Sekiranya anda ingin melihat output standard dan ralat standard pada skrin anda, sementara menambahkan mereka ke fail yang sama, kita boleh menggunakan -a (tambah) pilihan dengan tee.
    $ echo "linuxconfig.org "2> & 1 | tee -a fail sedia ada.txt 

Pemikiran penutupan

Dalam panduan ini, kita melihat bagaimana untuk mengalihkan output standard dan ralat standard ke fail yang sama di Bash. Ini termasuk beberapa pengendali bash yang berbeza, bergantung kepada sama ada kita mahu membuat fail baru atau tambahan ke fail yang ada. Kami juga belajar bagaimana menggunakan tee perintah untuk melihat output standard dan ralat standard di terminal kami sementara juga menulisnya ke fail. Anda kini pakar dalam mengalihkan output standard dan ralat standard ke fail di bash, dan jauh lebih dekat untuk menguasai shell sepenuhnya.

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Menguasai Gelung Skrip Bash
  • Gelung bersarang dalam skrip bash
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Ubuntu 20.04 Panduan
  • Cara Dual Boot Kali Linux dan Windows 10
  • Perkara yang perlu dipasang di Ubuntu 22.04
  • Tutorial Debugging GDB untuk Pemula