.profile .bash_profileと.bashrcの機能的な違いは何ですか


回答:


151

.bash_profileおよび.bashrcに固有bashであるのに対し.profile、独自のシェル固有の構成ファイルがない場合、多くのシェルによって読み取られます。(.profile元のBourneシェルで使用されていました。) .bash_profileまたは.profile、ログインシェルによって読み取られます.bashrc。サブシェルは読み取り専用.bashrcです。(ジョブ制御と最新のウィンドウシステムの間では.bashrc、それ自体はあまり使用されません。screenまたはを使用するとtmux、通常、スクリーン/ウィンドウはログインシェルではなくサブシェルを実行します。)

この背後にある考え方は、1回限りのセットアップが.profile(またはそのシェル固有のバージョン)によって行われ、シェルごとのセットアップがによって行われたということ.bashrcでした。たとえば、通常、セッション内でサブシェルを起動するたびに環境変数を強打するのではなく、セッションごとに1回だけ環境変数をロードしますが、常にエイリアス(環境変数のように自動的に伝達されない)が必要です。

その他の注目すべきシェル構成ファイル:

/etc/bash_profile(フォールバック/etc/profile)は.profile、システム全体の設定のためにユーザーの前に読み込まれ、同様/etc/bashrcにサブシェルで読み込まれます(この場合のフォールバックはありません)。Ubuntuはまた、使用を含む多くのシステム/etc/profile.dであるシェルスクリプトレットを含むディレクトリを.source)から-ed /etc/profile。ここのフラグメントはシェルごとにあり、*.shすべてのBourne / POSIX互換シェルに適用され、その特定のシェルに適用されるその他の拡張機能があります。


58

。プロフィール

.profileは、Bash環境変数PATHや友人など、特に関連していないもののためのもので、いつでも利用できるはずです。

たとえば.profile、グラフィカルデスクトップセッションを開始するときにもロードする必要があります。


.bashrc

.bashrcのようなBash aliases、インタラクティブなBashの使用法をeditor設定するBash promptためのものです。


.bash_profile

.bash_profileのは確かに両方のものであること作りのためである.profile.bashrcのためにロードされますlogin shells

たとえば、次の.bash_profileような単純なものにすることができます

. ~/.profile
. ~/.bashrc

を省略すると.bashrc.profileロードされるだけです。


1
これは、Mac OS Xのための私の質問に答え
ジェイクトロント

38

bashのマニュアルページによると、.bash_profileログインシェルに対して.bashrc実行され、対話型の非ログインシェルに対して実行されます。

それでは、ログインシェルまたは非ログインシェルとは何ですか?

コンソールからログイン(ユーザー名とパスワードを入力)すると.bash_profile、最初のコマンドプロンプトの前に、マシンに座っているか、ssh:を介してリモートでシェルが実行されます。ただし、すでにマシンにログインしてGnomeまたはKDE内で新しいターミナルウィンドウ(xterm)を開いている場合.bashrcは、ウィンドウコマンドプロンプトの前に実行されます。ターミナルに.bashrc入力/bin/bashして新しいbashインスタンスを開始するときにも実行されます。

ターミナルウィンドウガイドラインの例外はMac OS XのTerminal.appです。これは、新しいターミナルウィンドウごとにデフォルトでログインシェルを実行し、の.bash_profile代わりに呼び出します.bashrc。他のGUI端末エミュレーターでも同じことができますが、ほとんどの場合はそうではありません。

詳細はこちら

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.