Khi tôi khởi động thiết bị đầu cuối bash, .profile của tôi không được thực thi. Tôi không có ~ / .bash_profile hoặc a ~ / .bash_login, vì vậy .profile có nghĩa vụ phải chạy, phải không? Điều gì khác có thể sai?
Khi tôi khởi động thiết bị đầu cuối bash, .profile của tôi không được thực thi. Tôi không có ~ / .bash_profile hoặc a ~ / .bash_login, vì vậy .profile có nghĩa vụ phải chạy, phải không? Điều gì khác có thể sai?
Câu trả lời:
Nó không phải là một vỏ đăng nhập.
Nếu shell là shell đăng nhập, nó sẽ tìm .bash_profile nếu nó tồn tại, sau đó .profile. Các shell khác tìm kiếm .bashrc
Vì vậy, bạn có thể đặt những thứ bạn muốn trong mọi phiên bản shell trong .bashrc và có thể có một tham chiếu có nguồn .bashrc trong .profile.
Vì vậy: .bashrc:
stuff you want
cuối .profile:
[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc
bash --login
. Trong trường hợp của bạn, nó dường như chỉ chạy bash, theo mặc định sẽ không kích hoạt shell đăng nhập
Nếu bạn đang sử dụng máy tính để bàn đồ họa, .profile sẽ có nguồn gốc từ trình quản lý máy tính để bàn của bạn. Lightdm hiện có nguồn .profile, ít nhất là trên Ubuntu. Xem: https://bugs.launchpad.net/ubfox/+source/lightdm/+orms/794315
Với kdm và Kubfox-12.04, tệp / etc / kde4 / kdm / Xsession có nguồn gốc, bao gồm .profile bao gồm. Kubfox-12.10 có thể sẽ sử dụng lightdm. Ubuntu 12.04 sử dụng lightdm sao cho nguồn / usr / sbin / lightdm-session .profile.
Tôi nghĩ rằng cách để đi là (1) thiết lập / xuất cài đặt môi trường trong ~ / .profile và (2) có .profile có nguồn gốc bởi .bash_profile:
[[ -f ~/.profile ]] && . ~/.profile
(và không có .bashrc có nguồn gốc từ .profile hoặc .bash_profile).
Xem thêm:
.profile
nguồn gốc của bạn khi đăng nhập, nhưng anh ấy thực sự tự hỏi về cách lấy bash
nguồn khi anh ấy khởi chạy một thiết bị đầu cuối (không phải lúc đăng nhập)