自动完成不适用于“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之后,这个问题在我身边修复了。
这种情况发生在我身上时:
-
我使用我的大学电脑,我不能使用自动完成,因为我不是超级用户。
-
您尝试下载的软件包的ppa不在
source.list
。 因此终端无法识别您尝试下载的软件包。
注意:这可能不适用于所有人。 我只是分享我的经验