コマンドが現在のシェルでプログラムを実行することは理解していますが、 .bashrc ファイルを「再ロード」するためにsource
実行する必要がある理由がよくわかりません。source .bashrc
私の理解では、.bashrc にエイリアスを追加してもスクリプトは実行されず、source .bashrc
単にファイルを「リロード」するだけです。
なぜ自動的にリロードされないのですか?
おそらく、何かが欠けているのでしょう。
内部ではどのように動作するのでしょうか?source
ログインせずに新しいエイリアスを機能させるためにこのファイルが必要なのはなぜですか?
答え1
.bashrc
は、bash の起動時に 1 回だけ読み込まれます。これは設計によるものです (これまでも常にそうでした)。 にそれ以降の変更を加えても、 が再度読み込まれる.bashrc
まで変更は適用されません。 を実行すると、まさにこれが行われ、bash にそのファイルを再度読み取るように指示することになります。.bashrc
source .bashrc
もちろん、bash の新しいコピーを開始することもできます (たとえば、新しいターミナル セッションを開始するなど)。これにより、新しい bash プロセスがファイルを.bashrc
再度読み取ります (ただし、古いセッションには変更はありません)。
ところで、.bashrc
ファイルはスクリプトを作成し、それをソースとして指定することで、そのファイル内に配置されたコマンドを実行します。この場合、コマンドはエイリアスを定義しますが、実質的には、そのファイル内に任意のコマンドを配置できます。