Is /etc/paths
read by every shell that I run in OS X? For example, if I use zsh, will it parse /etc/path
to populate $PATH
?
What exactly is the sequence that OS X follows to populate $PATH
? Does it do it differently than other Unices?
Is /etc/paths
read by every shell that I run in OS X? For example, if I use zsh, will it parse /etc/path
to populate $PATH
?
What exactly is the sequence that OS X follows to populate $PATH
? Does it do it differently than other Unices?
The OSX devs have implemented their own way of setting up the $PATH which is different from all other Unices as far as I know. They use a program called path_helper
which will read /etc/paths
and the files in /etc/path.d
and modify the user's default $PATH
accordingly.
According to this, the $PATH
is only set this way for login shells. This is probably why iTerminal starts login shells by default (I've always wondered why they chose that).
According to the same source, path_helper
is run from /etc/profile
and /etc/csh.login
which should affect
bash
login shellscsh
login shellszsh
login shells (should read /etc/profile
)/etc/profile
which should be most login shells.
/etc/path
:). This is not a standard nix thing so that file is probably called from one of the standard ones. Try `grep path /etc/bash.bashrc /etc/profile /etc/zsh/that should return the line that calls
/etc/path`. – terdon Jan 29 '14 at 17:03