非交互Shell有时更好用

几天前看了一篇介绍ZSH的文章,打算尝试用zsh替换bash。

不料更换shell时出现失误,将chsh -s /bin/zsh误写作chsh -s /zsh,导致root没有可用的shell。

接下来我试图再次使用chsh将shell该回去,系统却已无反应。断开SSH重新连接,由于没有shell,都无法登录。

进入VPS的管理后台,使用基于VNC的交互式Shell也出现同样情况(无法登录)。然而,这家IDC的后台还提供了非交互式的shell(手打一行命令按回车执行,不能使用vim等具有交互界面的程序)。

由于无法使用任何文本编辑器(它们都有交互界面),因此我试图先执行cat /etc/passwd以检视各用户的shell,再执行sed -i 's/\/zsh/\/bin\/bash/g' /etc/passwd将root的shell恢复为/bin/bash

这方法奏效了。重新用SSH登录主机,能正常使用shell。

如果没有这个非交互式shell,我可能需要挂载安装盘,再通过"试用模式"完成对/etc/passwd的恢复。