WG-*_*WG- 38 bash auto-completion
好吧,我的一所大学刚刚向我展示了你可以做到
sudo apt-get install <type first letters of package> <TAB>
Run Code Online (Sandbox Code Playgroud)
它会自动完成包的名称。仅举个例子...
sudo apt-get install ged<TAB> 结果是 sudo apt-get install gedit
现在我尝试这样做,但这对我不起作用。
我该如何解决这个问题?我必须安装一个包吗?我的大学告诉我他没有为此安装任何额外的东西。
Pau*_*sch 50
Bash 确实支持更多种类的自动补全,而不仅仅是文件名补全。
在文件 /etc/bash.bashrc 中,你会找到一段,像这样或类似这样:
# 在交互式 shell 中启用 bash 完成 #如果 !shopt -oq posix; 然后 # if [ -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。我知道他们支持它;-)
d_i*_*ble 26
我发现在我身上发生这种情况是因为由于bash-completion某种原因没有安装。所以这修复了它(12.04):
sudo apt-get install bash-completion
Run Code Online (Sandbox Code Playgroud)
安装 Ubuntu 15.10 后我遇到了同样的问题。
重新安装bash-completion对我有用:
sudo apt-get install --reinstall bash-completion
Run Code Online (Sandbox Code Playgroud)