Linux Shell 命令补全
1 | kubectl操作k8s集群,如何自动补全pod、service名字? |
用户层级K8s命令自动补全
1 | yum install -y bash-completion |
系统层级开启bash_completion
把/etc/bash.bashrc
如下几行的注释取消
1 | # enable bash completion in interactive shells |
bash-completion 负责导入 /etc/bash_completion.d
目录中的所有补全脚本。
1 | kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null |
关联kubectl别名
如果 kubectl 有关联的别名,你可以扩展 shell 补全来适配此别名:
1 | echo 'alias k=kubectl' >>~/.bashrc |
ZSH自动补全
kubectl 通过命令 kubectl completion zsh 生成 Zsh 自动补全脚本。 在 shell 中导入(Sourcing)该自动补全脚本,将启动 kubectl 自动补全功能。
为了在所有的 shell 会话中实现此功能,请将下面内容加入到文件 ~/.zshrc
中。
1 | source <(kubectl completion zsh) |
如果你为 kubectl 定义了别名,可以扩展脚本补全,以兼容该别名。
1 | echo 'alias k=kubectl' >>~/.zshrc |
重新加载 shell 后,kubectl 自动补全功能将立即生效。
如果你收到 complete:13: command not found: compdef
这样的错误提示,那请将下面内容添加到 ~/.zshrc
文件的开头:
1 | autoload -Uz compinit |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BLOG!