我必须手动启动 bash

Dav*_*vid 2 linux vpn bash

我有点 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)

命令,但我更了解发生了什么,首先改变了这一点,以及如何恢复它。

gro*_*taj 5

运行此命令:

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.

  • 我明白你的意思,但完全不同意。尤其是当您向初学者展示内容时 - 以正确的方式教授。它打字更少,效率更高。如果你从教坏习惯开始,那么,他们会坚持下去。(但确实这是一个小问题。随你的便:-))。 (7认同)