Kiedy uruchamiam terminal bash, mój plik .profile nie jest wykonywany. Nie mam ~ / .bash_profile ani ~ / .bash_login, więc .profile ma działać, prawda? Co jeszcze może być nie tak?
Kiedy uruchamiam terminal bash, mój plik .profile nie jest wykonywany. Nie mam ~ / .bash_profile ani ~ / .bash_login, więc .profile ma działać, prawda? Co jeszcze może być nie tak?
Odpowiedzi:
To nie jest powłoka logowania.
Jeśli powłoka jest powłoką logowania, poszuka pliku .bash_profile, jeśli istnieje, a następnie .profile. Inne powłoki szukają .bashrc
Tak więc możesz umieścić to, co chcesz w każdej instancji powłoki w .bashrc i ewentualnie mieć referencję, która pobiera .bashrc w .profile.
Więc: .bashrc:
stuff you want
koniec pliku .profile:
[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc
bash --login
. W twoim przypadku wydaje się, że po prostu uruchomisz bash, który domyślnie nie uruchomi powłoki logowania
Jeśli korzystasz z pulpitu graficznego, menedżer pulpitu powinien pobrać plik .profile. Lightdm obecnie pobiera .profile, przynajmniej na Ubuntu. Zobacz: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315
W przypadku kdm i Kubuntu-12.04 pobierany jest plik / etc / kde4 / kdm / Xsession, który zawiera także plik .profile. Kubuntu-12.10 prawdopodobnie użyje lightdm. Ubuntu 12.04 używa lightdm, dzięki czemu / usr / sbin / lightdm-session sources .profile.
Myślę, że sposobem jest (1) ustawienie / eksport ustawień środowiska w ~ / .profile i (2) .profile pochodzi z .bash_profile:
[[ -f ~/.profile ]] && . ~/.profile
(i nie mogą mieć .bashrc pochodzącego z .profile lub .bash_profile).
Zobacz też:
.profile
źródło przy logowaniu, ale tak naprawdę zastanawia się, jak je zdobyć bash
, gdy uruchamia terminal (nie przy logowaniu)