如何修复 bash 或在 SSH 登录时自动运行 /bin/bash

22 bash ssh

当作为记录root在我的服务器一切正常,但是当我登录为myusernamebash的工作不正常。

该行开始于:

$ 
Run Code Online (Sandbox Code Playgroud)

代替

myusername@myserver:~$
Run Code Online (Sandbox Code Playgroud)

并且所有特殊键(如箭头键、Tab 键等)都不起作用。

当我bin/bash再次输入时,它再次工作,但我想解决问题或bin/bash在登录时自动运行。我怎样才能解决这个问题?

EEA*_*EAA 24

你只需要改变你的外壳。作为该用户,运行:

$ chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)

然后退出并重新登录。

执行此操作后,提示看起来不像您想要的,您需要开始调整环境的 PS1 变量。

  • 这实际上有点危险,因为问题是关于“root”用户的。他可能没有使用 Linux。Root 应该使用默认 shell,因为供应商可能会指望它是 `ksh` 或他们选择的其他任何东西。相反,真正的答案是“无论如何你都不应该以 root 身份登录”。 (2认同)

Mik*_*ing 15

你需要改变你的外壳。运行命令

chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)

然后再次登录。

但是,并非所有用户都有权更改自己的外壳。如果您使用sudo记得将您的用户名添加到chsh命令中

sudo chsh <username> -s /bin/bash
Run Code Online (Sandbox Code Playgroud)

否则,您将无意中更改 root 的 shell。


H.-*_*itt 6

一种可能的原因是myusername的默认 shell不是 bash。

您可以使用以下命令检查当前用户的外壳:

  • echo ${SHELL}
  • echo $0

要永久更改用户外壳,请参见man chsh ,例如:

chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)