.bashrc エイリアスを適用するには、なぜ source コマンドを実行する必要があるのですか?

.bashrc エイリアスを適用するには、なぜ source コマンドを実行する必要があるのですか?

コマンドが現在のシェルでプログラムを実行することは理解していますが、 .bashrc ファイルを「再ロード」するためにsource実行する必要がある理由がよくわかりません。source .bashrc

私の理解では、.bashrc にエイリアスを追加してもスクリプトは実行されず、source .bashrc単にファイルを「リロード」するだけです。

なぜ自動的にリロードされないのですか?

おそらく、何かが欠けているのでしょう。

内部ではどのように動作するのでしょうか?sourceログインせずに新しいエイリアスを機能させるためにこのファイルが必要なのはなぜですか?

答え1

.bashrcは、bash の起動時に 1 回だけ読み込まれます。これは設計によるものです (これまでも常にそうでした)。 にそれ以降の変更を加えても、 が再度読み込まれる.bashrcまで変更は適用されません。 を実行すると、まさにこれが行われ、bash にそのファイルを再度読み取るように指示することになります。.bashrcsource .bashrc

もちろん、bash の新しいコピーを開始することもできます (たとえば、新しいターミナル セッションを開始するなど)。これにより、新しい bash プロセスがファイルを.bashrc再度読み取ります (ただし、古いセッションには変更はありません)。

ところで、.bashrcファイルスクリプトを作成し、それをソースとして指定することで、そのファイル内に配置されたコマンドを実行します。この場合、コマンドはエイリアスを定義しますが、実質的には、そのファイル内に任意のコマンドを配置できます。

関連情報