kubectl 为 Bash 和 Zsh 支持自动补全功能,可以节省大量输入!
下面是设置 Bash 与 Zsh 下自动补齐的过程(包括 Linux 与 macOS 的差异)。
介绍
用于 Bash 的 kubectl 自动补齐脚本可以用 kubectl completion bash 命令生成。 在 Shell 环境中引用自动补齐脚本就可以启用 kubectl 自动补齐。
不过,补齐脚本依赖于 bash-completion 软件包, 这意味着你必须先安装 bash-completion(你可以通过运行 type _init_completion)来测试是否 你已经安装了这个软件)。
安装 bash-completion
很多包管理器都提供 bash-completion(参见这里)。 你可以通过 apt-get install bash-completion 或 yum install bash-completion 来安装。
上述命令会创建 /usr/share/bash-completion/bash_completion,也就是 bash-completion 的主脚本。 取决于所用的包管理器,你可能必须在你的 ~/.bashrc 中通过 source 源引此文件。
要搞清楚这一点,可以重新加载你的 Shell 并运行 type _init_completion。 如果命令成功,一切就绪;否则你就需要将下面的内容添加到你的 ~/.bashrc 文件中:
$ source /usr/share/bash-completion/bash_completion
之后,重新加载你的 Shell 并运行 type _init_completion 来检查 bash-completion 是否已 正确安装。
启用 kubectl 自动补齐
你现在需要确定在你的所有 Shell 会话中都源引了 kubectl 自动补齐脚本。 实现这点有两种方式:
在
~/.bashrc文件中源引自动补齐脚本:echo 'source <(kubectl completion bash)' >>~/.bashrc将自动补齐脚本添加到目录
/etc/bash_completion.d:kubectl completion bash >/etc/bash_completion.d/kubectl如果你为 kubectl 命令设置了别名(alias),你可以扩展 Shell 补齐,使之能够与别名一起使用:
echo 'alias k=kubectl' >>~/.bashrc echo 'complete -F __start_kubectl k' >>~/.bashrc说明: bash-completion 会自动源引
/etc/bash_completion.d下的所有自动补齐脚本。
两种方法是等价的。重新加载 Shell 之后,kubectl 的自动补齐应该能够使用了。
