間の機能の違いは何ですか.profile
、.bash_profile
そして.bashrc
ファイルは?
間の機能の違いは何ですか.profile
、.bash_profile
そして.bashrc
ファイルは?
回答:
.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互換シェルに適用され、その特定のシェルに適用されるその他の拡張機能があります。
。プロフィール
.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
ロードされるだけです。
bashのマニュアルページによると、.bash_profile
ログインシェルに対して.bashrc
実行され、対話型の非ログインシェルに対して実行されます。
それでは、ログインシェルまたは非ログインシェルとは何ですか?
コンソールからログイン(ユーザー名とパスワードを入力)すると.bash_profile
、最初のコマンドプロンプトの前に、マシンに座っているか、ssh:を介してリモートでシェルが実行されます。ただし、すでにマシンにログインしてGnomeまたはKDE内で新しいターミナルウィンドウ(xterm)を開いている場合.bashrc
は、ウィンドウコマンドプロンプトの前に実行されます。ターミナルに.bashrc
入力/bin/bash
して新しいbashインスタンスを開始するときにも実行されます。
ターミナルウィンドウガイドラインの例外はMac OS XのTerminal.appです。これは、新しいターミナルウィンドウごとにデフォルトでログインシェルを実行し、の.bash_profile
代わりに呼び出します.bashrc
。他のGUI端末エミュレーターでも同じことができますが、ほとんどの場合はそうではありません。
詳細はこちら。