自动完成不适用于“sudo apt-get install”

我的一所大学只是向我展示了你能做到的

sudo apt-get install   

它会自动完成包的名称。 仅举例……

sudo apt-get install ged导致sudo apt-get install gedit

现在我试着这样做,但这对我不起作用。

我怎么解决这个问题? 我必须安装包吗? 我的大学告诉我,他没有安装任何额外的东西。

Bash确实支持更多种类的自动完成,而不仅仅是文件名完成。

在文件/etc/bash.bashrc中,您将找到一个段落,如下所示或类似于此:

 #在交互式shell中启用bash完成
 #if!  shopt -oq posix; 然后
 #if [-f / usr / share / bash-completion / bash_completion]; 然后
 #。 在/ usr /共享/ bash的完成/ bash_completion
 #elif [-f / etc / bash_completion]; 然后
 #。 在/ etc / bash_completion
 #fit
 #fi

(这个例子来自debian,但可能与Ubuntu版本相同)

通过删除每行开头的#字符,您可以使许多其他完成规则生效。 (不要删除第一行的#…这真的是评论;-)

我相信apt-get完成是其中之一。 如果没有,你可以考虑切换到zsh。 我知道他们支持它;-)

我发现在我的情况下这种情况正在发生,因为bash-completion由于某种原因没有安装。 所以这修好了(12.04):

 sudo apt-get install bash-completion 

安装Ubuntu 15.10后我遇到了同样的问题。
重新安装bash-completion对我有用:

 sudo apt-get install --reinstall bash-completion 

在Ubuntu它也开始激怒我,所以我只是(在终端):

 gksu gedit /etc/bash.bashrc 

并改变了

 # enable bash completion in interactive shells #if [ -f /etc/bash_completion ] && ! shopt -oq posix; then # . /etc/bash_completion #fi 

 # enable bash completion in interactive shells if [ -f /etc/bash_completion ] && ! shopt -oq posix; then . /etc/bash_completion fi 

现在它的工作方式就像我想再次…… HTH 🙂

它与PaulHänsch给出的例子不同,我的是来自ubuntu 12.04。 我不确定Pauls版本会做什么,也许他可以详细说明一下?

另一个问题可能是apt-get update失败。 删除错误的源代码并运行apt-get update ,我恢复了自动完成function。

打开终端和

 sudo apt-get install bash-completion 

在我安装bash-completion之后,这个问题在我身边修复了。

这种情况发生在我身上时:

  1. 我使用我的大学电脑,我不能使用自动完成,因为我不是超级用户。

  2. 您尝试下载的软件包的ppa不在source.list 。 因此终端无法识别您尝试下载的软件包。

注意:这可能不适用于所有人。 我只是分享我的经验