Shell 为一位用户显示奇怪的字符

Shell 为一位用户显示奇怪的字符

不久前,我在 Debian X64 服务器上添加了一个用户,当我 ssh 进入机器时,它没有向我显示用户名,而是向我显示了奇怪的字符,如下面的屏幕截图所示。请注意,这种情况不会发生在root或 上postgres,仅发生在该用户上。另外,当我按 Tab 或向上箭头时,我不会得到自动完成或上一个命令,而只会分别得到空格或随机字符。如何解决这个问题?

截屏

请让我知道我能做什么。谢谢。

答案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/shSHELL=/bin/bashin/etc/default/useradd以使其适用于系统范围。

答案2

当在环境变量 PS1 中定义了颜色或其他特殊字符,但终端由于某种原因无法显示它们时,就会发生这种情况。 PS1 是定义 shell 提示符如何显示的环境变量。您可能需要恢复为默认值(google:bash ps1 默认值),或者您可能需要执行以下操作:

export TERM=linux

查看 bash 手册页以获取更多信息。

相关内容