Apa itu / dev / null dan apa manfaatnya bagi Anda?

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.

Ini adalah kontribusi dari Daniel Durante, sehingga menjadi salah satu pemenang kompetisi mingguan kami: «Bagikan apa yang Anda ketahui tentang Linux«. Selamat Daniel!

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.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Guido Ignatius Ignatius dijo

    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!

    1.    Eduardo H. dijo

      Justru itulah penjelasan yang dia cari.
      Saya mendukung gerakan untuk menambahkannya =)

      Saludos!

  2.   Pablo dijo

    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!

  3.   Pablo dijo

    Artikel bagus tentang dev / null, sayang sekali saya pikir saya keliru berkomentar di tempat yang salah sebelumnya! saya minta maaf

  4.   anonim dijo

    baik kontribusi terima kasih

  5.   kaus dijo

    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

  6.   Sofia martinez dijo

    Apa yang terjadi jika saat mengeksekusi kalimat simbol> tidak ditempatkan?

    Bisakah seseorang membimbing saya?

  7.   Nol dijo

    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.