Kubernetes Kubectl bash别名完成

时间:2018-10-20 12:47:14

标签: kubernetes

我正在使用kubectl with bash completion,但是我更喜欢为kubectl使用一个较短的别名,例如ks,我需要进行哪些更改才能使别名{{ 1}}

4 个答案:

答案 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