web-dev-qa-db-ja.com

bashrcに行を追加しましたが、bashが応答しなくなりました

~/.bashrc(これはLinodeボックスにあります)の最後に次の行を追加し、sshセッションからログアウトしました。

source ~/.profile

ログインすると、シェルが応答しなくなります。プロンプトが表示されることはなく、コマンドを入力しても何も起こりません。

Ctrl-cを押すと、ssh接続が閉じます。 Ctrl-zも何もしません。 ~/.profileにアクセスして、問題が何であるかを確認することができません。

プロンプトを元に戻すにはどうすればよいですか?

2
duckyfuzz

シェルを元に戻すには、この手順を使用するだけです。

以前にあった.bashrcの内容を覚えておいてください。次のようになります。

# .bashrc

# Source global definitions
    if [ -f /etc/bashrc ]; then
        . /etc/bashrc
    fi

Linodeマシンにアクセスできるマシン上の同じ名前.bashrcのファイルにそれらを置きます。

次のコマンドを使用します。

 # scp .bashrc server:.

これにより、変更した.bashrcがこのデフォルトのものに置き換えられ、シェルを元に戻すことができるはずです。

これで問題が発生した場合はお知らせください。

2
Napster_X

人々はすでにこれを修正する方法をあなたに尋ねました。しかし、なぜこれがあなたに起こったのですか?

Debian/Ubuntuでは、~/.profileに次のコードがあります。

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

したがって、デフォルトでは、~/.profileには~/.bashrcが含まれています。 ~/.bashrc~/.profileを含めるように指示すると、無限ループが作成されます。

2