環境変数を設定する際、
.bash_profileまたは.bashrc
に記載すると思いますが、使い分けがわかりません。
それぞれどんな状況で使えば良いのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
ベストアンサー
.bash_profile
は、ログインシェルの時だけに読み込まれます。
.bashrc
は、ログインシェルでない対話型シェル(≒端末からコマンドを読み込んで実行するシェル、ログインシェルからbash
と打って起動したシェル)の時だけに読み込まれます。
対話型でないシェル、つまりシェルスクリプトを実行するシェルではどちらも読み込まれません。
ここまでは、man bash
の「起動」というセクションに詳しく書いてあります。
わかりにくければ、それぞれの冒頭にecho bash_profile start
、echo bashrc start
とか書いてみると目で見て起動タイミングが分かると思います。
環境変数は、子プロセスに継承されるのでログインシェルでだけ設定すればよく、環境変数設定は.bash_profile
に書くのがいいと思います。
一方、alias定義や関数定義は子bashに継承されないので、.bash_profile
と.bashrc
の両方に書く必要がありますが、.bashrc
にだけ書いて、.bash_profile
からsource ~/.bashrc
すると書くのを一カ所に出来ます。
投稿2016/01/24 01:18
編集2016/01/24 01:22総合スコア86277
0
自分も直ぐに忘れます…
Bashの環境設定に関連するファイルは結構たくさんありますが、結局は、それらがどの順番に読み込まれるかを理解すれば、各種設定ファイルの使い分けで迷わなくなるのだと思います。
その点で、下記ページの説明が、今まで読んだ中で一番詳しく系統だっており、忘れたら常に参照するようにしています。
ユーザーの環境変数を設定するbashの設定ファイルと、カスタムプロンプトについて
上記説明によれば、環境変数の場合は下記に設定すれば良いです。
全ユーザーに共通の設定 ⇒ /etc/profile
自分だけに必要な設定 ⇒ ~/.bash_profile
su
コマンドでユーザーを切り替える際にも -
(ハイフン)を付けるかどうかで挙動が変わってくるので、設定をどこに書くかだけでなく「どのように運用するか」を含めて考える必要があると思います。
投稿2016/01/24 00:55
総合スコア5936
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。