Bash 对新用户来说功能不全

22 bash users useradd

我刚刚使用useradd -d /home/users/john -m john(使用 Ubuntu 11.04)在我的系统上创建了一个新用户。这工作正常,但是当我更改为 时john,我的 bash 不能完全正常工作。也就是说,它没有自动完成功能,我不能使用它们的箭头键(例如 UP 来获取最后一个命令),并且不显示我的当前目录,它只显示$. 我加载了一个,.bashrc但这似乎被完全忽略了。什么可能导致这种情况?

PD:这个用户已经在系统上工作了,如果可能的话,我宁愿不删除它并重新添加它。

rvs*_*rvs 45

可能 john 的外壳不是/bin/bash,而是/bin/sh。在 Ubuntu 上,这是一个旨在快速执行脚本的 shell,没有像命令行版本这样的花哨的交互功能。检查grep john /etc/passwdor 的最后一列getent passwd john。您可能想要运行chsh -s /bin/bash john以更改用户的外壳。

  • 只是一个注释。在Ubuntu中,`/bin/sh`是`dash`的符号链接,即`/bin/dash`,所以最终用户的shell是`/bin/dash`。 (3认同)

小智 5

您可以通过键入 shell 的名称在 shell 之间跳转

$ bash
Run Code Online (Sandbox Code Playgroud)

在下一行中,您将收到以下提示

user@hostname$ 
Run Code Online (Sandbox Code Playgroud)

这是 bash shell。您的向上箭头键和自动完成现在将起作用