如何修复选项卡完成在 Ubuntu 和 Debian 中不起作用

在 Linux Handbook 上,我总是在写东西之前进行测试。 其他贡献者也这样做。

由于我们将来会涵盖很多 DevOps、SysAdmin 和脚本相关的教程,所以我在 UpCloud 上创建了一个专用的测试服务器。 上云 是一家性能卓越的云服务器提供商。

我做的最初几件事之一就是创建一个 sudo 这个新创建的运行 Ubuntu 18.04 LTS 的测试服务器上的用户。 在使用服务器时,我注意到了一些奇怪的事情。

选项卡完成无法正常工作。 Tab 补全是我不能没有的基本终端快捷方式之一。 想象一下在制表符补全不起作用的 Linux 命令行中工作的恐怖。 它会对您的工作效率产生负面影响,并且您会觉得终端的重要部分丢失了。

好消息是它可以很容易地修复。 让我来告诉你怎么做。

在基于 Ubuntu 和 Debian 的 Linux 发行版中启用选项卡补全

Tab 补全是 Linux 的一部分,你永远不会认为这是需要显式启用的。 不幸的是,它就是这样工作的。

您会看到,一些云服务器更喜欢使用 Linux 发行版的最小映像,因为这样可以节省部署时间。 但这也意味着 Linux 安装将只有少数几个软件包。

这就是在这种情况下发生的事情。 新安装的 Ubuntu 服务器缺少 bash-完成 包裹。

您可以使用标准的 apt 命令快速轻松地安装此软件包:

sudo apt install bash-completion

您需要注销(或退出 shell)才能看到它的效果。

进一步对自动完成进行故障排除

通常,这应该可以解决问题,但如果 bash-completion 已经安装了,但还是有问题,可以尝试重新安装。

sudo apt install --reinstall bash-completion

注销并检查它是否有效。 如果没有,您可以手动编辑您的 bash 配置文件存在于 ~/.bashrc

如果它不存在,您应该创建它。 然后,您可以将以下行添加到您的 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

您可以使用基于终端的文本编辑器(如 Vim)在终端中编辑文件。

我希望这个快速的小教程为您解决了选项卡完成问题。 如果您有任何问题或建议,请随时发表评论。