GNU/Linux >> Linux の 問題 >  >> Linux

〜/ .profileを〜/.bash_profileに追加する理由

RVMをインストールすると、次のメッセージが表示されます。

* 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

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

賢明なRVM開発者が.profileの調達を提案するのはなぜですか .bash_profile内 ?

承認された回答:

.profile および.bash_profile 実行されるタイミングに関しては同じです。ログイン時に実行されます。違いは、bashのみが.bash_profileを実行することです。;ボーンスタイルのシェル(ダッシュ、kshなど)は.profileを実行します 。 Bash自体は.profileを実行します .bash_profileの場合 存在しません。

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

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

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

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

関連:GRUB2のコマンドからの出力に等しい変数を設定するにはどうすればよいですか?
Linux
  1. なぜsudoを使用する必要があるのですか?

  2. 名前にスペースが含まれている場合にグループに追加するには?

  3. IP 転送 =いつ、なぜこれが必要なのですか?

  1. TAMとは何ですか?なぜあなたはTAMになりたいのですか?

  2. 〜/ .bash_profileが機能しないのはなぜですか?

  3. 起動可能なLinuxUSBスティックを作成するときに同期が非常に重要なのはなぜですか?

  1. いつ、なぜApt-get Updateを使用する必要がありますか?

  2. このシェル パイプラインが終了するのはなぜですか?

  3. ssh-add の実行時に Permission Denied が表示されるのはなぜですか?