Beberapa waktu lalu saya sudah membahas mengenai bash, sebuah shell yang saya pakai sehari-hari. Bash sendiri hanya memiliki sedikit command internal/built-in command dan banyak hal kompleks butuh program eksternal.
Di dalam blog ini saya sebenarnya sering menunjukkan potongan-potongan kode yang memanggil program eksternal tapi jarang membahas detailnya. Nah sekarang saya terpikir untuk menuliskan seri/kategori baru dalam blog ini yang membahas mengenai berbagai tools command line yang saya pakai, serta berbagai tips yang saya ketahui dari memakai tools-tools tersebut. Sebagian program sudah saya pakai sejak lebih dari 20 tahun yang lalu, dan sebagian lagi relatif baru.
Sebuah tools command line kadang memiliki puluhan hingga ratusan fitur (contoh: imagemagick) sehingga tidak mungkin saya bahas satu per satu semuanya. Referensi lengkap biasanya ada di halaman manual (man page) atau halaman info (untuk berbagai produk GNU).
Mungkin ada yang heran: kenapa sih harus memakai tools command line? kan banyak yang berbasis grafik?. Jika sudah lama berkutat dalam dunia command line, berbagai hal bisa dilakukan lebih cepat (misalnya menghapus file yang usianya lebih dari 3 bulan dan berakhiran huruf z).
Tools command line juga bisa dipanggil dari program lain, misalnya dengan menggunakan fungsi “system” (ada di berbagai bahasa pemrograman, seperti C, PHP, dsb). Jadi misalnya program kita tidak ingin mengimplementasikan sebuah hal kompleks, maka hal itu bisa dilakukan program command line eksternal.
Hal terakhir ini bisa menjadi masalah security. Intinya adalah: seperti SQL injection, kita juga bisa melakukan command injection. Ini akan saya bahas terpisah di bagian lain mengenai masalah security dalam mengeksekusi program eksternal.