答案1
在 Debian 系统中,如果您创建的用户useradd
没有指定 shell(使用-s
选项),则用户默认 shell 将设置为/bin/sh
,它链接到/bin/dash
而不是/bin/bash
,从 Squeeze 开始:
$ grep SHELL= /etc/default/useradd
SHELL=/bin/sh
短跑是符合 POSIX 标准的 shell,不具备类似的一些扩展功能bash
。
您必须将用户默认登录 shell 更改为/bin/bash
:
chsh -s /bin/bash deploy
您还需要更改SHELL=/bin/sh
为SHELL=/bin/bash
in/etc/default/useradd
以使其适用于系统范围。
答案2
当在环境变量 PS1 中定义了颜色或其他特殊字符,但终端由于某种原因无法显示它们时,就会发生这种情况。 PS1 是定义 shell 提示符如何显示的环境变量。您可能需要恢复为默认值(google:bash ps1 默认值),或者您可能需要执行以下操作:
export TERM=linux
查看 bash 手册页以获取更多信息。