.bashrc / .bash_profile の記述ミスでシェル環境が壊れるときの復旧手順

  • URLをコピーしました!
目次

概要

.bashrc.bash_profile は、ユーザーログイン時やシェル起動時に環境を設定するための重要なファイルです。
しかし、これらに誤った記述を追加すると シェルが起動しない/コマンドが使えない/PATH が消える などの問題が発生します。
この記事では、典型的な原因とその修復方法を整理します。

主な原因と現象

原因現象・症状
コマンド構文エラー(例:if/do/done の不整合)ログイン時に bash: syntax error near unexpected token などのエラーが表示される
PATH 変数の上書き・消失コマンドが「見つからない(command not found)」となる
export や alias の誤記環境変数が設定されず挙動が不安定になる
無限ループ(source を繰り返すなど)ログインできなくなる、CPU 使用率が上がる
権限・所有権の誤りファイルが読み込まれず、設定が反映されない

1. 緊急時の応急処置(ログインできない場合)

✅ シングルクォート付きでログインして .bashrc をスキップ

bash --noprofile --norc

このコマンドで .bashrc.bash_profile を読み込まずにシェルを起動できます。
これにより問題のファイルを安全に修正できます。

2. 問題の特定と修復手順

【手順①】構文エラーの確認

bash -n ~/.bashrc
bash -n ~/.bash_profile

→ エラー行があれば出力されます。
修正後は再読み込みを行います。

source ~/.bashrc

【手順②】PATH 変数が壊れていないか確認

echo $PATH

通常 /usr/local/bin:/usr/bin:/bin などが含まれています。
もし空になっている場合、以下のように復旧します。

export PATH=/usr/local/bin:/usr/bin:/bin:$PATH

その後、.bashrc の中で上書きしていないか確認しましょう。

【手順③】無限ループを確認

以下のような記述は危険です。

source ~/.bashrc

.bashrc の中で自分自身を呼んでいると、無限ループに陥ります。
もし必要であれば、以下のように条件付きで呼び出します。

if [ -f ~/.bash_aliases ]; then
    source ~/.bash_aliases
fi

【手順④】権限・所有権を確認

ファイルが正しい権限であるか確認します。

ls -l ~/.bashrc ~/.bash_profile

適切な権限は以下です。

-rw-r--r--  (所有者:自分)

修正例:

chmod 644 ~/.bashrc
chown $USER:$USER ~/.bashrc

【手順⑤】元の正常なファイルに戻す(バックアップがない場合)

他の正常なユーザーからコピーするか、最小限の内容を再作成します。

cat > ~/.bashrc <<'EOF'
# Basic Bash configuration
export PATH=/usr/local/bin:/usr/bin:/bin:$PATH
alias ll='ls -la'
EOF

3. 再ログインで確認

設定を反映させたら、シェルを再起動または再ログインして確認します。

exit

→ 再ログイン後にコマンドが正常に動くか、PATH が正しいか確認します。

まとめ:原因と解決方法対応表

原因解決方法コマンド例
構文エラーbash -n で構文チェック後に修正bash -n ~/.bashrc
PATH 上書き正しい PATH を再設定export PATH=/usr/local/bin:/usr/bin:/bin:$PATH
無限ループsource ~/.bashrc を削除または条件付き呼び出しif [ -f ~/.bash_aliases ]; then source ~/.bash_aliases; fi
権限誤り権限・所有権を修正chmod 644 ~/.bashrc
ファイル破損最小構成で再作成上記 cat > ~/.bashrc コマンド

補足

.bashrc は非ログインシェル、.bash_profile はログインシェルで読み込まれます。
設定を統一したい場合は .bash_profile から .bashrc を呼び出す構成にするのが推奨です。

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
目次