Linux命令自动补全工具,自动补全git、Docker、k8s等命令

 什么是命令自动补全

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的南宁网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

在 Linux 命令行中,当输入字符后,按Tab 键,Shell 就会列出以这些字符开头的所有可用命令,如果只有一个命令匹配到,按一次 Tab 键就自动将这个命令补全。

如果输入pass,此时按 Tab 键,因为以pass开头的命令只有passwd这个命令, Shell 就会自动补全 passwd 命令。

另外如果输入的字符匹配多个命令则会列出所有可用的命令,比如,如果输入do,此时按 Tab 键 Shell 就会自列出可用的命令。

 
 
  1. [root@node2 ~]# do
  2. do docker-containerd-shim dockerd done
  3. docker docker-containerd-shim-current dockerd-current
  4. docker-containerd docker-ctr-current docker-storage-setup
  5. docker-containerd-current docker-current domainname

但是系统自带的命令补全功能有限,自动补全功能仅限于命令和文件名。

可以安装 Bash 命令补全增强软件包 bash-completion来实现更多命令的补全。

bash-completion的安装

以Centos为例

 
 
  1. [root@node1 ~]# cat /etc/redhat-release
  2. CentOS Linux release 7.7.1908 (Core)

直接通过yum命令安装

 
 
  1. yum install bash-completion

bash-completion版本信息

 
 
  1. [root@node1 completions]# rpm -qi bash-completion
  2. Name : bash-completion
  3. Epoch : 1
  4. Version : 2.1
  5. Release : 6.el7
  6. Architecture: noarch
  7. Install Date: Thu 19 Mar 2020 07:59:19 AM CST
  8. Group : Unspecified
  9. Size : 264934
  10. License : GPLv2+
  11. Signature : RSA/SHA256, Fri 04 Jul 2014 08:47:01 AM CST, Key ID 24c6a8a7f4a80eb5
  12. Source RPM : bash-completion-2.1-6.el7.src.rpm
  13. Build Date : Tue 10 Jun 2014 08:05:27 AM CST
  14. Build Host : worker1.bsys.centos.org
  15. Relocations : (not relocatable)
  16. Packager : CentOS BuildSystem 
  17. Vendor : CentOS
  18. URL : http://bash-completion.alioth.debian.org/
  19. Summary : Programmable completion for Bash
  20. Description :
  21. bash-completion is a collection of shell functions that take advantage
  22. of the programmable completion feature of bash.

配置命令补全

 
 
  1. source /usr/share/bash-completion/bash_completion

命令补全的脚本存放在/usr/share/bash-completion/completions/目录,可以在这个目录查看支持增强补全功能的命令。

再试试输入docker命令后按tab键:

 
 
  1. [root@node1 completions]# docker
  2. build diff history inspect logs port restart search stats top wait
  3. commit events image kill network ps rm secret stop unpause
  4. container exec images load node pull rmi service swarm update
  5. cp export import login pause push run stack system version
  6. create help info logout plugin rename save start tag volume
  7. [root@node1 completions]# docker

可以看到后续可用命令的提示,妈妈再也不用担心我记不住命令了。

同样对于kubenetes也可以实现命令的自动补全和提示:

 
 
  1. [root@node1 ~]# kubectl
  2. annotate certificate cordon drain get port-forward run uncordon
  3. api-versions cluster-info cp edit label proxy scale version
  4. apply completion create exec logs replace set
  5. attach config delete explain options rolling-update taint
  6. autoscale convert describe expose patch rollout top
  7. [root@node1 ~]# kubectl

git的命令补全

如果是在安装bash-completion之后安装git是不能自动命令补全,需要手动进行一些配置。

git安装之后文档里会有git-completion.bash文件

 
 
  1. [root@node1 bash-completion]# find / -name git-completion*
  2. /usr/share/doc/git-1.8.3.1/contrib/completion/git-completion.bash
  3. /usr/share/doc/git-1.8.3.1/contrib/completion/git-completion.tcsh
  4. /usr/share/doc/git-1.8.3.1/contrib/completion/git-completion.zsh
  5. /usr/share/bash-completion/completions/git-completion.bash
  6. /usr/share/git-core/contrib/completion/git-completion.tcsh
  7. [root@node1 bash-completion]#

安装完git之后重新source一下bash-completion

 
 
  1. source /usr/share/bash-completion/bash_completion

看看配置之后的效果

 
 
  1. [root@node3 ~]# git
  2. add cherry difftool init reflog show
  3. am cherry-pick fetch log relink show-branch
  4. annotate clean filter-branch merge remote stage
  5. apply clone format-patch mergetool repack stash
  6. archive column fsck mv replace status
  7. bisect commit gc name-rev request-pull submodule
  8. blame config get-tar-commit-id notes reset subtree
  9. branch credential grep pull revert tag
  10. bundle describe help push rm whatchanged
  11. checkout diff imap-send rebase shortlog
  12. [root@node3 ~]# git

新闻标题:Linux命令自动补全工具,自动补全git、Docker、k8s等命令
路径分享:http://www.csdahua.cn/qtweb/news48/481448.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网