1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > linux 文件名 自动补全 用Linux自动补全怎么补全命令?

linux 文件名 自动补全 用Linux自动补全怎么补全命令?

时间:2019-12-02 15:39:41

相关推荐

linux 文件名 自动补全 用Linux自动补全怎么补全命令?

用Linux自动补全怎么补全命令?

秩名发表于 -03-25 18:02次浏览

用Linux自动补全怎么补全命令?git、Docker等命令要补全时该怎么进行?Linux自动补全可以帮助你解决这个问题,下面我们一起学习一下,怎么用Linux自动补全怎么补全命令?

什么是命令自动补全

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

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

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

[root@node2~]#do

dodocker-containerd-shimdockerddone

dockerdocker-containerd-shim-currentdockerd-current

docker-containerddocker-ctr-currentdocker-storage-setup

docker-containerd-currentdocker-currentdomainname

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

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

bash-completion的安装

以Centos为例

[root@node1~]#cat/etc/redhat-release

CentOSLinuxrelease7.7.1908(Core)

直接通过yum命令安装

yuminstallbash-completion

bash-completion版本信息

[root@node1completions]#rpm-qibash-completion

Name:bash-completion

Epoch:1

Version:2.1

Release:6.el7

Architecture:noarch

InstallDate:Thu19Mar20:59:19AMCST

Group:Unspecified

Size:264934

License:GPLv2+

Signature:RSA/SHA256,Fri04Jul08:47:01AMCST,KeyID24c6a8a7f4a80eb5

SourceRPM:bash-completion-2.1-6.el7.src.rpm

BuildDate:Tue10Jun08:05:27AMCST

BuildHost:worker1.

Relocations:(notrelocatable)

Packager:CentOSBuildSystem

Vendor:CentOS

URL:http://bash-completion./

Summary:ProgrammablecompletionforBash

Description:

bash-completionisacollectionofshellfunctionsthattakeadvantage

oftheprogrammablecompletionfeatureofbash.

配置命令补全

source/usr/share/bash-completion/bash_completion

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

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

[root@node1completions]#docker

builddiffhistoryinspectlogsportrestartsearchstatstopwait

commiteventsimagekillnetworkpsrmsecretstopunpause

containerexecimagesloadnodepullrmiserviceswarmupdate

cpexportimportloginpausepushrunstacksystemversion

createhelpinfologoutpluginrenamesavestarttagvolume

[root@node1completions]#docker

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

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

[root@node1~]#kubectl

annotatecertificatecordondraingetport-forwardrununcordon

api-versionscluster-infocpeditlabelproxyscaleversion

applycompletioncreateexeclogsreplaceset

attachconfigdeleteexplainoptionsrolling-updatetaint

autoscaleconvertdescribeexposepatchrollouttop

[root@node1~]#kubectl

git的命令补全

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

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

[root@node1bash-completion]#find/-namegit-completion*

/usr/share/doc/git-1.8.3.1/contrib/completion/git-completion.bash

/usr/share/doc/git-1.8.3.1/contrib/completion/git-completion.tcsh

/usr/share/doc/git-1.8.3.1/contrib/completion/git-completion.zsh

/usr/share/bash-completion/completions/git-completion.bash

/usr/share/git-core/contrib/completion/git-completion.tcsh

[root@node1bash-completion]#

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

source/usr/share/bash-completion/bash_completion

看看配置之后的效果

[root@node3~]#git

addcherrydifftoolinitreflogshow

amcherry-pickfetchlogrelinkshow-branch

annotatecleanfilter-branchmergeremotestage

applycloneformat-patchmergetoolrepackstash

archivecolumnfsckmvreplacestatus

bisectcommitgcname-revrequest-pullsubmodule

blameconfigget-tar-commit-idnotesresetsubtree

branchcredentialgreppullreverttag

bundledescribehelppushrmwhatchanged

checkoutdiffimap-sendrebaseshortlog

[root@node3~]#git

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。