我厌倦了手工编写所有kubectl
和kubeadm
命令。有什么方法可以对这些命令启用自动完成功能吗?
Bash解决方案
# Execute these commands
$ echo "source <(kubectl completion bash)" >> ~/.bashrc
$ echo "source <(kubeadm completion bash)" >> ~/.bashrc
# Reload bash without logging out
$ source ~/.bashrc
kubectl
对于Bash自动启动和当前会话:
# update settings
cat <<'EOF' >> ~/.bashrc
source <(kubectl completion bash)
alias k=kubectl
complete -o default -F __start_kubectl k
EOF
# reload settings
source ~/.bashrc
仅适用于当前终端会话:
source <(kubectl completion bash)
alias k=kubectl
complete -o default -F __start_kubectl k
CCD_ 3是CCD_ 4的别名。因此,以下命令是相同的:
kubectl get pods
k get pods
对于其他shell,您也可以启用自动完成。检查输出:
$ kubectl completion --help
...
source <(kubectl completion zsh)
kubectl completion fish | source
kubectl completion powershell | Out-String | Invoke-Expression
...
每个shell都会有说明,包括自动启动。
kubeadm
对于Bash自动启动和当前会话:
# update settings
cat <<'EOF' >> ~/.bashrc
source <(kubeadm completion bash)
alias ka=kubeadm
complete -F __start_kubeadm ka
EOF
# reload settings
source ~/.bashrc
仅适用于当前终端会话:
source <(kubeadm completion bash)
alias ka=kubeadm
complete -F __start_kubeadm ka
ka
是kubeam
的别名。因此,以下命令是相同的:
kubeadm version
ka version
对于其他shell,您也可以启用自动完成。检查输出:
$ kubeadm completion --help
...
source <(kubeadm completion zsh)
...
(目前只支持bash和zsh(