22

グーグルで検索した後、これに関するチュートリアルがないとは信じられません。誰かが私に方向性を指摘したり、Mac の .profile でこれらの行と変数が何を意味するかを説明したりできますか? 誰かがそれらをどのように構成できますか?

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
export PATH=$PATH:/usr/local/mysql/bin
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
#export PATH=/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5/bin:/Applications/MAMP/htdocs/cake/cake/console:/opt/local/bin:/opt/local/sbin:$PATH
export PATH=/android-sdks/platform-tools:~/android-sdks/tools:$PATH
export PATH=/Users/android-sdks/platform-tools:/Users/android-sdks/tools:$PATH
4

3 に答える 3

53

で始まる行#はすべてコメントです。PATH=は変数の値を設定しPATH、$PATH は現在の値に展開さexportれ、最初の は端末から実行するプログラムで値を使用できるようにします。

PATH の初期値が であるとし/usr/bin:/binます。

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

$PATH$PATH の以前の値に置き換えます。したがって、上記のセットPATH

/opt/local/bin:/opt/local/sbin:/usr/bin:/bin

前進し、

export PATH=$PATH:/usr/local/mysql/bin

ここでも、$PATH を以前の値に置き換えます。

/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin

export PATH=/android-sdks/platform-tools:~/android-sdks/tools:$PATH

我々は持っています

/android-sdks/platform-tools:~/android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin

(これ~は、ホーム ディレクトリへのパスに置き換えられる特別なトークンですが、画像を取得する必要があります。)

そして最後に、その後

export PATH=/Users/android-sdks/platform-tools:/Users/android-sdks/tools:$PATH

我々が得る

/Users/android-sdks/platform-tools:/Users/android-sdks/tools:/android-sdks/platform-tools:~/android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin

PATHコマンドラインに入力したコマンドを検索するために使用されます。したがって、 と入力fooすると、シェルは指定された順序で以下の名前を探します。

/Users/android-sdks/platform-tools/foo
/Users/android-sdks/tools/foo
/android-sdks/platform-tools/foo
~/android-sdks/tools/foo
/opt/local/bin/foo
/opt/local/sbin/foo
/usr/bin/foo
/bin/foo
/usr/local/mysql/bin/foo

PATH の現在の値を確認するには、次を実行します。

echo $PATH

新しいディレクトリを の最初に追加する必要がありますかPATH、それとも最後に追加する必要がありますか? 常に問題になるわけではありませんが、問題になる場合もあります。システムが最初にチェックする場所によって異なります。

デフォルトのディレクトリを調べる前に他のディレクトリを検索することが目的の場合は、最初に追加する必要があります。たとえば、gitソース コードの管理に使用されるユーティリティです。git~/git に新しいバージョンをインストールしてデフォルトで使用たい場合は、次のようにします。

export PATH=~/git/bin:$PATH

これは、~/git/bin/git が /opt/local/bin/git をオーバーライドすることを意味します。

一方、管理者がgitシステム全体にインストールすることを好むかもしれません。管理者が誰でも利用できるようになるまでローカル コピーのみを使用したい場合、これはより理にかなっています。

export PATH=$PATH:~/git/bin

この場合、 がパスの前にあるため、まだ存在しない場合~/git/bin/gitにのみ使用されます。/opt/local/bin/git/opt/local/bin

多くのコマンドが複数の場所に存在することはありません。たとえばmy-backup-script、Apple Time Capsule の に書いて置くことができます/Volumes/Capsule/scriptsmy-backup-script競合する他の場所で呼び出されるコマンドがある可能性は低いです。したがって、次のコマンドのいずれかを使用するmy-backup-scriptと、適切なスクリプトを入力して実行できます。

export PATH=/Volumes/Capsule/scripts:$PATH

また

export PATH=$PATH:/Volumes/Capsule/scripts

1つが良いですか?私のアドバイスは、後者を行うことです。システムは$PATH、見つける必要があるすべてのコマンドについて、 のディレクトリを順番に検索する必要があることに注意してください。ほとんどのコマンドはローカル システム上にあるため、パスの最後に低速のネットワーク ストレージを配置するのが最も理にかなっています。

于 2012-12-20T19:10:02.503 に答える
8

manページから、export環境変数を設定するだけです。

環境変数はPATH、コマンド ラインに入力したコマンドを検索する場所を、検索する順序で Mac に指示します。これは、コロンで区切られたパスのリストです。

$PATHは、PATH環境変数の現在の値です。

したがって、次のような行

export PATH=/foo:$PATH

の先頭/fooに追加しますPATH

export PATH=$PATH:/foo

に追加/fooしますPATH

于 2012-12-20T18:59:02.677 に答える
3

走るman

そして、次のように質問に答えますexport

現在のPATH値が表示され、複数のパスが存在することがわかります。

(私のは/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin)

:1 つのパスの終わりを表すことを観察します。

これを使用して取得できます$PATH

このリストにもう 1 つのパスを追加する場合は、現在のパスをまたはのように新しいパスに追加する必要があり/newPath:$PATHます$PATH:/newPath

最後に、それを保存するには、 を使用する必要がありますexport PATH=$PATH:/newPath

注 : この回答は、初心者の開発者向けです。

于 2016-12-06T10:27:01.027 に答える