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


16

root在我的服务器上登录时,一切正常,但是当我登录时,myusername由于bash无法正常工作。

该行开始于:

$ 

代替

myusername@myserver:~$

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

键入时,bin/bash它可以再次使用,但是我想解决问题或bin/bash在登录时自动运行。我怎样才能解决这个问题?

ssh  bash 

Answers:


16

您只需要更改外壳。以该用户身份运行:

$ chsh -s /bin/bash

然后退出并重新登录。

执行完此提示后,您将无法看到所需的提示,则需要开始调整环境的PS1变量。


这实际上是一种危险,因为问题是在询问root用户。他可能没有使用Linux。根应该保留在默认外壳程序中,因为供应商可能会指望它存在ksh或他们选择的其他任何内容。相反,真正的答案是“无论如何您都不应该以root用户身份登录”。
巴哈马特2012年

12

您需要更改外壳。运行命令

chsh -s /bin/bash

然后再次登录。

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

sudo chsh <username> -s /bin/bash

否则,您会无意间更改root的外壳。


有道理。稍微扩展答案。
Mikael Fremling 2014年

我非常天真地尝试:sudo chsh -s /bin/bash因为我的用户没有更改外壳的权限。您的回答帮助我解决了问题。谢谢!
Edenshaw

5

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

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

  • echo ${SHELL}
  • echo $0

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

chsh -s /bin/bash


0

只是想添加一件事。

如果需要sudo访问权限来更改该用户的bash,则您还需要在sudo命令中提及您的用户名,因为如果没有用户名,该用户名将适用于root用户。

$ sudo chsh -s /bin/bash <user>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.