Skip to content

Bash 自动补全

概述

  kubectl 作为 Kubernetes 的命令行工具(CLI),是 Kubernetes 日常运维的过程中必须掌握的工具。kubectl 工具提供了大量的子命令 用于管理 Kubernetes。虽然 kubectl 针对每个子命令解释得很详细,但是还是需要用户手动敲出来,效率比较低。特别是遇到一些需要操作资源的时候,则只 能通过复制的方式才能快速输入 Pod 的名称。

  为了提升工作效率,可以通过 Bash 自动补全工具来优化这个过程。

安装

  在 Kubernetes 的控制节点中,通过以下命令安装自动补充工具。

bash
# 安装 bash-completion 工具
$ yum install bash-completion
正在解决依赖关系
--> 正在检查事务
---> 软件包 bash-completion.noarch.1.2.1-8.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

============================================================================================================================================
 Package                                架构                          版本                           大小
============================================================================================================================================
正在安装:
 bash-completion                        noarch                        1:2.1-8.el7                         base                         87 k

事务概要
============================================================================================================================================
安装  1 软件包

总下载量:87 k
安装大小:263 k
Is this ok [y/d/N]: y
Downloading packages:
bash-completion-2.1-8.el7.noarch.rpm                                                                                 |  87 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 1:bash-completion-2.1-8.el7.noarch                                                                                      1/1 
  验证中      : 1:bash-completion-2.1-8.el7.noarch                                                                                      1/1 

已安装:
  bash-completion.noarch 1:2.1-8.el7                                                                                                        

完毕!

  加载自动补全脚本。

bash
# 添加 bash-completion 自带的补全信息
$ source /usr/share/bash-completion/bash_completion

# 添加 kubectl 提供的自动补全脚本
$ source <(kubectl completion bash)

# 保存到 ~/.bashrc 文件,开机自动加载
$ echo "source <(kubectl completion bash)" >> ~/.bashrc

使用

  完成自动补全工具的安装之后,后续就可以使用 tab 键完成自动补全了。

bash
$ kubectl create 
clusterrolebinding   (Create a cluster role binding for a particular cluster role)
clusterrole          (Create a cluster role)
configmap            (Create a config map from a local file, directory or literal value)
cronjob              (Create a cron job with the specified name)
deployment           (Create a deployment with the specified name)
ingress              (Create an ingress with the specified name)
job                  (Create a job with the specified name)
namespace            (用指定的名称创建一个命名空间)
poddisruptionbudget  (Create a pod disruption budget with the specified name)
priorityclass        (Create a priority class with the specified name)
quota                (Create a quota with the specified name)
rolebinding          (Create a role binding for a particular role or cluster role)
role                 (Create a role with single rule)
secret               (使用指定的子命令创建一个 Secret)
serviceaccount       (创建一个指定名称的服务账户)
service              (Create a service using a specified subcommand)
token                (Request a service account token)

Released under the MIT license.