终端自动完成function无法正常运行

如果我在点击tab后开始输入类似apt-g的命令,shell会完成命令apt-get ,但是对于命令的第二部分,比如install ,如果我输入一些像insta这样的字符,点击标签 ,就完成了它要install

另一个例子:在我输入sudo命中标签后没有完成任何事情。 例如: sudo apt-ge [ tab ]并没有。

我使用mini iso(40MB网络安装程序)安装了Ubuntu,所以可能有一个我错过的配置!

我已将此代码添加到我的.bashrc但它仍无效:

 if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi 

我还检查了.bashrc的权限,它是-rw-r--r--

我还使用source .bashrc .bashrc在更改后使用source .bashrc以将更改应用于新环境但仍然没有效果。

我使用xfce4-terminal所以我认为它可能是终端而不是bash。

但编辑:

 ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml 

并改变:

  

至:

  

也没有任何区别。

bash-completion是一组bash脚本,可以为特定命令自定义完成。

这不仅适用于文件和目录,还适用于命令。 因此,您键入部分命令,通过按Tab键,我们可以自动完成命令。

安装

第1步:安装bash-completion

 $ sudo apt-get install bash-completion 

有时候,如果我们通过以下命令重新安装它,它会起作用:

 $ sudo apt-get install --reinstall bash-completion 

第2步:.bashrc文件中启用bash-completion

打开您的gedit ~/.bashrc ,如果这些内容不存在,请在其末尾添加并保存。

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

重要提示:更改后,您需要使用source ~/.bashrc source ~/.bashrc或重新打开终端。 现在应该修复。

如果你的情况是终端标签不能在Xfce下工作,

解决方案如下:

  1. 打开Application Menu > Settings > Window Manager
  2. 单击“ Keyboard选项卡。
  3. 清除Switch window for same application设置。

Window Manager截图如何清除同一应用程序的切换窗口

我在这里找到了解决方案

您也可能位于不支持自动完成的shell中(例如:Bourne Shell | SH)。 如果你想要BASH自动完成,你需要切换shell,比如用命令切换到BASH(Bourne Again SHell)

 chsh -s /bin/bash 

来源: Ubuntu Wiki – 改变壳