让kubectl命令能自动补全
kubectl命令一般都挺长的,经常重复输入还挺麻烦的,其实也是可以让它自动补全的。
默认bash包含了自动补全,只要输入命令的前几个字母,再按TAB键,如果这几个字母有很多命令匹配到会全部列出让选择,如果只匹配到一个,就会直接补全命令。 但这种补全一般是只针对命令和文件名。
比如默认情况下输入"kubectl",这个时候按TAB键,只会匹配出当前目录下的文件,不会列出这个命令的参数。 还比如输入"kubectl -n k",这个时候按TAB键,并不能匹配出以k开头的命名空间来。
想要让kubectl命令也补全这种信息,就需要安装bash的一个扩展包bash-completion。
Linux下安装和设置:
1、安装bash-completion
yum install bash-completion
或者
apt install bash-completion
2、使其生效
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
3、添加环境变量(让以后开机就生效)
echo "source <(kubectl completion bash)" >> ~/.bashrc
4、测试
输入kubectl命令后,按TAB建,会列出kubectl参数,在没装扩展包前只会列出当前目录下的文件。
# kubectl[TAB键]
alpha (Commands for features in alpha)
annotate (Update the annotations on a resource)
api-resources (Print the supported API resources on the server)
api-versions (Print the supported API versions on the server, in the form of…)
apply (Apply a configuration to a resource by file name or stdin)
attach (Attach to a running container)
auth (Inspect authorization)
autoscale (Auto-scale a deployment, replica set, stateful set, or replica…)
certificate (Modify certificate resources.)
输入kubectl -n kube-命令后,按TAB建,会列出匹配kube-开头的命名空间,在没装扩展包前是没有反应的。
# kubectl -n kube-[TAB键]
kube-node-lease kube-public kube-system