Ada dua alasan terkait mengapa alias tidak selalu berfungsi saat dimasukkan ke dalam .profile
file. Yang pertama adalah bahwa file .profile
(atau .bash_profile
) hanya dijalankan untuk shell login. Jika Anda memulai bash di jendela terminal di bawah X, emulator terminal Anda (mis. Gnome-termanl) mungkin tidak menjalankan bash sebagai shell login. [Sebagian besar memiliki opsi untuk mengubah ini jika Anda mau, tetapi default (untuk gnome-termal tetap) tidak menjalankannya sebagai shell login.]
Shell akan menjadi shell interaktif dan karenanya .bashrc
akan dijalankan.
Namun, biasanya bash telah dijalankan sebagai shell login kembali ketika sesi X sedang dimulai. Jadi jika ada perintah alias di dalamnya .profile
mereka akan dieksekusi bersama dengan pengaturan variabel lingkungan seperti PATH dll. Ketika jendela terminal dibuka, contoh baru bash dijalankan untuk meminta, dan jalankan perintah di jendela terminal itu. Tidak seperti variabel lingkungan, alias tidak dapat diekspor dari satu instance bash ke yang baru yang dimulai olehnya. Jadi alias tidak diteruskan ke shell baru.
Untuk melihat ini, coba percobaan ini:
export ROBERT=bob
alias james=jimmy
echo $ROBERT
alias james
bash #start a new bash instance
echo $ROBERT
alias james
exit #end the new bash instance and revert to the original one
echo $ROBERT
alias james
Catatan yang .bashrc
tidak dijalankan oleh bash ketika dimulai sebagai shell login. Jadi menempatkan alias Anda di sana tidak akan selalu berhasil kecuali Anda .bashrc
berasal dari Anda .profile
, yang merupakan praktik yang sangat umum.
gl
? Terminal? GUI?