.profile
、.bash_profile
、.bashrc
ファイルの機能の違いは何ですか?
.bash_profile
と.bashrc
はbash
に固有ですが、.profile
は独自のシェル固有の構成ファイルがない場合に多くのシェルによって読み取られます。 (.profile
は元のBourneシェルで使用されていました。).bash_profile
または.profile
は、.bashrc
とともにログインシェルによって読み取られます。サブシェルは.bashrc
のみを読み取ります。 (ジョブ制御と最新のウィンドウシステムの間では、.bashrc
自体はあまり使用されません。screen
またはtmux
を使用する場合、画面/ウィンドウは通常、ログインシェルではなくサブシェルを実行します。)
この背後にあるアイデアは、.profile
(またはそのシェル固有のバージョン)によって1回限りのセットアップが行われ、.bashrc
によってシェルごとの設定が行われるというものでした。たとえば、一般に、セッション内でサブシェルを起動するたびに環境変数を破壊するのではなく、セッションごとに1回だけ環境変数をロードする必要がありますが、エイリアスは常に必要です(環境変数のように自動的に伝播されません)。
その他の注目すべきシェル設定ファイル:
/etc/bash_profile
(フォールバック/etc/profile
)は、システム全体の構成ではユーザーの.profile
の前に読み取られ、同様にサブシェルでは/etc/bashrc
(このフォールバックなし)が読み取られます。 Ubuntuを含む多くのシステムでも、シェルスクリプトレットを含む/etc/profile.d
ディレクトリを使用しています。これは、.
から/etc/profile
(source
)で編集されたものです。ここでのフラグメントはシェルごとであり、*.sh
はすべてのBourne/POSIX互換シェルに適用され、その他の拡張機能はその特定のシェルに適用されます。
。profile
.profile
は、環境変数Bash
や友人など、PATH
に特に関係のないもの用であり、いつでも利用できるはずです。
たとえば、グラフィカルデスクトップセッションを開始するときに.profile
もロードする必要があります。
。bashrc
.bashrc
は、Bash aliases
、お気に入りの設定editor
、Bash Prompt
の設定など、インタラクティブなBashの使用法を構成するためのものです。
。bash_profile
.bash_profileは、.profile
と.bashrc
の両方がlogin shells
に対して読み込まれるようにするためのものです。
たとえば、.bash_profile
は次のような単純なものになります
. ~/.profile
. ~/.bashrc
.bashrc
を省略した場合、.profile
のみが読み込まれます。
Bashのmanページによると、.bash_profile
はログインシェルに対して実行され、.bashrc
はインタラクティブな非ログインシェルに対して実行されます。
では、ログインシェルまたは非ログインシェルとは何ですか?
マシンに座っているか、sshを介してリモートでコンソールからログイン(ユーザー名とパスワードを入力)すると、最初のコマンドプロンプトの前に.bash_profile
が実行され、シェルが構成されます。ただし、すでにマシンにログインしていて、GnomeまたはKDE内で新しいターミナルウィンドウ(xterm)を開いている場合は、ウィンドウコマンドプロンプトの前に.bashrc
が実行されます。 .bashrc
は、ターミナルで/bin/bash
と入力して新しいbashインスタンスを開始するときにも実行されます。
ターミナルウィンドウのガイドラインの例外は、Mac OS XのTerminal.appです。これは、新しいターミナルウィンドウごとにデフォルトでログインシェルを実行し、.bash_profile
ではなく.bashrc
を呼び出します。他のGUI端末エミュレータでも同じことができるかもしれませんが、ほとんどの場合そうではありません。
詳細 ここ 。