Banyak hal-hal baru yang bikin pusing jika kamu baru di dunia GNU/Linux. Salah satunya adanya simbol-simbol dalam perintah tertentu.

Jika kamu pernah bertemu skrip seperti ini:

$ grep -i 'abc' content 1>/dev/null 2&>1

Kamu mungkin akan bingung kenapa ada angka 1 dan 2 ? Lalu kenapa ada simbol > dan &? Dan apa itu /dev/null mengapa harus ditulis?

Kalau kamu ingin tau lebih, coba kamu buka terminal-mu dan jalankan perintah ini:

$ grep -i 'abc' content

Apa yang akan terjadi? Ya terminal akan memberikan output:

grep: content: No such file or directory

img

Nah perintah di atas kita gak mau munculin di layar, maka tambahkan 2>/dev/null jadi seperti ini:

$ grep -i 'abc' content 2>/dev/null

Nah pesan galat di atas gak muncul lagi kan? Kenapa bisa begitu? Berikut ini penjelasannya.

Penjelasan

Jadi setiap proses yang dijalankan di Unix dalam hal ini GNU/Linux wajib mendukung paling tidak tiga common descriptors yang didefinisikan oleh aplikasi POSIX.

Adapun tiga common descriptors itu adalah:

NilaiNamaDisingkat
0Standard InputStdin
1Standard OutputStdout
2Standard ErrorStderr

Kemudian untuk simbol-simbol di atas:

SimbolMakna
>Meruskan perintah untuk dijadikan berkas
/dev/nullAdalah berkas jika dikirim ke sini akan selalu kosong atau semua pesan akan diabaikan
&Adalah simbol untuk file descriptor. Tanpa menulis ini maka perintah setelah > akan dianggap berkas

Nah jadi kalau ada perintah seperti ini.

$ grep -i 'abc' content 1>/dev/null 2&>1

Artinya kamu menjalankan aplikasi grep jika ia mengeluarkan pesan (stdout) maka ia harus ditulis ke /dev/null jika ada pesan galat (stderr) maka akan dikembalikan lagi ke stdout. Jadi pesan galatnya pun terabaikan.

Referensi

Thumbnail: https://unsplash.com/photos/1K9T5YiZ2WU