1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.bashrcを編集したらsourceコマンドで再起動しよう

Posted at

.bashrcに追加したエイリアスが反応しないときの対処法

対象読者

  • Linux/WSL環境でターミナル操作を始めたばかりの方
  • .bashrcにエイリアスを追加したが動作しなくて困っている方
  • シェルの設定ファイルの仕組みを理解したい方

この記事で解決できること

  • .bashrcを編集したのにエイリアスが使えない
  • 新しく追加した環境変数が反映されない
  • command not foundと表示されてしまう

結論

.bashrcを編集しただけでは、現在開いているターミナルには反映されません。以下のコマンドで再読み込みが必要です。

source ~/.bashrc

なぜ反映されないのか

.bashrcはシェル(ターミナル)の起動時に一度だけ読み込まれます。

つまり、すでに起動済みのターミナルは、起動した時点の.bashrcの内容しか知りません。ファイルを編集しても、自動的に再読み込みされることはありません。

ターミナル起動 → .bashrc読み込み → シェル利用可能
     ↑
 この時点の.bashrcの内容が使われる

後から.bashrcを編集しても、起動済みのシェルには何も起こらないのです。

解決方法は2つ

方法1: sourceコマンドで再読み込み

source ~/.bashrc

sourceコマンドは、指定したファイルを現在のシェルで実行します。これにより、新しく追加したエイリアスや環境変数が即座に反映されます。

なお、.(ドット)はsourceの省略形として使えます。

. ~/.bashrc

方法2: ターミナルを開き直す

新しいターミナルを開けば、その時点の.bashrcが読み込まれます。ただし、作業中のターミナルを閉じたくない場合は方法1を使います。

実践例

AWS CLIの認証情報を切り替えるエイリアスを追加する場合を考えます。

# .bashrcに追記
alias cpstg='export ENV=stg && export AWS_ACCOUNT_ID=123456789012 && export AWS_PROFILE=my-stg'

編集後、以下を実行します。

source ~/.bashrc

これでエイリアスが使えるようになります。

cpstg
echo $ENV  # stg と表示される

まとめ

  • .bashrcの変更は自動的には反映されない
  • source ~/.bashrcで現在のシェルに再読み込みできる
  • 新しいターミナルを開けば自動的に最新の設定が適用される
  • 設定ファイルは起動時に一度だけ読み込まれる仕組みを理解しておく

この仕組みを知っておくと、シェルの設定をいじるときに無駄なトラブルシューティングを避けられます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?