~/.bash_profile に ~/.profile を追加するのはなぜですか?

~/.bash_profile に ~/.profile を追加するのはなぜですか?

設置時右心室VM次のメッセージを受け取りました:

* WARNING: You have '~/.profile' file, you might want to load it,
  to do that add the following line to '/home/dotancohen/.bash_profile':

    source ~/.profile

xmodmap ~/.Xmodmap私の〜/ .profileファイルに新しいシェルを開くたびに(CapsLockとESCキーの交換)実行したくないファイルが含まれているので心配されます。

賢明なRVM開発者が.profile購入を推奨するのはなぜですか.bash_profile

答え1

.profile.bash_profile実行時間に関しては同じです。つまり、ログイン時に実行されます。違いは、Bashだけが実行されることです.bash_profile。 Bourneスタイルのシェル(dash、kshなど)は実行されます.profile。存在しない.profile場合、.bash_profileBash自体が実行されます。

bashをログインシェルとして使用しても、.profile通常はグラフィカルモードでログインしたときに実行されるシェルです。多くのディストリビューションshでは、Xセッションの起動スクリプトが.profile

したがって、環境変数の定義などの操作を実行する.profile代わりに使用することをお勧めします。.bash_profilebash 特定の機能が絶対に必要な場合でない場合は、すべてを に入れてください.profile。しかし、そうしても維持する理由があります.bash_profile。つまり、bashがそれをロードするときにインタラクティブであっ.bashrcてもロードされません。したがって、ほとんどの人は~/.bash_profile次の2行で構成する必要があります。

. ~/.profile
case  $- in *i*) . ~/.bashrc;; esac

xmodmap逃げてはいけません.profile。新しいシェルを開くと、これは発生しませんが、たとえば、X11転送でSSHを使用してリモートでログインする場合に発生します。残念ながら、グラフィックモードでログインしても標準ファイルはロードされません。 Debian ロード~/.xsessionrc(Gdm ロードを除くすべてのディスプレイマネージャに適用されるようです~/.xprofile)。他のディストリビューションには異なる設定があります。ディストリビューション間の移植性が必要な場合は、xmodmap起動時に実行するようにデスクトップ環境を構成する方が簡単です。 CapsLockとCtrlを置き換えることがすべての場合は、ほとんどの最新のデスクトップ環境で提供されているインターフェイスのXKB設定を使用してこれを実行できます。

答え2

.bash_profilebash(1)はを読む唯一のシェルであり、他のBourneシェル派生プログラムのみを読むことに注意してください.profile。時々別のシェルを使用する場合.profile

関連情報