Terminal dan shell bukan sekadar alat untuk menjalankan perintah, melainkan ruang kerja yang bisa kita sesuaikan agar semakin nyaman dan produktif. Melalui perubahan pada file konfigurasi, penambahan environment variable, pembuatan alias, hingga penggantian tampilan prompt, kita bisa membentuk pengalaman bekerja di terminal sesuai kebutuhan. Bab ini membahas berbagai cara kustomisasi shell di Ubuntu 26.04 LTS dan Fedora Workstation 44, termasuk beberapa perbedaan kecil namun penting antara kedua distro yang sering membingungkan pemula.
37.1 File Konfigurasi Shell
File konfigurasi yang tersimpan di direktori home kita menentukan perilaku shell. Sebelum mengubah file-file ini, penting untuk memahami kapan Bash membaca masing-masing file, karena Ubuntu dan Fedora ternyata memiliki kebiasaan default yang sedikit berbeda.
37.1.1 ~/.bashrc: Dibaca Setiap Membuka Terminal
Bash membaca file ~/.bashrc setiap kali kita membuka shell interaktif non-login, yaitu situasi yang terjadi setiap kali kita membuka jendela atau tab terminal baru dari desktop GNOME. Karena itu, ~/.bashrc adalah tempat yang tepat untuk menyimpan alias, fungsi, dan pengaturan yang ingin selalu aktif di setiap sesi terminal.
Kita bisa melihat isi file tersebut dengan:
cat ~/.bashrcSetelah mengubah file ini, terapkan perubahan tanpa menutup terminal menggunakan perintah:
source ~/.bashrc37.1.2 ~/.bash_profile dan ~/.profile: Bedanya Ubuntu dan Fedora
File yang dibaca saat kita login (misalnya login ke sesi desktop atau login lewat SSH) disebut file login shell. Di sinilah letak perbedaan yang sering membingungkan: Ubuntu dan Fedora tidak menyediakan file login shell yang sama secara default.
- Ubuntu 26.04 LTS tidak membuat
~/.bash_profileuntuk pengguna baru. Sebagai gantinya, Ubuntu menyediakan~/.profile, yang secara otomatis memuat (source)~/.bashrcdi dalamnya. - Fedora Workstation 44 menyediakan
~/.bash_profilesecara default (disalin dari/etc/skelsaat akun dibuat), yang juga memuat~/.bashrc.
Tabel berikut merangkum perbedaannya:
| File | Ubuntu 26.04 LTS | Fedora Workstation 44 |
|---|---|---|
~/.bashrc | Ada, dibaca setiap buka terminal | Ada, dibaca setiap buka terminal |
~/.bash_profile | Tidak dibuat secara default | Ada secara default |
~/.profile | Ada, dibaca saat login | Tidak dibuat secara default |
Dalam praktiknya, karena kedua file di atas sama-sama sudah memuat ~/.bashrc, kita hampir tidak perlu mengeditnya secara langsung. Cukup simpan seluruh alias, fungsi, dan environment variable di ~/.bashrc, dan pengaturan itu akan berlaku baik saat login maupun saat membuka terminal baru.
37.1.3 ~/.zshrc (Jika Menggunakan Zsh)
Jika kita beralih ke Zsh, file konfigurasinya adalah ~/.zshrc. Fungsinya serupa dengan ~/.bashrc, yaitu menampung pengaturan yang dibaca setiap kali Zsh dijalankan sebagai shell interaktif.
37.2 Environment Variable
Environment variable adalah variabel yang menyimpan informasi tentang lingkungan sistem dan dapat dibaca oleh program yang berjalan.
37.2.1 echo $HOME, $PATH, $USER
Untuk melihat nilai sebuah environment variable, gunakan echo diikuti nama variabel yang diawali tanda dolar.
echo $HOMEecho $PATHecho $USER$HOME menunjuk ke direktori home kita, $USER berisi nama pengguna, dan $PATH berisi daftar direktori yang dicari shell ketika kita menjalankan sebuah perintah. Untuk melihat seluruh environment variable yang aktif sekaligus, gunakan perintah:
env37.2.2 Menambahkan Direktori ke $PATH
Agar shell bisa menemukan program yang kita simpan di direktori sendiri, tambahkan direktori tersebut ke $PATH. Misalnya, untuk menambahkan ~/.local/bin:
export PATH="$HOME/.local/bin:$PATH"Susunan ini menempatkan direktori baru di awal daftar, sehingga program di dalamnya diprioritaskan. Simpan baris ini di ~/.bashrc agar berlaku permanen setiap kali kita membuka terminal. Untuk memastikan perubahan berhasil, jalankan echo $PATH lagi dan pastikan ~/.local/bin muncul di bagian paling depan daftar.
37.2.3 export: Mengeset Environment Variable
Perintah export menjadikan sebuah variabel tersedia bagi program yang dijalankan shell. Tanpa export, variabel hanya dikenali di dalam shell itu sendiri dan tidak diteruskan ke program lain.
37.2.4 Kenapa Aplikasi GUI Tidak Melihat Variabel di .bashrc?
Ini adalah jebakan umum bagi pemula: environment variable yang kita tambahkan di ~/.bashrc hanya berlaku untuk program yang dijalankan dari dalam terminal. Aplikasi yang kita buka lewat Activities Overview atau Dash tidak melewati ~/.bashrc sama sekali, sehingga tidak akan melihat variabel tersebut.
Solusi modern yang berlaku untuk Ubuntu maupun Fedora (karena keduanya memakai GNOME dan systemd) adalah membuat file konfigurasi di direktori ~/.config/environment.d/. Variabel yang didefinisikan di sana akan tersedia bagi seluruh aplikasi pada sesi desktop kita, termasuk yang dibuka lewat GUI. Contoh:
mkdir -p ~/.config/environment.d
nano ~/.config/environment.d/10-custom.confIsi filenya cukup berupa pasangan VARIABEL=nilai, misalnya:
PATH=${HOME}/.local/bin:${PATH}Perubahan ini baru terlihat setelah kita logout dan login kembali. Untuk memverifikasinya tanpa harus menutup seluruh sesi desktop, buka terminal baru setelah login ulang lalu jalankan systemctl --user show-environment dan periksa apakah variabel yang baru sudah muncul di daftar.
37.3 Alias: Membuat Shortcut Perintah
Alias memungkinkan kita membuat nama pendek untuk perintah yang panjang atau sering digunakan.
37.3.1 alias ll='ls -lh'
Untuk membuat alias, gunakan sintaks alias nama='perintah'.
alias ll='ls -lh'Setelah itu, mengetik ll setara dengan menjalankan ls -lh. Untuk melihat seluruh alias yang sedang aktif, jalankan perintah alias saja tanpa argumen, dan untuk menghapus sebuah alias dari sesi berjalan gunakan unalias nama.
37.3.2 Menyimpan Alias di .bashrc
Alias yang kita buat langsung di terminal hanya bertahan selama sesi berlangsung. Agar tersimpan permanen, tambahkan baris alias ke file ~/.bashrc, lalu jalankan source ~/.bashrc untuk menerapkannya.
37.4 Shell Prompt Kustom (PS1)
Prompt yang tampil sebelum kita mengetik perintah dikendalikan oleh variabel bernama PS1. Kita bisa mengubahnya untuk menampilkan informasi seperti nama pengguna, nama host, dan direktori aktif.
Contoh berikut mengatur prompt agar menampilkan informasi tersebut:
export PS1='\u@\h:\w\$ 'Dalam string tersebut, \u mewakili nama pengguna, \h nama host, \w direktori aktif, dan \$ menampilkan simbol dolar untuk pengguna biasa, atau simbol pagar (#) jika kita login sebagai root. Simpan pengaturan ini di ~/.bashrc agar berlaku permanen.
37.4.1 Menambahkan Warna pada PS1
Prompt juga bisa diberi warna menggunakan kode escape ANSI. Contoh berikut membuat bagian nama pengguna dan host tampil hijau:
export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\w\$ '\033[01;32m mengubah warna teks menjadi hijau tebal, sedangkan \033[00m mengembalikan warna ke keadaan normal. Perhatikan bahwa kode warna tersebut dibungkus dengan \[ dan \]. Tanda kurung siku ini memberitahu Bash bahwa teks di dalamnya tidak menghasilkan karakter yang tampil di layar, sehingga Bash bisa menghitung panjang prompt dengan benar. Jika tanda ini dilupakan, tampilan prompt bisa kacau saat kita mengetik perintah panjang atau menekan tombol panah untuk memanggil history.
37.5 Pengenalan Zsh dan Oh My Zsh
Selain Bash, tersedia shell alternatif bernama Zsh yang menawarkan fitur pelengkap seperti autocompletion yang lebih kaya dan koreksi perintah. Zsh dapat diinstal melalui package manager.
sudo apt install zshDi Fedora, gunakan:
sudo dnf install zshSetelah terinstal, kita bisa menjadikan Zsh sebagai shell default menggunakan perintah chsh:
chsh -s $(which zsh)Perubahan ini baru berlaku setelah kita logout dan login kembali. Perlu dicatat, baik Ubuntu 26.04 LTS maupun Fedora Workstation 44 tetap menggunakan Bash sebagai shell default; Zsh selalu bersifat opsional dan perlu dipasang serta diaktifkan secara manual.
Di lapangan, perintah chsh di atas kadang menolak dan menampilkan pesan galat seperti chsh: Warning, shell not listed in /etc/shells. Ini biasanya terjadi jika path Zsh belum terdaftar di /etc/shells, misalnya karena Zsh dipasang secara manual di luar package manager resmi. Solusinya, jalankan which zsh untuk memastikan path binary-nya, lalu pastikan baris yang sama sudah tercantum di /etc/shells sebelum mengulangi chsh. Setelah login kembali, verifikasi shell aktif kita dengan echo $SHELL.
Karena Ubuntu 26.04 dan Fedora Workstation 44 sama-sama memakai Ptyxis sebagai terminal default, kita juga bisa mencoba Zsh tanpa mengganti shell default sistem: buka Preferences pada Ptyxis, pilih profil terminal kita, lalu pada bagian Command pilih opsi untuk menjalankan perintah kustom dan isikan path Zsh. Cara ini berguna untuk mencoba shell baru per-profil terminal sebelum memutuskan menggantinya secara permanen dengan chsh.
Untuk kemudahan konfigurasi, banyak pengguna memasang Oh My Zsh, sebuah framework yang menyediakan tema dan plugin siap pakai untuk Zsh. Karena pengaturannya lebih lanjut, Oh My Zsh bersifat opsional dan bisa kita eksplorasi setelah nyaman dengan dasar-dasar shell.
37.5.1 Starship: Alternatif Prompt Modern Lintas Shell
Jika kita hanya ingin mempercantik dan memperkaya informasi pada prompt tanpa harus berpindah shell atau memasang seluruh framework Oh My Zsh, ada pilihan lain bernama Starship. Starship adalah prompt ringan yang bekerja sama baiknya di Bash, Zsh, maupun Fish, dan bisa menampilkan informasi kontekstual seperti branch Git aktif atau versi bahasa pemrograman yang terdeteksi di direktori kerja kita.
Ketersediaan paket Starship di repositori resmi berbeda-beda antar versi distro, sehingga cara pemasangan yang paling konsisten untuk Ubuntu maupun Fedora adalah lewat skrip instalasi resminya:
curl -sS https://starship.rs/install.sh | shSetelah terpasang, aktifkan Starship dengan menambahkan baris berikut di akhir ~/.bashrc:
eval "$(starship init bash)"Konfigurasi lebih lanjut, seperti memilih modul apa saja yang ditampilkan, ada di file ~/.config/starship.toml. Untuk memverifikasi instalasi berhasil, buka terminal baru dan pastikan bentuk prompt sudah berubah; jika belum, jalankan which starship untuk memastikan binary-nya benar-benar berada di $PATH.
Kustomisasi shell adalah langkah menyenangkan untuk menjadikan terminal lebih pribadi dan efisien. Dari file konfigurasi, environment variable, alias, hingga prompt, setiap elemen bisa kita sesuaikan secara bertahap. Pada bab berikutnya, kita akan menerapkan semangat yang sama untuk menata tampilan desktop GNOME sesuai selera.

