Ketika saya memulai terminal bash, profil saya tidak dieksekusi. Saya tidak punya ~ / .bash_profile atau ~ / .bash_login, jadi .profile seharusnya dijalankan, kan? Apa lagi yang bisa salah?
Ketika saya memulai terminal bash, profil saya tidak dieksekusi. Saya tidak punya ~ / .bash_profile atau ~ / .bash_login, jadi .profile seharusnya dijalankan, kan? Apa lagi yang bisa salah?
Jawaban:
Ini bukan shell login.
Jika shell adalah shell login, ia akan mencari .bash_profile jika ada, lalu .profile. Kerang lain mencari .bashrc
Jadi, Anda bisa meletakkan hal-hal yang Anda inginkan di setiap instance shell di .bashrc, dan mungkin memiliki referensi yang sumber .bashrc di .profile.
Jadi: .bashrc:
stuff you want
akhir profil.:
[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc
bash --login
. Dalam kasus Anda tampaknya hanya menjalankan bash, yang secara default tidak akan memicu shell login
Jika Anda menggunakan desktop grafis, .profile harus bersumber dari manajer desktop Anda. Lightdm tidak mencari .profile sekarang, setidaknya di Ubuntu. Lihat: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315
Dengan kdm, dan Kubuntu-12.04, file / etc / kde4 / kdm / Xsession diambil dari sumbernya, yang termasuk dalam file .profile. Kubuntu-12.10 mungkin akan menggunakan lightdm. Ubuntu 12.04 menggunakan lightdm sehingga / usr / sbin / lightdm-session sumber .profile.
Saya pikir cara untuk pergi adalah (1) mengatur / mengekspor pengaturan lingkungan di ~ / .profile dan (2) memiliki .profile yang bersumber dari .bash_profile:
[[ -f ~/.profile ]] && . ~/.profile
(dan tidak memiliki .bashrc yang bersumber dari .profile atau .bash_profile).
Lihat juga:
.profile
sumber Anda saat masuk, tetapi dia benar-benar bertanya-tanya tentang cara mendapatkan bash
sumber saat ia meluncurkan terminal (bukan saat masuk)