乐趣区

关于java:Mac为docker和kubectl添加自动命令补全

我最新最全的文章都在 南瓜慢说 www.pkslow.com,欢送大家来喝茶!

1 前言

主动命令补全是十分有用的性能,特地是当命令有特地多参数时。显然,docker/kubectl就是这样的命令。咱们来看看如何进行命令补全。

2 查看目前应用的 shell

查看以后零碎所反对的 shell 有哪些:

$ cat /etc/shells 
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

查看以后的 shell 的几种办法:

# 查看环境变量
$ echo $SHELL
/bin/bash

# 打印过程名
$ echo $0
-bash

# 查看过程
$ ps
  PID TTY           TIME CMD
66162 ttys005    0:00.68 -bash

# 间接敲一个不存在的命令,报错信息会显示
$ pkslow
-bash: pkslow: command not found

3 为 kubectl 增加主动补全

通过命令 kubectl completion -h 寻求帮忙:

查看 bash 版本:

$ bash -version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
Copyright (C) 2007 Free Software Foundation, Inc.

装置bash-completion

brew install bash-completion

复制 kubectl completion bash 到 completion 目录:

$ kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl

查看要增加到 .bash_prfile 的语句:

$ brew info bash-completion
==> Caveats
Add the following line to your ~/.bash_profile:
  [[-r "/usr/local/etc/profile.d/bash_completion.sh"]] && . "/usr/local/etc/profile.d/bash_completion.sh"

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

把下面的 [[-r "/usr/local/etc/profile.d/bash_completion.sh"]] && . "/usr/local/etc/profile.d/bash_completion.sh" 增加到 .bash_profile 文件即可。

实现以上步骤,再使 .bash_profile 失效即可应用了。在应用命令时,用 Tab 补全命令即可,如果前缀不是惟一辨认,会把所有抉择列出来:

$ kubectl get se
secrets          serviceaccounts  services 

4 为 docker 命令也增加主动补全

有了后面的根底就简略多了:

$ cd /usr/local/etc/bash_completion.d
$ ln -s /Applications/Docker.app/Contents/Resources/etc/docker.bash-completion
$ ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.bash-completion
$ ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.bash-completion

从新关上一个终端即可应用了。

5 总结

对于简单的命令,增加主动命令补全还是十分有必要的,能够提高效率,缩小谬误。


欢送关注微信公众号 <南瓜慢说>,将继续为你更新 …

多读书,多分享;多写作,多整顿。

退出移动版