我正在使用kubectl with bash completion
,但是我更喜欢为kubectl
使用一个较短的别名,例如ks
,我需要进行哪些更改才能使别名{{ 1}}
答案 0 :(得分:3)
您基本上可以这样做:
$ echo "source <(kubectl completion bash | sed 's|__start_kubectl kubectl|__start_kubectl ks|g') >> ~/.bashrc
与here
的描述略有不同实质上,您是在kubectl completion bash
输出中替换以下内容:
if [[ $(type -t compopt) = "builtin" ]]; then
complete -o default -F __start_kubectl kubectl
else
complete -o default -o nospace -F __start_kubectl kubectl
fi
与此:
if [[ $(type -t compopt) = "builtin" ]]; then
complete -o default -F __start_kubectl ks
else
complete -o default -o nospace -F __start_kubectl ks
fi
答案 1 :(得分:2)
我的.bashrc文件中有此文件以获得别名和自动完成功能。
源<(kubectl完成bash | sed s / kubectl / k / g)
答案 2 :(得分:1)
只是为了补充 endline 的展示者(他的解决方案仅在 shell的活动会话中起作用,如果关闭,则必须重新执行 >),也许可以帮助遇到与我同样遇到麻烦的人。
您可以使用documentation
中的上述结构将其永久地添加到外壳中。回显'alias k = kubectl'>>〜/ .bashrc (向shell添加别名)
echo'source <(kubectl完成bash)'>>〜/ .bashrc (添加完成)
echo'complete -F __start_kubectl k'>>〜/ .bashrc (使它们一起工作)
因此,即使关闭并打开一个新会话,您现在也可以执行“ k获取日志-n my-namespace -f my-p [TAB]”之类的命令(例如,完成pod的名称)。
答案 3 :(得分:0)
来自官方文档
# after installing bash completion
alias k=kubectl
complete -F __start_kubectl k
https://kubernetes.io/docs/reference/kubectl/cheatsheet/#bash