当我使用 mobaXterm ssh 到 RHEL7 服务器(保存了 uname 和 pwd)时,我只是看到一个闪烁的光标,它将接受输入但不执行任何操作。我可以按ctrl+c
然后出现bash-4.2$
,一切都很好,但是这很烦人,并且ctrl+c
在登录时添加到 mobaXterm 执行命令并不能“解决”这里的问题。
使用其他 ssh/telnet 工具(例如 putty、secureFX)会产生相同的结果(ctrl+c
以获得交互式 shell)
答案1
如果.profile
实际上确实包含:
SHELL=`type -p bash`
exec bash -l
没有.bash_profile
,我们有一个循环。您的登录 shell(也许/bin/sh
)读取.profile
,这会导致它exec
作为登录 shell 进行 bash。 Bash,当作为登录 shell 运行时,读取.bash_profile
,如果缺少,则读取.profile
。因此,它也会读取并执行这些命令,这会导致它exec
作为登录 shell 进行 bash。 Bash,当作为登录 shell 运行时,...。
这可能是一种更明智的方法:
if [ -z "${BASH_VERSION}" ];
then
SHELL=`type -p bash`
exec bash -l
fi
不过,您应该要求系统管理员将 bash 设置为您的登录 shell,而不是像这样进行黑客攻击(假设您自己无法使用 bash 来执行此操作chsh
)。