/etc/paths
is part of what's used to set up $PATH
for shell processes. When you open a new Terminal window, it starts bash
, which runs several startup scripts: /etc/profile
AND ~/.bash_profile
OR (if that doesn't exist) ~/.bash_login
OR (if that doesn't exist either) ~/.profile
. These scripts set up the shell environment, including $PATH
.
One of the things /etc/profile
does is run /usr/libexec/path_helper
, which reads /etc/paths
and any files in /etc/paths.d
, and adds their contents to $PATH
. But this is just a starting point; your own startup script (if any exist) can add to $PATH
, edit it, replace it completely, etc.
It looks to me like your startup script (and/or things it runs) is adding a number of entries to the basic set it gets from /etc/paths
. "Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:" is added to the beginning of $PATH
(meaning those directories will be searched first), and ":/Users/mac/Library/Android/sdk/platform-tools:/platform-tools" is added at the end. If you want to know exactly what's adding them, you need to look at your startup script.
BTW, this process for setting up $PATH
only applies to bash "login" shells. Anything run by a bash shell will inherit $PATH
from it, so probably have essentially the same thing. bash non-login shells follow a somewhat different setup process. Other shells, and things not started from a shell at all (e.g. cron jobs) may have completely different $PATHs
.
/etc/paths
in mine, but I'm running10.4.11
and things have probably changed since then/etc/paths
is used to generate the default$PATH
, which you can later modify~/.bashrc
or~/.profile