web-dev-qa-db-ja.com

.profileと.bash_profileの違いは何ですか、いつ構成するのですか? (マック)

重複の可能性:
。bashrcと.bash_profileの違い

.profile.bash_profileの違いは何ですか。いつ設定するのですか。

つまり、.bash_profileを構成する場合でも、.profileを構成する必要がありますか?

23
Imran

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ページのセクション全体をお読みください。

12
Ned Deily

.bash_profileを構成する場合、.profileも構成する必要はありません。

私は自分のエイリアスとコマンドを.profileに保持したいので、何かを台無しにした場合でも、システム全体に影響を与えたり、__​​ some_code__を変更する他のアプリケーション(MacPortsなど)に影響を与えたりすることなく、常に.profileを削除できます。

.bash_profileを使用するには、.profileファイルにsource ~/.profileファイルを読み込むために.bash_profile行を.profileに含める必要がある場合があります(Ned Deilyの回答を参照)。

5
speedofmac

.profileは、通常のシェルプロセスを取得したときにbashによって実行されます。端末ツールを開きます。 .bash_profileは、ログインシェルのbashによって実行されます。たとえば、リモートでマシンにtelnet/sshを実行する場合です。たとえば、リモートでマシンにssh(Xターミナルを開いたとしましょう)すると、最初に.bash_profileが実行されます。そのXTerminalで「xterm」と入力して別のXターミナルを起動すると、XTerminalの2番目のインスタンスに対して.profileが実行されます。ファイルはホームディレクトリ(〜)にあります。デフォルトで間違えていなければ、どちらも〜/ .bashrcを実行するので、それを編集して、ログインシェルと非ログインシェルの両方に共通の設定/変数を構成できます(例:PATHの設定、一部のエイリアス/ショートカットなど)。場合によっては、これらの2つに対して別の設定を行うこともできますが、その必要性に遭遇したことはありませんが、可能性はあります。

3
Liv

高速でシンプルな設定(複雑なことをしたくない場合)の場合は、〜/ .profileのすべてを設定するだけです。 .bash_loginまたは.bash_profileの詳細については、いくつかの問題が発生した場合にのみ(ただし、おそらく発生しないでしょう)。

私もOS Xを使用しており、.bash_profileまたは.bash_loginを必要とせず、.profileのみを使用しましたが、マイレージは異なる場合があります...

1
jm666