Topik ini membahas pemilihan aplikasi terminal dan shell pada Linux, macOS, dan Windows, cara mengubah shell login, serta rangkaian perintah pertama untuk memastikan bash siap digunakan. Setiap langkah disertai perintah yang dapat dijalankan langsung, sehingga keberhasilan penyiapan dapat diverifikasi dari keluarannya. Setelah semua langkah dijalankan, versi bash yang terpasang dapat disebutkan dengan pasti.
Memilih aplikasi terminal#
Langkah penyiapan dimulai dari aplikasi terminal, karena shell selalu berjalan di dalamnya. Setiap sistem menyediakan pilihan bawaan, dan aplikasi tambahan dapat dipasang sesuai selera. Untuk pembelajaran, aplikasi bawaan sudah memadai, karena tema tampilan dan panel tambahan tidak memengaruhi cara kerja shell. Pilihan umum pada tiap sistem adalah sebagai berikut.
- Linux menyediakan beberapa emulator terminal umum seperti GNOME Terminal, Konsole, dan xterm, yang semuanya tersedia melalui repositori distribusinya masing-masing.
- macOS menyertakan aplikasi bernama Terminal, sedangkan aplikasi emulator lain dapat dipasang terpisah apabila dibutuhkan.
- Windows menjalankan bash melalui WSL (Windows Subsystem for Linux, lapisan sistem yang menjalankan distribusi Linux di dalam Windows), yang diakses dari aplikasi Windows Terminal.
Kriteria pemilihannya sederhana. Terminal yang dipilih harus dapat menjalankan bash, mendukung teks berwarna untuk keterbacaan keluaran, dan nyaman digunakan dalam jangka panjang. Fitur seperti tab, panel terbagi, dan tema hanyalah kenyamanan yang tidak mengubah perilaku shell sama sekali. Apabila langkah verifikasi pada bagian akhir topik ini berhasil, terminal yang terpasang sudah layak digunakan.
Memilih shell dan shell login#
Distribusi GNU/Linux umumnya menjadikan bash sebagai shell default, sehingga terminal yang baru dibuka sudah berjalan di dalam bash. macOS sejak versi 10.15 menjadikan zsh sebagai shell default, tetapi bash tetap tersedia dan dapat dijalankan kapan saja. Daftar shell yang sah pada sebuah sistem tercatat pada berkas /etc/shells, dan isinya dapat dibaca langsung.
# daftar shell yang diakui sistem untuk peran shell login
cat /etc/shells# /etc/shells: valid login shells
/bin/sh
/usr/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/dashKeluaran di atas memperlihatkan beberapa hal sekaligus. Jalur /bin/bash dan /usr/bin/bash menunjukkan bash pada dua lokasi yang lazim, sedangkan /usr/bin/dash menunjukkan shell ringan yang menyandang peran /bin/sh pada sistem ini. Entri rbash adalah bash dengan pembatasan, yang jarang dibutuhkan untuk penggunaan sehari-hari. Daftar pada sistem lain bisa lebih pendek atau lebih panjang, sesuai shell yang terpasang.
Shell yang diluncurkan pada proses masuk ke sistem disebut shell login, dan pilihannya diubah dengan perintah chsh. Perintah ini meminta kata sandi pengguna sebelum mengubah catatan shell login, sehingga tidak dapat dijalankan secara otomatis di sandbox.
# tidak-dijalankan
# mengubah shell login menjadi bash, meminta kata sandi, berlaku pada sesi berikutnya
chsh -s /bin/bashApabila shell aktif saat ini bukan bash, misalnya zsh pada macOS, bash cukup diluncurkan sebagai program biasa lalu ditutup dengan exit.
# tidak-dijalankan
# meluncurkan bash dari shell lain, lalu kembali ke shell sebelumnya
bash
exitVerifikasi lingkungan dengan perintah pertama#
Verifikasi paling andal dilakukan dengan menjalankan perintah lalu membaca keluarannya secara langsung. Rangkaian berikut mencetak sapaan singkat, menampilkan nama pengguna dan sistem operasi, serta memeriksa shell login dan versi bash yang terpasang. Setiap baris perintah diketik lalu ditutup dengan tombol Enter, dan keluarannya muncul tepat di bawahnya. Contoh pada situs ini ditulis tanpa tanda prompt di depannya, sehingga seluruh baris dapat disalin apa adanya.
# cetak sapaan sebagai perintah pertama
echo "Halo, bash!"
# tampilkan nama pengguna yang sedang masuk
whoami
# tampilkan nama sistem operasi
uname -s
# tampilkan shell login yang tercatat untuk pengguna
echo $SHELL
# tampilkan baris pertama informasi versi bash
bash --version | head -1Halo, bash!
z
Linux
/usr/bin/bash
GNU bash, version 5.2.37(1)-release (x86_64-pc-linux-gnu)Keluaran tersebut terbaca sebagai berikut. Nama pengguna yang sedang masuk adalah z, sistem operasinya Linux, dan shell login yang tercatat pada variabel $SHELL adalah /usr/bin/bash. Baris terakhir menegaskan versi bash yang terpasang, yaitu 5.2.37. Simbol | di tengah perintah terakhir adalah pipe (penyambung yang meneruskan keluaran satu perintah menjadi masukan perintah berikutnya), sehingga keluaran bash --version diteruskan ke head -1 dan hanya baris pertamanya yang tampil.
Satu pemeriksaan lagi membedakan shell login dari shell yang sedang berjalan. Variabel $BASH_VERSION diisi oleh bash itu sendiri ketika bash berjalan, sehingga nilainya hilang apabila shell aktif bukan bash.
# versi bash yang sedang berjalan, diisi oleh bash sendiri
echo $BASH_VERSION5.2.37(1)-releaseMemanfaatkan dokumentasi bawaan#
Setelah lingkungan siap, sumber pertama jawaban atas pertanyaan sehari-hari adalah dokumentasi yang sudah terpasang. Perintah builtin diperiksa dengan help, yang mencetak penggunaan beserta flag yang tersedia, sedangkan program eksternal biasanya menyediakan flag --help. Dokumentasi lengkap sebuah program dibaca melalui halaman man (halaman panduan yang disediakan untuk hampir semua perintah UNIX).
# ringkasan penggunaan singkat untuk builtin echo
help -s echoecho: echo [-neE] [arg ...]Keluaran di atas adalah bentuk ringkas yang menunjukkan nama perintah beserta flag yang sah untuk echo, seperti -n untuk menghilangkan baris baru dan -e untuk mengaktifkan urutan karakter khusus. Bentuk tanpa flag -s, yaitu help echo, mencetak penjelasan yang lebih panjang. Halaman man dibuka dengan perintah man diikuti nama programnya, misalnya man ls untuk membaca panduan ls. Kebiasaan membaca dokumentasi sejak awal mengurangi ketergantungan pada hafalan.
Dua fitur di atas hanya terasa pada sesi yang dijalankan oleh manusia, karena eksekusi skrip tidak menyediakan pelengkapan maupun riwayat. Kebiasaan menggunakan keduanya mempercepat pekerjaan sehari-hari tanpa mengubah perilaku perintah itu sendiri.
Kesalahan umum#
Kesalahan pertama adalah mengira perubahan shell login berlaku seketika. Perintah chsh hanya mengubah catatan shell untuk sesi yang akan datang, sehingga terminal yang sudah terbuka tetap menggunakan shell lama. Tanda bahwa perubahan belum berlaku adalah prompt yang masih menampilkan ciri shell lama pada sesi yang sama. Perbaikannya mudah, yaitu menjalankan bash secara langsung untuk penggunaan sementara, atau menutup terminal dan membuka sesi baru agar shell login yang baru digunakan.
Kesalahan kedua adalah mengasumsikan bash selalu tersedia di semua sistem. Sistem yang sangat ramping, seperti container minimal untuk menjalankan layanan, kadang hanya menyertakan shell sh tanpa bash. Kondisi ini membuat skrip yang bergantung pada fitur bash gagal berjalan di sistem tersebut. Pemeriksaan bash --version dijalankan lebih dahulu pada setiap mesin baru, karena perintah itu melaporkan versi bash bila ada dan menampilkan pesan yang jelas bila tidak ada. Apabila bash tidak tersedia, skrip ditulis dengan tetap berada dalam batas shell sh atau bash dipasang terlebih dahulu.
Ringkasan#
- Terminal bawaan setiap sistem sudah memadai untuk belajar, sedangkan bash pada Windows diperoleh melalui WSL.
- Daftar shell login yang sah tercatat di
/etc/shells, dan perubahan shell login dilakukan denganchshuntuk sesi berikutnya. - Versi bash yang terpasang diverifikasi melalui
bash --versiondan$BASH_VERSION, sedangkan$SHELLmenunjukkan shell login, bukan shell yang sedang berjalan.
Referensi#
- GNU Bash Reference Manual — Free Software Foundation
— Menjelaskan opsi peluncuran bash serta variabel
$SHELLdan$BASH_VERSION. - The Linux Command Line — William Shotts — Bab awal memandu peluncuran terminal emulator dan perintah pertama.
- The GNU Bourne-Again Shell — Chet Ramey — Halaman resmi bash yang memuat ketersediaan versi terbarunya untuk berbagai sistem.