记录Debian GUI下终端Tab无法补全的解决方案
新安装的系统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 中的源命令,从而引入命令补全脚本,补全功能就可以正常工作了。
总结一下命令补全的实现原理:
bash_completion脚本定义补全逻辑~/.bashrc在shell启动时自动运行source命令引入补全脚本到当前shell环境- 这样每次打开新的
shell都会加载补全脚本 - 补全脚本产生补全建议,实现补全功能
所以通过配置 ~/.bashrc 实现持久性的命令补全非常简单高效。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。