Các đường dẫn trong /etc/paths
và /etc/paths.d/*
thường được thêm vào PATH
bởi path_helper . path_helper
được chạy từ /etc/profile
, vì vậy nó được chạy khi bash được gọi dưới dạng shell đăng nhập tương tác, nhưng không phải khi bash được gọi dưới dạng shell không đăng nhập hoặc shell không tương tác.
/etc/paths
chứa /usr/local/bin
ở cuối theo mặc định và /etc/paths.d/
trống theo mặc định.
Terminal và iTerm 2 mở shell mới dưới dạng shell đăng nhập theo mặc định và shell được mở khi bạn ssh vào máy tính của bạn cũng là shell đăng nhập. Nhiều trình giả lập thiết bị đầu cuối trên các nền tảng khác tmux
và chế độ shell trong Emacs mở shell mới dưới dạng shell không đăng nhập.
Tôi đã thêm dòng này vào /etc/launchd.conf
:
setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
Nó thay đổi giá trị của PATH
quá trình launchd gốc. Giá trị được kế thừa bởi tất cả các quy trình khác, bao gồm các quy trình khởi động cho mỗi người dùng. Bạn có thể áp dụng các thay đổi /etc/launchd.conf
bằng cách khởi động lại hoặc bằng cách chạy launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf
và khởi chạy lại các quy trình.
Trên OS X, ~/.profile
không được đọc khi bạn đăng nhập bằng đồ họa. Nếu cả hai ~/.bash_profile
và ~/.profile
tồn tại, bash cũng không đọc ~/.profile
.
~/.MacOSX/environment.plist
ngừng hoạt động vào 10.8.
/etc/profile
là một kịch bản chủ yếu được sử dụng bởi bash? Tôi không có kinh nghiệm với các loại vỏ khác, nhưng tôi cho rằng chúng theo một cấu trúc khác?