OS X-パーソナルbinディレクトリ(〜/ bin)を作成し、フルパスを指定せずにスクリプトを実行します


19

だから、私がやろうとしていることはbin、ホームフォルダに個人ディレクトリを作成することです。次のフォルダーを作成しました。

/Users/thi/bin

スクリプトをこのフォルダーに入れますが、ターミナルに入力すると:

myScript

実行されません。

に関連するこのbinパスをエクスポートする必要があると言われましたがecho $PATH、その方法はわかりません。


回答:


20

次をファイルに追加する必要があります~/.profile

export PATH=/Users/thi/bin:$PATH

それから source ~/.profile

このファイルの作成が必要になる場合があります。また、このファイルはで始まるため.、テキストエディターなどのアプリケーションを介して編集するためにファインダーに表示されない場合があります。非表示のファイルを含むすべてのファイルをリストするには、次を使用します。

ls -la ~/

export PATH = / Users / thi / bin:$ PATHを.bashrcファイルに追加すると、うまくいきますか?それが正しいか?
ティG.

12
$HOME/bin代わりに使用します/Users/thi/bin。その後、ユーザー名が異なる可能性のある別のマシンに設定をコピーできます。
lhf

ターミナルにPATH = $ HOME / bin:$ PATHと入力してから、export PATHと入力します。それはトリックをしますか?
ティG.

1
これを行うと、現在の設定が変更されますが、今後のブートでは変更されません。再起動後もパスを変更するには、.profileファイルにこれらのコマンドを含める必要があります。
ダニエル

1
すばらしい、答えてくれてありがとう。に追加export PATH=$HOME/bin:$PATHしました$HOME/.bash_profile
ティG.

10

bashを使用する場合は、次のような行を追加します~/.bash_profile

PATH=~/bin:$PATH

PATHはデフォルトでエクスポート用にマークされているため、を使用する必要はありませんexport

両方の場合~/.bash_profile~/.profileが存在、bashはのみ読み込み~/.bash_profile、それが対話的なログインシェルとして起動されたとき。~/.profileまた、bashと同じ構成オプションを理解できない可能性のある他のシェルでも使用されます。

ターミナルおよびiTerm 2は、デフォルトでログインシェルとして新しいシェルを開きます。bashが対話型ログインシェルとして呼び出された場合、読み取りはされます~/.bash_profileが、読み取りは行われません~/.bashrc。他のプラットフォームのターミナルエミュレータは、多くの場合、新しいシェルを非ログインシェルとして開くため、たとえばbashは読み取ります~/.bashrcが、読み取りはできません~/.bash_profile。OS Xユーザーは、多くの場合~/.bash_profile~/.bashrc他のプラットフォームに対応する個人設定ファイルとして使用しますが、ターミナルまたはiTerm 2からソース~/.bashrc~/.bash_profile取得したり、新しいシェルを非ログインシェルとして開いたりすることも一般的です。

/etc/pathsまたは/etc/launchd.confでパスをよりグローバルに変更することもできますが、多くのコンテキストではパスはデフォルトのままです/usr/bin:/bin:/usr/sbin:/sbin。そして、シェルとテキストエディターでパスを変更するだけで本当に必要です。


素晴らしい、答えをありがとう。に追加export PATH=$HOME/bin:$PATHしました$HOME/.bash_profile
ティG.

exportを必要とせず、両方~(引用符で囲まれていない場合)と$HOMEexportまたはプレーンな割り当てを使用する場合の両方で変数割り当ての前に展開されます。
Lri

Lauri Ranta、あなたは個人的に何を好みます.bash_profile.profile?または.bashrc、ホームディレクトリにありますか?
ティG.

以前は.bash_profileのみを使用していましたが、現在はメインの構成ファイルとして.bashrcを使用しており、.bash_profileにはが含まれています. ~/.bashrc。新しいシェルは、emacsおよびtmuxのシェルモードで非ログインシェルとして開かれます。.profileはメイン構成ファイルとして使用しません。これは、kshなどの他のシェルによっても読み取られるためです。
-Lri

3

後は、一般的に追加のパスを置く$PATHようにPATH=$PATH:/$HOME/binあなたがであるかもしれないと同じ名前を持つ別の実行ファイルに優先したくない場合ため/binなど、


4
$HOME/binまさにその理由で最初に置くと主張する人もいるでしょう。しかし重要なことは、ディレクトリの順序が$PATH重要であり、シェルが最初に一致するコマンドを選択することです。これを指摘してくれてありがとう。
nohillside
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.