Ego Irfandi Blog

Shell Minimalis: dash, mksh, oksh, dll

Kenapa Bukan Bash?

Bash adalah shell paling umum dipakai, tapi ukurannya relatif besar dan memiliki banyak fitur non-POSIX yang menambah kompleksitas. Bagi pengguna yang mengutamakan kesederhanaan, kecepatan startup (sistem embedded, init script, penggunaan harian minimalis), tersedia beberapa alternatif shell yang lebih ringkas.

dash

Debian Almquist Shell shell POSIX-compliant yang sangat ringan, umum dipakai sebagai /bin/sh di banyak distro (termasuk Debian dan turunannya) untuk menjalankan script sistem karena kecepatan eksekusinya.

  • Fokus: kepatuhan POSIX, kecepatan
  • Tidak memiliki fitur interaktif seperti history atau tab completion bawaan yang kaya
  • Cocok untuk script, kurang ideal untuk interactive daily driver

mksh (MirBSD Korn Shell)

Turunan dari Korn Shell (ksh), dikembangkan sebagai bagian dari proyek MirBSD. Menyediakan fitur interaktif yang cukup lengkap (history, line editing, job control) namun tetap ringan dibanding bash.

  • Fokus: keseimbangan antara fitur interaktif dan kesederhanaan
  • Kompatibel dengan sebagian besar syntax ksh
  • Sering dipakai sebagai default shell di Android (melalui toolbox/mksh)

oksh (OpenBSD Korn Shell)

Port dari ksh milik OpenBSD ke sistem lain. Menekankan kesederhanaan kode dan keamanan (mengikuti filosofi OpenBSD), dengan fitur yang lebih minimal dibanding mksh.

  • Fokus: kesederhanaan, auditability kode, keamanan
  • Fitur interaktif lebih terbatas dibanding mksh
  • Pilihan populer di kalangan pengguna yang menyukai filosofi suckless/minimalis

rc (Plan 9 Shell)

Shell dari Plan 9 from Bell Labs, tersedia di sistem Unix modern melalui plan9port. Memiliki syntax yang didesain ulang dari nol, lebih konsisten dan minim ambiguitas dibanding shell keluarga Bourne/POSIX.

  • Fokus: konsistensi syntax, menghindari quirk shell tradisional
  • Tidak POSIX-compliant, sehingga script bash/sh tidak bisa langsung dipakai
  • Cocok dieksplorasi bagi yang tertarik filosofi Plan 9

Perbandingan Singkat

Shell Basis POSIX Fokus Utama
dash Almquist Shell Ya Kecepatan script
mksh Korn Shell (MirBSD) Sebagian Interaktif + ringan
oksh Korn Shell (OpenBSD) Sebagian Minimalis + keamanan
rc Plan 9 Tidak Konsistensi syntax

Memilih Shell yang Tepat

Pemilihan shell sebaiknya disesuaikan dengan kebutuhan:

  • Script sistem/init -> dash atau POSIX sh
  • Penggunaan interaktif ringan sehari-hari -> mksh atau oksh
  • Eksplorasi filosofi alternatif di luar Bourne shell family -> rc

Mengganti default shell dapat dilakukan dengan:

chsh -s /bin/mksh

(Gantikan /bin/mksh dengan path shell pilihan masing-masing.)