我有点 Linux 菜鸟,所以如果这是一个非常基本的问题,我很抱歉。我试图在超级用户上寻找其他答案,但我不确定我在寻找什么。
所以,这是我的问题。当我登录到我的 vpn 服务器时,它不再自动打开 bash。相反,它只是给了我
$
Run Code Online (Sandbox Code Playgroud)
代替
$ user@host / location
Run Code Online (Sandbox Code Playgroud)
当我使用 root 用户登录时,它实际上在登录时加载了 bash。我可以使用以下命令手动加载 bash
/bin/bash
Run Code Online (Sandbox Code Playgroud)
命令,但我更了解发生了什么,首先改变了这一点,以及如何恢复它。
运行此命令:
grep $USER /etc/passwd
Run Code Online (Sandbox Code Playgroud)
(解释here。或者使用cat /etc/passwd | grep $USER
,两者是等效的,但后者可能更容易理解。虽然效率较低,因此不建议用于脚本等。感谢@Mat 提供此建议。)
它将返回您的用户帐户信息。这是我的:
gronostaj:x:1000:1000:gronostaj,,,:/home/gronostaj:/bin/bash
Run Code Online (Sandbox Code Playgroud)
最后一个冒号 ( /bin/bash
)之后的部分是我的默认 shell。看来你的是sh
。这意味着您要么将其显式设置为默认 shell ( /bin/sh
),要么没有默认 shell/无效 shell,因此 Linux 会退回到sh
最基本的shell 。
要切换到bash
,请运行以下命令:
chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)
它会询问您的密码并将默认 shell 更改为bash
.