Apa itu /dev/null dan Bagaimana Cara Menggunakannya

What Is Dev Null How Use It



Linux adalah sistem operasi menarik yang menampung beberapa perangkat virtual untuk berbagai tujuan. Sejauh menyangkut program yang berjalan di sistem, perangkat virtual ini bertindak seolah-olah mereka adalah file nyata. Alat dapat meminta dan memasukkan data dari sumber ini. Data dihasilkan oleh OS alih-alih membacanya dari disk.

Salah satu contohnya adalah /dev/null. Ini adalah file khusus yang ada di setiap sistem Linux. Namun, tidak seperti kebanyakan file virtual lainnya, alih-alih membaca, ini digunakan untuk menulis. Apa pun yang Anda tulis ke /dev/null akan dibuang, dilupakan ke dalam kehampaan. Ini dikenal sebagai perangkat nol dalam sistem UNIX.







Mengapa Anda ingin membuang sesuatu ke dalam kehampaan? Mari kita lihat apa itu /dev/null dan penggunaannya.



Prasyarat

Sebelum menyelam jauh ke dalam penggunaan /dev/null, kita harus memiliki pemahaman yang jelas tentang stdout dan stderr aliran data. Lihat ini panduan mendalam tentang stdin , stderr , dan stdout .



Mari kita menyegarkan diri dengan cepat. Setiap kali utilitas baris perintah dijalankan, itu menghasilkan dua output. Keluarannya menuju ke stdout dan kesalahan (jika dihasilkan) menjadi stderr . Secara default, kedua aliran data ini terkait dengan terminal.





Misalnya, perintah berikut akan mencetak string dalam tanda kutip ganda. Di sini, output disimpan di stdout .

$dibuangHalo Dunia



Perintah selanjutnya akan menunjukkan kepada kita status keluar dari perintah yang dijalankan sebelumnya.

$dibuang $?

Karena perintah sebelumnya berhasil dijalankan, status keluar adalah 0. Jika tidak, status keluar akan berbeda. Apa yang terjadi ketika Anda mencoba menjalankan perintah yang tidak valid?

$adfadsf
$dibuang $?

Sekarang, kita perlu tahu tentang deskriptor file. Dalam ekosistem UNIX, ini adalah nilai integer yang ditetapkan ke file. Keduanya stdout (deskriptor file = 1) dan stderr (deskriptor file = 2) memiliki deskriptor file tertentu. Menggunakan deskriptor file (1 dan 2 dalam situasi ini), kita dapat mengarahkan ulang stdout dan stderr ke file lain.

Sebagai permulaan, contoh berikut akan mengarahkan stdout dari perintah echo ke file teks. Di sini, kami tidak menentukan deskriptor file. Jika tidak ditentukan, bash akan menggunakan stdout secara default.

$dibuangHalo Dunia>log.txt

Perintah berikut akan mengarahkan stderr ke file teks.

$asdfadsa2>error.txt

Menggunakan /dev/null

Mengarahkan output ke /dev/null

Sekarang, kita siap mempelajari cara menggunakan /dev/null. Pertama, mari kita lihat cara memfilter keluaran dan kesalahan normal. Pada perintah berikut, grep akan mencoba mencari string (halo, dalam hal ini) di direktori /sys.

$pegangan -RHalo/sistem/

Namun, itu akan menghasilkan banyak kesalahan karena tanpa hak akses root, grep tidak dapat mengakses sejumlah file. Dalam kasus seperti itu, itu akan menghasilkan kesalahan Izin ditolak. Sekarang, dengan menggunakan redirection, kita bisa mendapatkan output yang lebih jelas.

$pegangan -RHalo/sistem/ 2> /dev/batal

Outputnya terlihat jauh lebih baik, bukan? Tidak! Dalam hal ini, grep tidak memiliki akses ke banyak file dan file yang dapat diakses tidak memiliki string hello.

Dalam contoh berikut, kami akan melakukan ping ke Google.

$pingGoogle com

Namun, kami tidak ingin melihat semua hasil ping yang berhasil. Sebagai gantinya, kami hanya ingin fokus pada kesalahan saat ping tidak dapat menjangkau Google. Bagaimana kita melakukannya?

$pingGoogle com1> /dev/batal

Berikut isi dari stdout dibuang ke /dev/null, hanya menyisakan kesalahan.

Arahkan ulang semua output ke /dev/null

Dalam situasi tertentu, output mungkin tidak berguna sama sekali. Menggunakan redirection, kita bisa membuang semua output ke dalam kekosongan.

$pegangan -RHalo/sistem/ > /dev/batal2> &1

Mari kita hancurkan perintah ini sedikit. Pertama, kami membuang semua stdout ke /dev/null. Kemudian, di bagian kedua, kami memberi tahu bash untuk mengirim stderr ke stdout . Dalam contoh ini, tidak ada yang dihasilkan. Namun, jika Anda bingung, Anda selalu dapat memeriksa apakah perintah tersebut berhasil dijalankan.

$dibuang $?

Nilainya 2 karena perintah menghasilkan banyak kesalahan.

Jika Anda cenderung lupa deskriptor file dari stdout dan stderr , perintah berikut akan baik-baik saja. Ini adalah format yang lebih umum dari perintah sebelumnya. Keduanya stdout dan stderr akan dialihkan ke /dev/null.

$pegangan -RHalo/sistem/ &> /dev/batal

Contoh lainnya

Yang satu ini menarik. Ingat alat dd? Ini adalah alat yang ampuh untuk mengonversi dan menyalin file. Pelajari selengkapnya tentang dd. Menggunakan dd, kami dapat menguji kecepatan baca berurutan dari disk Anda. Tentu saja, itu bukan pengukuran yang akurat. Namun, untuk tes cepat, ini cukup berguna.

$DD jika=<file_besar> dari=/dev/batalstatus= kemajuanbs=1Miflag= langsung

Di sini, saya telah menggunakan Ubuntu 18.04.4 ISO sebagai file besar.

Demikian pula, Anda juga dapat menguji kecepatan unduh koneksi internet Anda.

$wget -ATAU /dev/batal<big_file_link>

Pikiran terakhir

Mudah-mudahan, Anda memiliki pemahaman yang jelas tentang apa file /dev/null ini. Ini adalah perangkat khusus yang, jika ditulis, dibuang dan jika dibaca dari, membaca nol. Potensi sebenarnya dari fitur menarik ini ada pada skrip bash yang menarik.

Apakah Anda tertarik dengan skrip bash? Periksa panduan pemula untuk bash scripting .

Menikmati!