使用bash-completion来实现bash下命令的自动补全功能。该组件在Github上的地址: https://github.com/scop/bash-completion#installation

安装方法

CentOS 7下:

1
sudo yum install bash-completion

Ubuntu下:

1
sudo apt install bash-completion

安装后退出当前shell重新登录即可获取补全功能。

相关文件

启动文件

CentOS 7下为例。安装了bash-completion后,将会在/etc/profile.d目录下添加文件bash_completion.sh,用于启动bash时候自动添加补全功能。
如果没有自动添加,也可以自己添加,在~/.bashrc中添加

1
source /usr/share/bash-completion/bash_completion

各命令补全脚本

各命令补全的脚本存放在/usr/share/bash-completion/completions/目录中。
比如通过yum安装docker后,安装程序会在上述补全脚本目录下添加一个名为docker的文件,就是对应docker命令的补全脚本。

关于命令补全脚本的编写示例,可以参考Bash命令自动补全的原理

一些特殊组件的自动补全命令

Kubernetes kubectl

kubectl在bash下自动补全的完整用法可参照官网网页bash auto-completion on Linux
简要摘录如下:
kubectl支持的补全命令可由自身生成,生成命令为kubectl completion bash
启用kubectl的自动补全的方法如下:
用户层面添加:

1
echo 'source <(kubectl completion bash)' >>~/.bashrc

系统层面添加:

1
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null

Reference

留言