• Home
  • Berita
  • Mengenal Bash, Shell di Lingkungan Sistem Operasi Berbasis Unix

Mengenal Bash, Shell di Lingkungan Sistem Operasi Berbasis Unix

Oleh Mila Rosyida
No ratings yet.

Bash diakui sebagai shell standar di banyak distribusi Linux dan juga di macOS, membuatnya menjadi pilihan utama bagi pengembang dan administrator sistem. Tidak hanya itu , setiap Bash script diawali dengan shebang (#!/bin/bash) yang menunjukkan lokasi interpreter Bash dan memberitahu sistem untuk menggunakan Bash dalam menjalankan script tersebut.  Di dalam file script, programmer dapat menulis perintah sebagaimana mereka mengetiknya di terminal. Dalam scripting, variabel digunakan untuk menyimpan data teks atau angka.

Apa itu Bash

Bash (Bourne Again Shell) adalah shell yang paling sering digunakan oleh pengguna Linux dan macOS. Alat ini merupakan pengembangan dari Bourne Shell (sh), shell asli UNIX, dengan banyak peningkatan dan fitur tambahan.

Bash menyediakan sintaks yang kuat dan fleksibel serta berbagai perintah bawaan untuk mengelola file, proses, dan tugas lainnya dalam sistem.

Bash scripting adalah metode untuk menulis sebuah seri perintah ke dalam file teks, yang kemudian dapat dieksekusi oleh Bash untuk melakukan otomasi tugas yang biasanya dilakukan secara manual melalui command line. Hal ini termasuk tugas seperti navigasi direktori, pembuatan file, atau eksekusi program.

Setiap Bash script diawali dengan shebang (#!/bin/bash) yang menunjukkan lokasi interpreter Bash dan memberitahu sistem untuk menggunakan Bash dalam menjalankan script tersebut.

Di dalam file script, programmer dapat menulis perintah sebagaimana mereka mengetiknya di terminal. Dalam scripting, variabel digunakan untuk menyimpan data teks atau angka.

Yang unik, Bash tidak memerlukan deklarasi tipe data khusus untuk variabel. Bash juga mendukung fungsi, yang memungkinkan pengelompokan serangkaian perintah ke dalam satu blok.

Fungsi ini bisa dipanggil berulang kali, memudahkan dalam penggunaan kode yang efisien dan terorganisir.

Melalui penggunaan Bash, pengguna dapat mengotomatisasi dan memanipulasi sistem mereka dengan lebih efisien, menjadikan Bash sebagai alat yang sangat berharga dalam pengelolaan sistem operasi berbasis Unix dan Linux.

Keunggulan Bash Shell

Bash Shell adalah alat yang sangat penting dan serbaguna, terutama dalam lingkungan sistem operasi berbasis Unix seperti Linux dan macOS. Keunggulan Bash dapat diuraikan lebih rinci sebagai berikut:

Kompatibilitas Luas

Bash diakui sebagai shell standar di banyak distribusi Linux dan juga di macOS, membuatnya menjadi pilihan utama bagi pengembang dan administrator sistem.

Artinya bahwa skrip yang dibuat dengan Bash memiliki kemungkinan besar akan berfungsi dengan baik di berbagai sistem yang menggunakan Bash tanpa perlu modifikasi.

Hal ini sangat berguna dalam lingkungan yang heterogen, dimana berbagai sistem operasi dan distribusi mungkin digunakan.

Lingkungan Pengembangan yang Kaya

Bash tidak hanya sekedar alat untuk menjalankan perintah, ia juga menyediakan lingkungan pemrograman yang kaya dengan fitur yang mendukung automasi kompleks dan skripting tingkat lanjut:

  • Looping dan Pengkondisian Bash mendukung struktur kontrol dasar seperti for, while, dan until loops, serta if-else statements yang  memungkinkan pengguna untuk menulis skrip yang kompleks dengan logika kondisional.
  • Pengambilan Argumen: Skrip Bash dapat dengan mudah mengambil argumen dari baris perintah, memungkinkan pengguna untuk menjalankan skrip dengan parameter yang dapat dikonfigurasi, meningkatkan fleksibilitas dan kegunaan skrip.
  • Function: Bash memungkinkan penggunaan function yang dapat membantu mengorganisir kode menjadi blok yang lebih kecil yang mudah diatur dan dapat digunakan kembali, mirip dengan function dalam bahasa pemrograman tingkat tinggi.
  • Pemrosesan String: Bash memiliki kemampuan pemrosesan string yang kuat, termasuk penggantian pattern, pemotongan string, dan manipulasi berdasarkan substring yang mempermudah pengelolaan data teks.

Dukungan untuk Skrip Shell

Bash sangat dikenal karena kekuatannya dalam menulis skrip yang otomatisasi tugas-tugas sistem, mulai dari tugas yang sederhana seperti pengelolaan file dan direktori, hingga tugas yang lebih kompleks seperti backup otomatis dan pengelolaan jaringan.

Bahasa scripting ini mendukung berbagai perintah Unix/Linux yang bawaan dan utilitas eksternal, memungkinkan untuk integrasi yang luas dan fleksibel dengan alat dan aplikasi lain.

Society and Documentation

Sebab popularitas dan penggunaan luasnya, Bash memiliki komunitas yang besar dan sumber daya dokumentasi yang kaya. Ada banyak forum, tutorial, dan buku yang tersedia yang membuat belajar dan pemecahan masalah Bash menjadi lebih mudah.

Pengguna baru dapat dengan cepat mempelajari dasar-dasar Bash dan bertukar pengetahuan dengan pengguna lain yang lebih berpengalaman.

Portabilitas dan Fleksibilitas

Bash skrip dapat dijalankan di hampir semua sistem Unix-like tanpa perlu penyesuaian, menjadikannya sangat portabel. Fleksibilitas ini berarti skrip dapat dikembangkan di satu sistem dan diharapkan berjalan di lain dengan sedikit atau tanpa modifikasi.

Kekurangan Bash Shell

Meskipun Bash adalah alat yang sangat berharga dan sering digunakan dalam sistem operasi berbasis Unix, seperti Linux dan macOS, ia juga memiliki beberapa keterbatasan yang dapat mempengaruhi efektivitasnya untuk beberapa tugas.

Berikut adalah beberapa kekurangan Bash Shell yang perlu dipertimbangkan:

Sintaks yang Kurang Intuitif

Bash menggunakan sintaks yang bagi banyak pengguna, terutama yang tidak terbiasa dengan pemrograman shell, dapat terasa tidak intuitif dan sulit untuk dipelajari.

Struktur perintah dan cara penanganan struktur data seperti string atau array mungkin tidak sesederhana yang ditemukan dalam bahasa pemrograman tingkat tinggi seperti Python atau Ruby.

Hal ini bisa menjadi hambatan bagi pemula atau bagi mereka yang berasal dari latar belakang pemrograman dengan bahasa yang lebih modern.

Keterbatasan dalam Pemrograman Kompleks

Bash tidak dirancang untuk aplikasi pemrograman yang kompleks. Dibandingkan dengan bahasa pemrograman lengkap, Bash memiliki fungsionalitas yang lebih terbatas, terutama dalam hal pengelolaan tipe data kompleks dan pengolahan kesalahan.

Bash juga kurang mendukung paradigma pemrograman modern seperti pemrograman berorientasi objek (OOP), yang dapat membatasi fleksibilitasnya dalam pengembangan skrip yang lebih rumit.

Portabilitas

Meskipun Bash relatif portable di antara berbagai distribusi UNIX dan Linux, skrip yang ditulis dalam Bash mungkin tidak berjalan dengan baik atau tanpa modifikasi di sistem operasi non-Unix, seperti Windows.

Artinya, skrip mungkin perlu diadaptasi atau dijalankan dalam lingkungan seperti Cygwin atau Windows Subsystem for Linux (WSL) untuk memastikan fungsi yang sama, menambahkan lapisan tambahan kompleksitas dalam penyebaran.

Keamanan

Skrip Bash sering kali rentan terhadap serangan keamanan, khususnya serangan injeksi seperti Shellshock yang terungkap pada tahun 2014. Pengguna harus sangat berhati-hati saat menulis skrip yang menangani input eksternal untuk menghindari eksekusi kode yang tidak disengaja.

Praktik keamanan yang baik dan validasi input yang ketat sangat penting saat menggunakan Bash untuk skrip yang berinteraksi dengan input dari pengguna atau sumber eksternal.

Performa

Untuk operasi yang sangat intensif, terutama yang melibatkan pemrosesan sejumlah besar data, Bash mungkin tidak seefisien bahasa pemrograman yang dikompilasi seperti C atau bahkan bahasa skrip lain seperti Python.

Hal ini karena Bash diinterpretasikan, yang dapat menambah overhead waktu eksekusi terutama pada operasi yang intensif.

Kurangnya Fitur Modern

Bash tidak memiliki banyak fitur pemrograman modern yang ditemukan di bahasa pemrograman lain, seperti sistem tipe yang kuat, penanganan pengecualian, dan dukungan asinkron yang bawaan.

Hal ini bisa membatasi kegunaannya untuk pengembangan aplikasi yang membutuhkan fungsionalitas modern tersebut.

Meskipun memiliki beberapa keterbatasan ini, Bash tetap merupakan alat yang sangat kuat dan serbaguna untuk administrasi sistem dan otomatisasi tugas pada sistem Unix dan Linux.

Pemahaman yang baik tentang kekuatan dan batasannya dapat membantu pengguna memaksimalkan efektivitasnya sambil meminimalkan risiko.

Tutorial Menggunakan Bash

Memulai dengan Bash bisa menjadi langkah penting untuk menguasai automasi dan administrasi sistem pada lingkungan Unix atau Linux. Berikut ini adalah panduan dasar untuk memulai dengan Bash:

Membuat Skrip Bash

  • Buat File Baru: Pertama, buka terminal dan ketik touch ~/myscript.sh untuk membuat file skrip baru.

bash

  • Edit File: Gunakan editor teks di terminal, misalnya dengan mengetik nano ~/myscript.sh.

Setelah perintah nano di enter, maka kamu akan masuk ke dalam editor teks seperti berikut :

Menulis Skrip Bash

Sebelum menulis skrip bash, ada kalanya kamu harus mengetahui beberapa perintah dasar bash yaitu perintah echo. Perintah ini digunakan untuk mencetak teks di terminal. 

  • Di dalam editor, tulis baris pertama dengan #!/bin/bash. Baris ini memberitahu sistem bahwa skrip harus dijalankan dengan Bash.
  • Selanjutnya, tambahkan perintah seperti echo “Hai, Saya Puspa”. Contoh:

Simpan dan Keluar: Setelah menulis skrip, tekan Ctrl+X, kemudian tekan Y dan Enter untuk menyimpan perubahan.

Memberikan Izin Eksekusi

Sebelum menjalankan skrip, berikan izin eksekusi dengan perintah,

Menjalankan Skrip Bash

Kamu bisa menjalankan skrip dengan beberapa cara:

  • Melalui Bash secara langsung,

  • Melalui sh,

  • Secara langsung jika sudah executable,

Menggunakan Variabel dalam Bash

Berikut penggunaan varianel pada bash, antara lain :

Environment Variables

Variabel yang diset secara otomatis oleh sistem, misalnya $HOME, $USER.

Hasilnya akan muncul seperti ini :

Positional Parameters

Variabel yang menyimpan argumen yang diberikan pada skrip. Misalnya:

Hasilnya akan seperti ini :

User-Defined Variables

Variabel yang kamu definisikan sendiri, misal:

Menghitung Karakter Variabel

Hasilnya berikut ini :

Komentar dalam Bash

Gunakan # untuk komentar satu baris, misal # Contoh komentar :

Input dan Output dalam Bash

I/O dalam konteks komputasi mengacu pada perangkat yang digunakan untuk memasukkan data ke dalam sistem (input) dan mengeluarkan hasil dari proses tersebut (output).

Perangkat-perangkat ini bisa berupa keyboard, mouse, layar monitor, printer, hard drive, dan lain-lain. Dalam skrip Bash atau shell lainnya, I/O sering diatur melalui berbagai perintah yang memudahkan manipulasi data.

Perintah echo sering digunakan untuk menampilkan teks atau informasi pada layar, atau mengarahkan output ke dalam sebuah file dengan menggunakan operator redirect (> atau >>).

Misalnya, echo “Hello World” > file.txt akan menyimpan teks “Hello World” ke dalam file.txt.

Perintah printf lebih fleksibel daripada echo karena memungkinkan pemformatan output dengan spesifik.

Penggunaan simbol % dalam perintah printf memungkinkan substitusi nilai dengan format yang telah ditentukan, seperti:

  • %d: Menampilkan data integer.
  • %f: Menampilkan data floating-point.
  • %x: Menampilkan data dalam format heksadesimal.
  • %o: Menampilkan data dalam format oktal. 

Contoh:

Perintah di atas akan mencetak 3.14 sebagai output.

Perintah read digunakan untuk menerima input dari pengguna. Perintah ini dapat dikonfigurasi dengan berbagai opsi dan mampu menangani multiple inputs yang disimpan ke dalam variabel yang berbeda.

Syntax dasarnya adalah:

Perintah ini akan meminta pengguna memasukkan nama, dan menyimpannya dalam variabel name.

Mengatur Warna Output

Untuk memperindah tampilan output di terminal, kita dapat menggunakan ANSI escape sequences. Sequences ini mengatur pewarnaan dan beberapa aspek tampilan lainnya, dimana m menandakan pengaturan warna. Gunakan konstanta ANSI untuk warna, misal :

Perintah di atas akan mencetak “Hello World” dengan warna merah seperti berikut :

Perbedaan Bash dengan sh

Dalam dunia komputasi, pemahaman mendalam mengenai shell sangat penting karena shell bertindak sebagai jembatan antara pengguna dan sistem operasi.

Shell menyediakan antarmuka baris perintah yang memungkinkan pengguna untuk menjalankan perintah, skrip, dan interaksi kompleks dengan sistem operasi. Dua jenis shell yang sering dibahas adalah Bash dan SH, masing-masing memiliki karakteristik dan kegunaan yang berbeda.

Bash (Bourne Again Shell):

  • Fitur Lebih Lengkap: Bash adalah shell yang dibuat sebagai versi yang ditingkatkan dari SH. Bash memperkenalkan fitur-fitur canggih yang tidak ditemukan di SH, seperti manipulasi string, autocompletion, dan history command yang lebih canggih.
  • Sintaks yang Lebih Mudah: Bash mendukung sintaks yang lebih luas dan lebih intuitif, memudahkan pengembangan skrip yang lebih kompleks dan efisien.
  • Kontrol Pekerjaan: Bash menyediakan kontrol pekerjaan yang luas, memungkinkan pengguna untuk menghentikan (suspend), melanjutkan (resume), atau mengatur prioritas proses dengan mudah.
  • Kompatibilitas dengan SH: Meskipun Bash menambahkan banyak fitur baru, Bash tetap kompatibel dengan SH, artinya skrip yang berjalan pada SH biasanya akan berjalan dengan baik di Bash tanpa modifikasi.

SH (Bourne Shell):

  • Fokus pada Portabilitas: SH sangat portabel, yang berarti skrip yang ditulis dalam SH dapat dijalankan di hampir semua implementasi Unix tanpa perlu modifikasi. Hal ini sangat penting untuk pengembangan aplikasi yang diharapkan untuk berjalan diberbagai sistem.
  • Kepatuhan terhadap POSIX: SH mengikuti standar POSIX, yang membuatnya menjadi pilihan yang disukai untuk pengembangan skrip yang memerlukan kompatibilitas maksimal antara berbagai sistem Unix.

Kapan Menggunakan Bash dan SH?

  • Pilih Bash: Jika kamu membutuhkan fitur-fitur modern, fleksibilitas dalam pemrograman skrip, dan jika kamu bekerja terutama pada sistem berbasis Linux. Bash sangat cocok untuk penggunaan sehari-hari dan pemrograman skrip yang kompleks.
  • Pilih SH: Jika portabilitas adalah perhatian utama kamu dan kamu memerlukan skrip untuk berjalan lintas platform tanpa kekhawatiran tentang dependensi atau kompatibilitas sistem operasi. SH adalah pilihan yang tepat untuk skenario di mana keandalan dan konsistensi antar sistem berbeda sangat penting.

Untuk ringkasnya, perbedaan bash dan sh dapat kamu simak pada gambar berikut:

Baca Juga : 10 Perintah Linux yang Harus Anda Tahu!

Mila Rosyida

Halo ! I'm a Technical Content Specialist in DomaiNesia. I love learn anything about Technical, Data, Machine Learning, and more Technology.


Berlangganan Artikel

Dapatkan artikel, free ebook dan video
terbaru dari DomaiNesia

{{ errors.name }} {{ errors.email }}
Migrasi ke DomaiNesia

Pindah Ke DomaiNesia

Tertarik mendapatkan semua fitur layanan DomaiNesia? Dapatkan Ekstra Diskon Migrasi 5% serta GRATIS biaya migrasi & setup.

Ya, Migrasikan layanan Saya!

Hosting Murah

This will close in 0 seconds