重複の可能性:
。bashrcと.bash_profileの違い
.profile
と.bash_profile
の違いは何ですか。いつ設定するのですか。
つまり、.bash_profile
を構成する場合でも、.profile
を構成する必要がありますか?
bash
がデフォルトのシェルであるとすると、その違いはbash
のマニュアルページ(man bash
)で説明されています。
When bash is invoked as an interactive login Shell, or as a non-interac-
tive Shell with the --login option, it first reads and executes commands
from the file /etc/profile, if that file exists. After reading that file,
it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that
order, and reads and executes commands from the first one that exists and
is readable. The --noprofile option may be used when the Shell is started
to inhibit this behavior.
.profile
の由来であるPOSIX-Shell互換モードをカバーするmanページに詳細があります。詳細については、manページのセクション全体をお読みください。
.bash_profile
を構成する場合、.profile
も構成する必要はありません。
私は自分のエイリアスとコマンドを.profile
に保持したいので、何かを台無しにした場合でも、システム全体に影響を与えたり、__ some_code__を変更する他のアプリケーション(MacPortsなど)に影響を与えたりすることなく、常に.profile
を削除できます。
.bash_profile
を使用するには、.profile
ファイルにsource ~/.profile
ファイルを読み込むために.bash_profile
行を.profile
に含める必要がある場合があります(Ned Deilyの回答を参照)。
.profileは、通常のシェルプロセスを取得したときにbashによって実行されます。端末ツールを開きます。 .bash_profileは、ログインシェルのbashによって実行されます。たとえば、リモートでマシンにtelnet/sshを実行する場合です。たとえば、リモートでマシンにssh(Xターミナルを開いたとしましょう)すると、最初に.bash_profileが実行されます。そのXTerminalで「xterm」と入力して別のXターミナルを起動すると、XTerminalの2番目のインスタンスに対して.profileが実行されます。ファイルはホームディレクトリ(〜)にあります。デフォルトで間違えていなければ、どちらも〜/ .bashrcを実行するので、それを編集して、ログインシェルと非ログインシェルの両方に共通の設定/変数を構成できます(例:PATHの設定、一部のエイリアス/ショートカットなど)。場合によっては、これらの2つに対して別の設定を行うこともできますが、その必要性に遭遇したことはありませんが、可能性はあります。
高速でシンプルな設定(複雑なことをしたくない場合)の場合は、〜/ .profileのすべてを設定するだけです。 .bash_loginまたは.bash_profileの詳細については、いくつかの問題が発生した場合にのみ(ただし、おそらく発生しないでしょう)。
私もOS Xを使用しており、.bash_profileまたは.bash_loginを必要とせず、.profileのみを使用しましたが、マイレージは異なる場合があります...