为什么命令行中没有显示名字?

为什么命令行中没有显示名字?

希望这里有一个简单的问题,我不知道为什么在添加新帐户并登录时 $ 处没有用户名?

 Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-23-generic-pae i686)

 * Documentation:  https://help.ubuntu.com/

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

You have mail.
$

答案1

如果您使用添加新帐户,useradd则可能会将新用户的登录 shell 设置为 /bin/sh,在 Ubuntu 中,这是 dash shell 的符号链接。Dash 是一个更简单的 shell,它不读取 ~/.bashrc 文件,也不会设置用户@主机命令行提示符。您可以通过查看 /etc/passwd 文件或使用

getent passwd username

bash您可以使用以下方式将默认 shell 更改为更常用的 shell

chsh -s /bin/bash

如果你以要更改其 shell 的用户身份登录,或者

sudo chsh -s /bin/bash username

更改另一个帐户的登录 shell。为了防止这种情况再次发生,您可以useradd使用-s--shell选项在命令行上指定登录 shell,或者使用更高级别的实用程序adduser

答案2

基本的 Bash 提示符只是一个名为 PS1 的变量。此变量通常在 ~/.bashrc 文件中设置。bash shell 在启动时读取该文件并设置变量。如果未在 .bashrc(或 .profile)文件中设置 PS1 变量,则您将没有提示符。在您的例子中,PS1 变量设置为 $:

export PS1="\$"

您可以尝试该变量,例如:

  • export PS1="\u\$"
  • export PS1="\u@\h\$"

您将看到提示如何变化。按照您希望提示显示的方式编辑您的 bashrc 文件。有关更多信息,请访问这里

答案3

正如在另一个问题中看到的那样,它为我解决了这个问题 https://askubuntu.com/a/1064774/212948

如图所示这个 Ubuntu 维基页面,你应该运行

sudo dpkg-reconfigure dash

并选择选项不是用作/bin/dash默认 shell。通过这种方式进行更改不仅可以修复符号链接 /bin/sh,还可以配置系统的其他部分以使其正常运行,例如确保man sh指向 bash 手册页而不是 dash 手册页。

相关内容