2012-03-23 12 views
34

私はシステム全体を見てきましたが、私はそれを見つけることができません。 echo $ PATHを実行すると、追加したものとデフォルトのパスが取得されます。私は.profileがなく、.bashrcを持っていますが、デフォルトのパスはそこにありません。私はちょうどそれがどこにあるのか知るためにそれを探しています。すべてのチュートリアルでその.profileのことを説明しています...しかし、もしあなたが持っていなければどうしますか?それはどこにありますか?誰にもアイデアはありますか?

答えて

65

sudo man path_helperを実行すると、パスをどのように組み立てるかについて少し話があります。あなたは/etc/paths/etc/paths.dを見るかもしれません。私はして、私が探していたものを見つけました。

+0

ああ、ありがとう。 – Andy

+0

確かです。それは見つけるのは少し痛みだった:)。 – beOn

+0

lurkerからおかげで!これは本当に私をイライラさせました。 – user18197

10

bashが起動時に読み取られる/etc/profileには、PATHを含む多くのシステムワイドの設定が設定されています。 Mac OS Xでは、このファイルは通常path_helperを使用してPATHを設定します。このユーティリティは、/etcpath_helper manpage参照)の下の他のシステム構成ファイルから情報を読み取ります。

初期化ファイルの読み込みをbash(たとえば、--noprofileなどのコマンドラインオプションを使用)しても、それでも親プロセスの環境を継承することに注意してください。あなたは/ etc/profileをで起動した場合

+0

私は正規表現を取得しています。私は/ usr/local/mysql/binのようなものを探しています:/ usr/bin:/ bin:/ usr/sbin:/ sbin:/ usr/local/bin:/ usr/X11/binその.profileを持っていて、それが私の.bashrcにないのですが、$ PATHからechoすることができます。 – Andy

+0

私はあなたが言っていることを見ています。 – Andy

6

、それは次のようになります。

if [ -x /usr/libexec/path_helper ]; then 
    eval `/usr/libexec/path_helper -s` 
fi 

それはファイルが存在するかどうかを確認するためのテストだとそうならば、それを実行します。手で実行すると、次のようなものが得られます。

PATH="/usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/X11/bin"; export PATH; 

私はそれがあなたが探しているものだと信じています。したがって、/ etc/profileから来ています。これは、パスを設定する実行可能ファイルを呼び出します。

+0

私はそれを理解し、Adamが指摘したことを見ましたが、それが起こるためには、どこかから情報を得る必要があります。 path_helperの中の式は、実際には/ usr/local/mysql/bin:/ usr/bin:/ bin:/ usr/sbin:/ sbin:/ usr/local/bin:/ usr/X11/binを生成しますか? – Andy

+2

これはパスがどこから来るかです(あなたのシェルがsh/bashかcsh/tcshかによって '/ etc/profile'と'/etc/csh.login'経由で)。しかし、スクリプト内のコードを見て、残りの答えを得てください: '/ etc/paths'と'/etc/paths.d/* 'を見てください(これらはすべてファイルでなければなりません。含めるパスエントリ)。 – torek

+0

私はあなたが "表現"の意味を理解していません。 path_helperはバイナリ実行可能ファイルです。生成されたパスヘルパーを出力するバッククォート(2行目)を使ってシェルコマンドの一部として呼び出されています。行のeval部分は、path_helperの出力をシェルの一部として実行する必要があることを示します。最後の部分はexport PATHで、結果は環境シェルに格納されます。 –

関連する問題