Jika kita sudah memiliki beberapa pengertian tentang pohon direktori GNU / Linux, kita setidaknya harus terbiasa dengan / dev / reference, yang secara efektif di mana semua file yang terkait dengan perangkat keras.
Jika kita lihat di direktori / dev / kita akan melihat "file" bernama nol, tetapi jika kita ingin membukanya untuk melihat isinya, sistem akan memberi tahu kita bahwa itu tidak mungkin karena ini bukan konten biasa. Saya telah melampirkan file kata karena, seperti yang Anda ketahui untuk Linux, segala sesuatu (perangkat keras dan perangkat lunak) direpresentasikan sebagai file. |
Perangkat apa yang cocok dengan / dev / null?
Untuk tujuan praktis, bayangkan tempat sampah, lubang tanpa dasar, atau luar angkasa untuk membuang apa pun tanpa kemungkinan mendapatkannya kembali (tidak peduli seberapa keras orang-orang dari NASA mencoba).
Tetapi jika saya sudah memiliki perintah seperti rm, mengapa saya ingin menghapus sesuatu yang baru?
Karena cara kerja kedua "lubang hitam" sama sekali berbeda: bagaimana Anda akan menimpa keluaran standar dari kesalahan dalam sebuah perintah dalam skrip shell saat runtime? Di sinilah / dev / null masuk.
Mari kita lihat dengan sebuah contoh.
Kami telah membuat file bernama tes yang berisi string "Hello World". Jika kami ingin merepresentasikan konten file tersebut pada baris perintah, kami dapat melakukannya dengan cara berikut:
pengguna @ laptop: ~ $ cat test
Halo Dunia
Jika file tidak ada atau dinamai sebagai tes (dengan 's' di akhir), kita akan mendapatkan kesalahan berikut di konsol:
pengguna @ laptop: ~ $ tes kucing
cat: tes: File atau direktori tidak ada
Apa yang dapat kami lakukan untuk menghindari pesan kesalahan? Nah, cukup arahkan output dari perintah, jika terjadi kesalahan, ke "tong sampah", yaitu ke / dev / null
Bagaimana kami menentukannya jika terjadi kesalahan? Di sini Anda memasukkan nilai input, output, dan kesalahan standar untuk program: STDIN, STDOUT, dan STDERR (yang masing-masing dapat diganti dengan 0, 1, dan 2). Dengan cara ini, jika kita menempatkan ...
pengguna @ laptop: ~ $ cat tes 2> / dev / null
pengguna @ laptop: ~ $
… Kami akan melihat bahwa pesan kesalahan tidak akan dibuat di konsol.
Anda harus berhati-hati karena sintaksnya penting: antara karakter 2 dan> tidak boleh ada spasi. Jika tidak, itu akan memberikan yang berikut:
pengguna @ laptop: ~ $ cat tes 2> / dev / null
cat: tes: File atau direktori tidak ada
cat: 2: File atau direktori tidak ada
Sebaliknya, spasi antara> dan / dev / null tidak akan berdampak negatif pada hasil.
Kami juga dapat menggunakan pengalihan kesalahan, misalnya, untuk menangkap kesalahan dalam file log sebagai berikut:
pengguna @ laptop: ~ $ cat tes 2> err.log
Kasus menarik lainnya adalah kumpulan hasil di file lain selama kesalahan tidak terjadi, yang akan kami masukkan:
pengguna @ laptop: ~ $ cat test 1> output_result 2> err.log
Akhirnya, ada baiknya meletakkan ekspresi «> / dev / null 2> & 1» di mana output standar dan output kesalahan digabungkan, mengarahkannya kembali sehingga informasi output tidak diperoleh.
Ah, tapi salah satu utilitas yang paling sering digunakan yang / dev / null tidak ada, yaitu mengosongkan file: $ cat / dev / null> file.log Dengan cara ini, file file.log akan kosong. Tambahkan itu!
Justru itulah penjelasan yang dia cari.
Saya mendukung gerakan untuk menambahkannya =)
Saludos!
Halo, pertama-tama artikelnya sangat bagus! yang kedua saya ingin menyumbangkan sesuatu dengan tautan ini tentang subjek cron job di php dari Cpanel dan selamat ketiga untuk blognya!
Artikel bagus tentang dev / null, sayang sekali saya pikir saya keliru berkomentar di tempat yang salah sebelumnya! saya minta maaf
baik kontribusi terima kasih
Salam saya mendapatkan serangan nol. Saya menggunakan andrirc dan saya mendapatkan private dari nama panggilan saya dengan kata Null. 2 detik kemudian program ditutup Saya telah membaca dan dari apa yang saya lihat ini hanya dapat dilakukan oleh Shell, bukan orang luar. Saya telah mencoba untuk mengabaikan diri saya sendiri / mengabaikan -lrpcntikd dan Tidak ada yang mengejutkan saya, perintah terus datang. Jika Anda memiliki cara untuk mencoba memblokirnya, saya akan sangat menghargainya. Bersulang
Apa yang terjadi jika saat mengeksekusi kalimat simbol> tidak ditempatkan?
Bisakah seseorang membimbing saya?
Selamat pagi, saya telah menginstal Debian netinst di ACER Extensa 5620Z – 32 bit. Setelah instalasi dari USB selesai dan flashdisk dilepas sehingga boot dari hard disk (jangan instal ulang dari pena) tetapi pada saat boot sistem dia bertanya kepada saya:
login debian: xxxxxxxxx (ok)
Kata sandi: xxxxxxxxx (oke)
nihil@debian:~$ ???? apa ini? Apa yang harus saya taruh di sana?
Tanpa perintah ini saya tidak dapat melanjutkan boot sistem.
Bisakah kamu membantuku? Saya tidak tahu bagaimana saya harus melanjutkan.
Terima kasih banyak. Salam Hormat.