🤔
/usr/local/bin とかっていつパス通してんの?
疑問
echo $PATH
すると、/usr/local/bin
とか /usr/bin
とか /bin
とかが入ってる。
でもそんなパス通した覚えない。
.bash_profile
をよく見てみてもそんなパス通してないし、
.bash_profile
を空ファイルにしてみても /usr/local/bin
とかにパス通ってる。
答え
/etc/profile
がやってる。
シェルへのログイン時に読み込まれるらしい。
Mac だとこういうやつ。
hoge@fuga:/Library/LaunchDaemons$ cat /etc/profile
# System-wide .profile for sh(1)
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
if [ "${BASH-no}" != "no" ]; then
[ -r /etc/bashrc ] && . /etc/bashrc
fi
ここで実行されてる path_helper
が、/etc/paths
と
hoge@fuga:/Library/LaunchDaemons$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/etc/paths.d/
以下に記載されているパスを通してくれるらしい。
hoge@fuga:/Library/LaunchDaemons$ cat /etc/paths.d/*
/usr/local/go/bin
参考
Discussion