まず、パスはどのようにロードされますか?

まず、パスはどのようにロードされますか?

シェルはbash最初にパスと環境をどのように取得しますか?ファイルですか?

私が試したことは次のとおりです。

  • /etc/paths(明らかにMacOSには存在しますが、私のDebianシステムでは見つかりません)

  • 単にロードしてください$path(私がやっている作業のためのちょっとしたチートですが、存在する場合はオプションです)

  • Google fu

ベストアンサー1

通常は$PATH環境から継承され、シェル起動スクリプトによって変更される可能性があります。

ただし、環境変数が設定されていない場合は、バージョンによって異なるハードコーディングされたデフォルト値があります(またはコンパイル時に設定された設定オプションかもしれません)。

実行中のOS Xシステムでbash 3.2.57(1)-release

$ env -i bash --norc --noprofile -c 'echo $PATH'
/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.

Debian で実行bash 4.2.37(1)-release

$ env -i bash --norc --noprofile -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

以下を使用して、これがバイナリにハードコードされていることを確認できます。

strings /bin/bash | grep /usr/local/bin

おすすめ記事