/etc/paths
là một phần của những gì được sử dụng để thiết lập $PATH
cho các quy trình shell. Khi bạn mở một cửa sổ Terminal mới, nó sẽ khởi động bash
, nó chạy một số tập lệnh khởi động: /etc/profile
VÀ ~/.bash_profile
HOẶC (nếu điều đó không tồn tại) ~/.bash_login
HOẶC (nếu điều đó không tồn tại) ~/.profile
. Các tập lệnh này thiết lập môi trường shell, bao gồm $PATH
.
Một trong những điều được /etc/profile
thực hiện là chạy /usr/libexec/path_helper
, trong đó đọc /etc/paths
và bất kỳ tệp nào trong đó /etc/paths.d
, và thêm nội dung của chúng vào $PATH
. Nhưng đây chỉ là điểm khởi đầu; tập lệnh khởi động của riêng bạn (nếu có tồn tại) có thể thêm vào $PATH
, chỉnh sửa nó, thay thế hoàn toàn, v.v.
Đối với tôi có vẻ như tập lệnh khởi động của bạn (và / hoặc những thứ nó chạy) đang thêm một số mục vào bộ cơ bản mà nó nhận được /etc/paths
. "Users / myusername / .node_modules_global / bin: /Users/mac/.node_modules_global/bin:" được thêm vào đầu $PATH
(có nghĩa là các thư mục đó sẽ được tìm kiếm trước) và ": / Users / mac / Library / Android / sdk / platform-tools: / platform-tools "được thêm vào cuối. Nếu bạn muốn biết chính xác những gì thêm chúng, bạn cần xem xét kịch bản khởi động của bạn.
BTW, quá trình thiết lập này $PATH
chỉ áp dụng cho các bash "đăng nhập" bash. Bất cứ thứ gì được chạy bởi bash shell sẽ được thừa hưởng $PATH
từ nó, vì vậy có lẽ về cơ bản là có cùng một thứ. bash shell không đăng nhập theo một quy trình thiết lập hơi khác. Các shell khác và mọi thứ không bắt đầu từ shell hoàn toàn (ví dụ: công việc cron) có thể hoàn toàn khác nhau $PATHs
.
/etc/paths
trong tôi, nhưng tôi đang chạy10.4.11
và mọi thứ có lẽ đã thay đổi kể từ đó