MacOSXで.bashrcに書いたパスを通す方法

パスを通そうとしてハマったついでに、いろいろ教えてもらって「ほお!」と思ったことがあったので、忘れても大丈夫なようにメモ :-)

今回初めて知ったのが、パスがどのタイミングで読まれているか、というお話し。まず、ログインすると、ログインシェル*1が起動されます*2。そのログインシェルがbashだった場合*3、/etc/profile*4→.bash_profile(ローカル*5)→.bashrc(ローカル)→/etc/bashrcの順番で読み込まれます。

そこで今回パスを通そうと$HOME/.bashrcにexport PATH=$PATH:***と書いてみたけど、通らない :-0 なぜだろうってなっていたら、この記事を教えてもらいました(参考)http://memo358.blog18.fc2.com/blog-entry-30.html)。

これによると、$HOME/.bash_profileに$HOME/.bashrcを見るように書いてあげないと、$HOME/.bashrcを見てくれないらしいです。そこで、参考記事にある通り、$HOME/.bash_profileに下記を追記。そうしたら、ちゃんと$HOME/.bashrcに書いたパスが通るようになりました。よかった! :-)

if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi

ちなみにパスを通すというのはどういうことかというと、例えば/abc/直下にあるd.exeというファイルを便利に起動するために、/abc/へのパスを通しておくと、コマンドで叩くときに/abc/d.exeとしなくても、d.exeだけで起動してくれます。これは、d.exeというファイルがあるかどうか、パスを設定しているすべての場所を探して、存在すれば起動してくれる、ということをしてくれるからなのだそう。つまり、パスを設定すればするほど、探しまわる範囲が広くなる、ということらしいです。ほお! :-0



おまけメモ【ログインシェルを確認する方法】
システム環境設定→アカウント→左下の鍵でロック解除→(マイアカウント上で右クリック)→詳細オプション→ログインシェル
参考)http://d.hatena.ne.jp/shinya_ohtani/20090208/1234061692

*1:LinuxUNIXのユーザがログインしたとき、最初に起動するシェルのこと

*2:ちなみにWindowsのシェルはコマンドプロンプトのみらしいです(最近はPowerShellというのも出てきたみたい)。UNIXはCシェルとかKシェルとかたくさんあるのだそうです(bashはもともとBシェルという名前だったのだとか)。

*3:たいていはbashのようです。コアな人は多機能なtcshとかを使うのだとか。

*4:/etc/の下はアカウントに関わらず全ユーザに共通して反映される設定ファイルが置いてある場所。たぶん。

*5:"/Users/アカウント名/"の直下