web-dev-qa-db-ja.com

OSXおよびその他のUnicesの/ etc / path

/etc/pathsはOS Xで実行しているすべてのシェルによって読み取られますか?たとえば、zshを使用する場合、/etc/pathを解析して$PATHにデータを入力しますか?

OSXが$PATHにデータを入力するために従うシーケンスは正確には何ですか?他のユニスとは違うのですか?

8
Josh

OSX開発者は、私が知る限り、他のすべてのUnicesとは異なる$ PATHを設定する独自の方法を実装しています。彼らは path_helper というプログラムを使用します。このプログラムは/etc/paths/etc/path.d内のファイルを読み取り、それに応じてユーザーのデフォルトの$PATHを変更します。

this によると、$PATHはログインシェルに対してのみこの方法で設定されます。これがおそらくiTerminalがデフォルトでログインシェルを開始する理由です(なぜ彼らがそれを選んだのか私はいつも疑問に思っていました)。

同じ情報源によると、path_helper/etc/profile/etc/csh.loginから実行されます。

  • bashログインシェル
  • cshログインシェル
  • zshログインシェル(/etc/profileと読む必要があります)
  • /etc/profileをソースとする他のすべてのシェル。これはほとんどのログインシェルである必要があります。
10
terdon