我有一台 Linode 的 VPS。我部署了 Ubuntu 10.04 服务器。我添加了一个用户并将其放入 sudoers 文件中。当我以用户身份写入时
apti <TAB>
它用 tab 来完成
aptitude <TAB>
但当我继续
aptitude upd <TAB>
它没有完成,但在我的桌面上运行良好。如果我用 sudo 尝试相同的命令,情况会更糟
sudo apti <TAB>
不起作用我检查了 .basrc、.profile/.bashrc 和 /etc/bash.basrc 文件,它们都没有被注释掉,所以出了什么问题。顺便说一下,当我以 root 身份使用时,它可以正常工作
我的 ~/bashrc
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
答案1
当我拿到我的 Linode (Jaunty) 时,我必须安装bash-completion
。试一试。
答案2
你的 中应该有类似这样的内容~/.bashrc
:
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
你所说的“它们都被注释掉了”是什么意思?可能是你需要的东西被注释掉了,这导致了你的问题。
答案3
您可能还想将“complete -cf sudo”行添加到您的 ~/.bashrc 文件中。这将允许 bash 在 sudo 之后搜索命令,而不是在当前目录中搜索文件。我也对许多其他命令(例如 man 和 which)执行了同样的操作。
答案4
检查你没有注释掉这些行
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
一次在您的~/.bashrc
文件中(可能没问题),一次在/root/.bashrc
由于未知原因被注释掉的文件中。