我在我的 (这是在 Linode 框上) 末尾添加了以下行~/.bashrc
,然后退出我的 ssh 会话。
source ~/.profile
现在当我登录时,shell 没有响应。我从未进入提示符,输入命令也没有任何反应。
如果我按 Ctrl-c,它会关闭 ssh 连接。按 Ctrl-z 也不会有任何反应。我无法访问以~/.profile
尝试查看问题所在。
我怎样才能找回提示?
答案1
要取回你的 shell,只需按照以下步骤操作。
希望你还记得 .bashrc 中之前的内容。它应该是这样的:
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
将它们放入您可以访问 Linode 机器的机器上的同名文件 .bashrc 中。
现在使用此命令:
# scp .bashrc server:.
这会用默认的 .bashrc 替换您修改过的 .bashrc,然后您就能恢复您的 shell。
如果您遇到任何问题,请告诉我。
答案2
人们已经问过你如何解决这个问题。但是为什么这会发生在你身上呢?
在 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
,则会创建一个无限循环。