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