Manajemen file

Apa itu /dev/null dan Bagaimana Cara Menggunakannya

Apa itu /dev/null dan Bagaimana Cara Menggunakannya
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 memberi umpan 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 panduan mendalam ini di stdin, stderr, dan stdout.

Mari 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 double. Di sini, output disimpan di stdout.

$ echo "Halo Dunia"

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

$ echo $?

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

$adfadsf
$ echo $?

Sekarang, kita perlu tahu tentang deskriptor file. Dalam ekosistem UNIX, ini adalah nilai integer yang ditetapkan ke file. Kedua 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.

$ echo “Halo Dunia” > log.txt

Perintah berikut akan mengarahkan stderr ke file teks.

$ asdfadsa 2> kesalahan.txt

Menggunakan /dev/null

Mengarahkan output ke /dev/null

Sekarang, kita siap untuk 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”.

$ grep -r halo /sys/

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.

$ grep -r halo /sys/ 2> /dev/null

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

Dalam contoh berikut, kami akan melakukan ping ke Google.

$ping google.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??

$ping google.com 1> /dev/null

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 pengalihan, kita dapat membuang semua output ke dalam kekosongan.

$ grep -r halo /sys/ > /dev/null 2>&1

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

$ echo $?

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. Kedua stdout dan stderr akan dialihkan ke /dev/null.

$ grep -r halo /sys/ &> /dev/null

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 = of=/dev/null status=progress bs=1M iflag=direct

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

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

$ wget -O /dev/null

Pikiran terakhir

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

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

Nikmati!

Cara Meningkatkan FPS di Linux?
FPS adalah singkatan dari Bingkai per detik. Tugas FPS adalah mengukur kecepatan bingkai dalam pemutaran video atau pertunjukan game. Dengan kata sede...
Game Lab Aplikasi Oculus Teratas
Jika Anda adalah pemilik headset Oculus maka Anda harus tahu tentang sideloading. Sideloading adalah proses menginstal konten non-toko di headset Anda...
10 Game Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform yang mendominasi untuk bermain game karena persentase besar dari game yang berkembang saat ini untu...