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 总结
对于复杂的命令,添加自动命令补全还是非常有必要的,可以提高效率,减少错误。
欢迎关注微信公众号<南瓜慢说>,将持续为你更新...
多读书,多分享;多写作,多整理。
Mac为docker和kubectl添加自动命令补全的更多相关文章
- Docker Compose的安装及命令补全
安装Compose Compose的安装有多种方式,例如通过shell安装.通过pip安装.以及将compose作为容器安装等等.本文讲解通过shell安装的方式.其他安装方式如有兴趣,可以查看Doc ...
- [Kubernetes]kubectl命令补全出错
在kubernetes集群中,命令补全能够省很多事,但是这两天就很奇怪 kubectl get pod -n kube+tab键自动补全Namespace的时候出现错误 kubectl get pod ...
- kubectl get 后按2次tab键命令补全的失效原因分析
kubectl get 后按2次tab键命令补全的失效原因分析 2019/10/28 Chenxin a.bash客户端工具 在centos用户下, cd ~;echo "source &l ...
- CentOS Bash 命令补全增强软件包 bash-completion
引言 之前安装的 CentOS 7 是最小化安装,在使用 systemctl 命令进行服务的管理时,经常手动输入相关服务名.如果对一个服务名称不熟悉,这样可以迫使我们记住它,但如果对一个服务名已经很熟 ...
- Jupyter Notebook主题字体设置及自动代码补全
Jupyter Notebook用久了就离不开了,然而自带的主题真的不忍直视.为了视力着想,为了自己看起来舒服,于是折腾了一番..在github上发现了一个jupyter-themes工具,可以通过p ...
- bash功能——命令行编辑、内部命令 外部命令、命令补全 、命令历史、文件名通配符、命令别名
命令行编辑: Ctrl + a : 跳转到当前编辑行首 Ctrl + e:跳转到当前编辑行尾 # mkdir /home/dira /home/diab 像这种命令,/home/dira 和 /hom ...
- Linux学习笔记(十)shell基础:历史命令、命令补全、输出重定向、输出重定向
一.历史命令 history [选项] [历史命令保存文件] -c 清空历史命令 -w 吧缓存中的历史命令写入历史命令保存文件~/.bash_history中 系统会默认将上次注销登录(正确退出)之前 ...
- 在windows中python安装sit-packages路径位置 在Pycharm中导入opencv不能自动代码补全问题
在Pycharm中导入opencv不能自动代码补全问题 近期学习到计算机视觉库的相关知识,经过几个小时的探讨,终于解决了opencv不能自动补全代码的困惑, 我们使用pycharm安装配置可能会添加多 ...
- Linux 提高操作效率之 tab 命令补全
最近在使用阿里云 ECS 时,发现 Centos 无法进行 tab 补全,特别影响操作效率,本文简单记录下 Linux 下的 tab 命令补全功能,希望对 Linux 初学者有所帮助. 安装 Linu ...
随机推荐
- JavaWeb——反射、注解
单元测试.反射.注解 1. Junit单元测试 2. 反射 3. 注解 Junit单元测试: * 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 2. 白盒测试:需要 ...
- STL实现的底层数据结构简介
STL实现的底层数据结构简介 C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque 底层数 ...
- Linux x86_64与i386区别之 —— 内存寻址
毫无疑问,不管是32位,还是64位处理器,所有进程(执行的程序)都必须占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是 存放取自用户输入的数据等等.不过进程对这些内存的管理方式因内存用途不 ...
- Jenkins 基础篇 - 小试牛刀
现在我们来创建一个简单的 Jenkins 任务,这个任务输出 Java 版本信息和系统信息,通过这个任务我们先了解创建 Jenkins 任务的流程,以及了解一些对任务的基础设置,接下来就是演示任务的整 ...
- activiti知识点梳理
一.Activiti是什么 Alfresco 软件在 2010 年 5 月17 日宣布 Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理 BPM的专家 Tom Ba ...
- C++知识概要
static的用法和作用 在全局变量前加上关键字 static,全局变量就定义成一个全局静态变量.存储在静态存储区,在整个程序运行期间一直存在.同时全局静态变量在声明他的文件之外是不可见的 在局部变量 ...
- Nifi:初识nifi
写在前面: 第一次接触这一系统的时候,只有github上的一坨源码和官方的英文文档,用起来只能说是一步一个坑,一踩一个脚印,现在回想那段血泪史,只想 ***,现在用起来算是有了一些经验和总结,这里就做 ...
- C++课程设计 通讯录管理系统 原码及解析
设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理. (一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时 ...
- 凯撒密码Caesar
//@132屋里上课群 #include<stdio.h>#include<stdlib.h>//颜色using namespace std;int jiami();int j ...
- linux服务之FTP服务篇
一.FTP协议 FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP (File Transfer ...