好的,我的一所大学刚刚告诉我你可以做到
sudo apt-get install <type first letters of package> <TAB>
它会自动完成包的名称。仅举一个例子...
sudo apt-get install ged<TAB>
结果是sudo apt-get install gedit
现在我尝试这样做,但这对我来说不起作用。
我该如何解决这个问题?我必须安装一个软件包吗?我的同事告诉我他没有为此安装任何额外的东西。
答案1
Bash 确实支持更多类型的自动完成,而不仅仅是文件名完成。
在文件 /etc/bash.bashrc 中,你会发现一个段落,像这样或类似于这样:
# 在交互式 shell 中启用 bash 补全 #如果 !shopt -oq posix; 然后 # 如果 [ -f /usr/share/bash-completion/bash_completion ]; 那么 #./usr/share/bash-completion/bash_completion # elif [ -f /etc/bash_completion ]; 然后 #./etc/bash_completion #fi #fi
(此示例来自 Debian,但可能与 Ubuntu 版本相同)
通过删除#
每行开头的字符,您可以使许多额外的完成规则生效。(不要删除第一行的 #...那实际上是一个注释 ;-)
我相信 apt-get 补全功能是启用此功能的功能之一。如果没有,您可以考虑切换到 zsh。我知道他们支持它 ;-)
答案2
我发现我的电脑发生这种情况是因为bash-completion
出于某种原因没有安装。所以这个修复了它(12.04):
sudo apt-get install bash-completion
答案3
安装 Ubuntu 15.10 后,我遇到了同样的问题。
重新安装bash-completion
对我有用:
sudo apt-get install --reinstall bash-completion
答案4
另一个问题可能是失败apt-get update
。删除错误的源并运行后apt-get update
,我的自动完成功能恢复了。