Apa itu Bourne Shell?

Shell Bourne adalah program kecil yang berjalan pada sistem operasi Unix® dan LINUX® dan menyediakan antarmuka untuk menjalankan program pada sistem. Ini sering disebut sebagai antarmuka baris perintah, atau juru bahasa perintah, karena tidak menyediakan antarmuka pengguna grafis (GUI) kepada pengguna. Perintah, dan parameter apa pun yang diperlukan, yang akan dieksekusi diketikkan ke dalam shell. Shell Bourne juga merupakan bahasa skrip, memungkinkan pengguna untuk membuat dan mengeksekusi file skrip yang dapat memproses data melalui banyak program dengan satu perintah. Pada sistem mirip Unix®, program ini hanya dikenal sebagai “sh.”

Cangkang pertama untuk sistem Unix® dikenal sebagai cangkang Thompson, dibuat oleh Ken Thompson, salah satu pencipta asli sistem operasi Unix®. Shell Thompson terbatas pada interpretasi perintah, dan sejumlah fungsi tambahan harus dijalankan sebagai operasi eksternal. Kemudian, Stephen Bourne menciptakan shell Bourne untuk menggantikan shell Thompson, menambahkan sejumlah fitur baru ke dalam shell itu sendiri, serta bahasa scripting shell.

Pada kenyataannya, shell Bourne direncanakan sebagai bahasa scripting sejak awal. Meskipun masih merupakan antarmuka baris perintah untuk Unix® versi tujuh, ini juga membuka kemungkinan bagi pengguna untuk mengembangkan skrip shell yang akan menghubungkan perintah bersama untuk memproses data. Melalui penggunaan pemrograman ini, pengguna dapat membuat variabel untuk menangkap data yang diketahui atau tidak diketahui dari input atau output dan memanipulasi pemrosesan data tersebut melalui penggunaan pernyataan kondisional dalam skrip melalui teknik yang disebut sebagai aliran kontrol.

Ini juga merupakan shell pertama yang mengimplementasikan fitur yang dikenal sebagai penanganan sinyal. Melalui shell Bourne, pengguna dapat mengirim jenis sinyal tertentu ke proses yang sudah berjalan di komputer, menginstruksikan proses itu untuk melakukan sesuatu yang lain. Banyak di antaranya adalah cara untuk menghentikan proses yang sedang mengeksekusi dan menghasilkan semacam output yang dapat digunakan untuk debugging, meskipun ada juga cara lain untuk menghentikan sementara proses, melanjutkan, dan sebagainya.

Kemampuan untuk mengontrol deskriptor file secara langsung adalah yang pertama untuk shell Bourne. Pada sistem mirip Unix®, setiap program yang berjalan memiliki tabel yang mencantumkan deskriptor file untuk file apa pun yang terbuka. Ini dapat mencakup apa saja mulai dari file teks sederhana hingga direktori atau bahkan soket komunikasi yang digunakan proses untuk berbagi data satu sama lain. Agar pengguna memiliki kontrol atas deskriptor file pada sistem, memungkinkan kontrol yang belum pernah terjadi sebelumnya atas input dan output untuk hampir semua hal di komputer.

Tentu saja, meskipun Bourne shell menawarkan fungsionalitas tambahan seperti itu kepada pengguna, itu kekurangan fitur seperti kemampuan untuk mengontrol proses secara interaktif, membuat alias perintah, dan menyimpan riwayat. Namun kemudian, sejumlah keturunan mulai muncul yang mengambil fitur cangkang paling berguna yang telah dirancang selama bertahun-tahun dan menggulungnya menjadi cangkang baru. Salah satu contoh umum adalah shell Bourne-again, atau Bash, yang umum pada banyak sistem LINUX®. Akibatnya, banyak dari turunan ini sepenuhnya mampu mengeksekusi skrip shell Bourne biasa, memberikan setiap sistem mirip Unix® beberapa implementasi shell Bourne asli dalam satu atau lain cara. Pada banyak sistem LINUX®, ini hanyalah tautan dari “sh” ke “bash” atau turunan lain yang mampu.