Di .bash_profile pastikan Anda memiliki yang berikut:
# .bash_profile
# If .bash_profile exists, bash doesn't read .profile
if [[ -f ~/.profile ]]; then
. ~/.profile
fi
# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
. ~/.bashrc
fi
Mengapa sumber itu? Anda tidak menjalankan bash
yang sebenarnya :
$ echo $SHELL
/bin/sh
Di sebagian besar sistem modern sh
adalah symlink ke shell dasar. Di Debian saya misalnya:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Aug 1 2012 /bin/sh -> dash
Dalam kasus Anda, sh
adalah tautan ke bash
tapi, seperti yang dijelaskan di man bash
:
Jika bash dipanggil dengan nama sh, ia mencoba meniru perilaku startup versi historis sh sedekat mungkin, sembari menyesuaikan dengan standar POSIX juga. [...] Ketika dipanggil sebagai shell interaktif dengan nama sh, bash mencari variabel ENV, memperluas nilainya jika didefinisikan, dan menggunakan nilai yang diperluas sebagai nama file untuk membaca dan mengeksekusi. Karena sebuah shell dipanggil sebagai shtidak mencoba untuk membaca dan menjalankan perintah dari file startup lainnya , opsi --rcfile tidak berpengaruh.
dan
--norc
Jangan membaca dan menjalankan file inisialisasi seluruh sistem/etc/bash.bashrc dan file inisialisasi pribadi ~/.bashrcjika shell bersifat interaktif. Opsi ini aktif secara default jika shell dipanggil sebagai sh.
Jadi, karena shell default Anda adalah sh
, .bashrc
tidak dibaca. Atur saja shell default Anda ke bash menggunakan chsh -s /bin/bash
.