新安装的系统Tab无法对命令进行补全。

首先su进入root,尝试安装bash-completion 包后无果,依然无法使用Tab补全。

转变思路,疑似补全脚本没有没引入。于是进行如下操作:

vim ~/.bashrc

# 查看~/.bashrc文件里是否有下面这行:
#如果没有,手动添加这行至文件尾部
source /etc/bash_completion

#重新加载bash配置文件
source ~/.bashrc

重启bash shell后Tab补全命令生效。




解决思路:

~/.bashrc 文件中添加 source /etc/bash_completion 这行后能够解决命令补全不生效的问题,这是因为:

/etc/bash_completion 文件包含了 bash 的命令补全脚本。这些脚本定义了不同命令的补全逻辑,实现智能的命令补全功能。

source 命令可以在当前 shell 环境中加载并执行指定的脚本文件。

~/.bashrc 文件在每次打开新的 bash shell 时会自动被读取和执行。

所以通过在 ~/.bashrc 中使用 source 命令来加载 /etc/bash_completion,可以让命令补全脚本在每次 bash shell 启动时自动生效。

这样每当打开新的 bash shell,都会执行 ~/.bashrc 中的源命令,从而引入命令补全脚本,补全功能就可以正常工作了。

总结一下命令补全的实现原理:

  1. bash_completion 脚本定义补全逻辑
  2. ~/.bashrcshell 启动时自动运行
  3. source 命令引入补全脚本到当前 shell 环境
  4. 这样每次打开新的 shell 都会加载补全脚本
  5. 补全脚本产生补全建议,实现补全功能

所以通过配置 ~/.bashrc 实现持久性的命令补全非常简单高效。