Bash对于新用户而言无法完全发挥作用


19

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

PD:该用户已经在系统上工作,如果可能的话,我不希望将其删除并再次添加。


通过“当我转为约翰时”定义您的意思。您是否是通过ssh在主控制台上通过该用户登录的,su还是su -
Paul Tomblin

您加载的.bashrc的权限/所有权是什么?
Paul Tomblin

Answers:


36

约翰的外壳可能不是/bin/bash,而是/bin/sh。在Ubuntu上,这是一个旨在快速执行脚本的shell,没有诸如命令行版本之类的精美交互功能。检查grep john /etc/passwd或的最后一列getent passwd john。您可能需要运行chsh -s /bin/bash john以更改用户的外壳程序。


1
太好了,的确如此!

2
请注意。在Ubuntu /bin/sh中,符号链接到dashie /bin/dash,因此最终用户的shell是/bin/dash
2011年

4

您可以通过输入外壳名称在外壳之间跳转

$ bash

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

user@hostname$ 

这是bash外壳。您的向上箭头键和自动完成功能现在可以使用


应该指出的是,这显然是暂时的。当前接受的答案有一个更永久的解决方案。
2012年

好的,我不知道,为此,我将保存接受的答案以供将来参考
Saad 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.