我使用过的Linux命令之complete - 强劲的bash参数补全功能

我使用过的Linux命令之complete - 强劲的bash参数补全功能

本文链接:http://codingstandards.iteye.com/blog/796598   (转载请注明出处)

用途说明

在使用bash命令行时,在提示符下,输入某个命令的前面几个字符,然后按TAB键,就会列出以这几个字符开头的命令供我们选择。不光如此,还可以进行参数补全,但只限于文件参数,当输入到参数部分时,按TAB键,就会列出以这个参数开头的文件路径供我们选择。Bash提供了一个complete内建命令,它的用途是规定参数怎么自动补全(Specify  how arguments to each name should be completed.)。它怎么使用在网上的资料都没怎么看见,man手册页不太想看,但是这个世界好人真的挺多,网站http://www.caliban.org/bash/ 提供了一个称之为bash-completion的软件包,通过一个复杂的脚本bash_completion实现可编程的补全程序,减少系统管理员日常维护工作,减少差错,提高工作效率。

 

常用参数

不用管参数了,只管在输入参数时按TAB键补全了。

使用示例

示例一 安装bash-completion的过程

[root@rhel55 ~]# type -a complete
complete is a shell builtin   <== complete是一个Bash内建命令
[root@rhel55 ~]#

[root@rhel55 ~]# cd setup/

下面用wget从 http://www.caliban.org/bash/ 下载源代码的rpm包。
[root@rhel55 setup]# wget http://www.caliban.org/files/redhat/SRPMS/bash-completion-20060301-1.src.rpm
--2010-10-28 13:32:20--  http://www.caliban.org/files/redhat/SRPMS/bash-completion-20060301-1.src.rpm
正在解析主机 www.caliban.org... 83.98.221.239
Connecting to www.caliban.org|83.98.221.239|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:170596 (167K) [application/x-rpm]
Saving to: `bash-completion-20060301-1.src.rpm'

100%[==========================================================================================>] 170,596     91.0K/s   in 1.8s   

2010-10-28 13:32:23 (91.0 KB/s) - `bash-completion-20060301-1.src.rpm' saved [170596/170596]

[root@rhel55 setup]# ls -l bash-completion-20060301-1.src.rpm
-rw-r--r-- 1 root root 170596 2006-03-02 bash-completion-20060301-1.src.rpm
[root@rhel55 setup]# rpmbuild --rebuild bash-completion-20060301-1.src.rpm
Installing bash-completion-20060301-1.src.rpm
warning: InstallSourcePackage: Header V3 DSA signature: NOKEY, key ID bfbaf0e8
warning: user ianmacd does not exist - using root
warning: group ianmacd does not exist - using root
warning: user ianmacd does not exist - using root
warning: group www does not exist - using root
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.75172
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /usr/src/redhat/BUILD
+ rm -rf bash_completion
+ /usr/bin/bzip2 -dc /usr/src/redhat/SOURCES/bash-completion-20060301.tar.bz2
+ tar -xvvf -
drwxrwxr-x ianmacd/ianmacd   0 2006-03-02 00:38:44 bash_completion/
drwxrwxr-x ianmacd/ianmacd   0 2006-03-01 18:45:13 bash_completion/contrib/
-rw-r--r-- ianmacd/ianmacd 748 2005-01-03 10:44:22 bash_completion/contrib/sitecopy
-rw-r--r-- ianmacd/ianmacd 261 2003-12-31 16:22:37 bash_completion/contrib/isql
-rw-r--r-- ianmacd/ianmacd 388 2002-06-13 06:03:23 bash_completion/contrib/bitkeeper
-rw-r--r-- ianmacd/ianmacd 442 2004-03-31 06:39:11 bash_completion/contrib/cksfv
-rw-r--r-- ianmacd/ianmacd 3621 2003-12-31 16:22:37 bash_completion/contrib/dsniff
-rw-r--r-- ianmacd/ianmacd 1254 2003-12-31 16:22:37 bash_completion/contrib/freeciv
-rw-r--r-- ianmacd/ianmacd  659 2003-12-31 16:22:37 bash_completion/contrib/gkrellm
-rw-r--r-- ianmacd/ianmacd 1230 2002-08-20 00:57:44 bash_completion/contrib/gnatmake
-rw-r--r-- ianmacd/ianmacd  258 2003-12-31 16:22:37 bash_completion/contrib/harbour
-rw-r--r-- ianmacd/ianmacd 1838 2003-12-31 16:22:37 bash_completion/contrib/larch
-rw-r--r-- ianmacd/ianmacd  163 2003-12-31 16:22:37 bash_completion/contrib/lilypond
-rw-r--r-- ianmacd/ianmacd 1917 2003-12-31 16:22:37 bash_completion/contrib/mcrypt
-rw-r--r-- ianmacd/ianmacd 1024 2004-01-01 08:54:41 bash_completion/contrib/mtx
-rw-r--r-- ianmacd/ianmacd 1164 2003-12-31 16:22:37 bash_completion/contrib/p4
-rw-r--r-- ianmacd/ianmacd 1696 2003-12-31 16:22:37 bash_completion/contrib/povray
-rw-r--r-- ianmacd/ianmacd 2613 2006-02-25 22:25:59 bash_completion/contrib/ri
-rw-r--r-- ianmacd/ianmacd  491 2003-12-31 16:22:37 bash_completion/contrib/unace
-rw-r--r-- ianmacd/ianmacd  608 2004-07-06 07:37:47 bash_completion/contrib/unrar
-rw-r--r-- ianmacd/ianmacd  406 2005-01-03 11:00:44 bash_completion/contrib/snownews
-rw-r--r-- ianmacd/ianmacd 8673 2004-03-31 07:05:34 bash_completion/contrib/mailman
-rw-r--r-- ianmacd/ianmacd  664 2004-03-31 07:05:45 bash_completion/contrib/sbcl
-rw-r--r-- ianmacd/ianmacd  644 2004-03-31 07:05:45 bash_completion/contrib/lisp
-rw-r--r-- ianmacd/ianmacd  669 2004-03-31 07:05:45 bash_completion/contrib/clisp
-rw-r--r-- ianmacd/ianmacd  603 2004-03-31 07:05:45 bash_completion/contrib/gcl
-rw-r--r-- ianmacd/ianmacd 6701 2006-03-01 18:45:03 bash_completion/contrib/svk
-rw-r--r-- ianmacd/ianmacd 2215 2005-07-12 01:49:14 bash_completion/contrib/modules
-rw-r--r-- ianmacd/ianmacd 1038 2004-10-17 16:22:09 bash_completion/contrib/bittorrent
-rw-r--r-- ianmacd/ianmacd 3019 2006-02-26 08:25:41 bash_completion/contrib/hg
-rw-r--r-- ianmacd/ianmacd 17992 2000-07-12 17:40:03 bash_completion/COPYING
-rw-r--r-- ianmacd/ianmacd   799 2003-05-01 13:49:58 bash_completion/BUGS
-rw-rw-r-- ianmacd/ianmacd 184573 2006-03-02 00:39:58 bash_completion/Changelog
-rw-r--r-- ianmacd/ianmacd  17005 2006-02-25 22:41:11 bash_completion/README
-rw-r--r-- ianmacd/ianmacd 215739 2006-03-02 00:20:18 bash_completion/bash_completion
-rwxr-xr-x ianmacd/ianmacd    557 2006-02-25 09:37:15 bash_completion/bash_completion.sh
-rw-r--r-- ianmacd/ianmacd   2528 2006-03-02 00:19:26 bash_completion/TODO
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd bash_completion
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chown -Rhf root .
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chgrp -Rhf root .
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.75172
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd bash_completion
+ LANG=C
+ export LANG
+ unset DISPLAY
+ rm -rf /var/tmp/bash-completion-root bash-completion-ghosts.list
+ install -dm 0755 /var/tmp/bash-completion-root/etc/profile.d
+ install -dm 0755 /var/tmp/bash-completion-root/etc/bash_completion.d
+ install -pm 0644 bash_completion /var/tmp/bash-completion-root/etc/
+ sed -e s@/etc@/etc@g /usr/src/redhat/SOURCES/bash_completion.sh
+ touch -r /usr/src/redhat/SOURCES/bash_completion.sh /var/tmp/bash-completion-root/etc/profile.d/bash_completion.sh
+ install -dm 755 /var/tmp/bash-completion-root/usr/share/bash-completion
+ install -pm 644 contrib/bitkeeper contrib/bittorrent contrib/cksfv contrib/clisp contrib/dsniff contrib/freeciv contrib/gcl contrib/gkrellm contrib/gnatmake contrib/harbour contrib/hg contrib/isql contrib/larch contrib/lilypond contrib/lisp contrib/mailman contrib/mcrypt contrib/modules contrib/mtx contrib/p4 contrib/povray contrib/ri contrib/sbcl contrib/sitecopy contrib/snownews contrib/svk contrib/unace contrib/unrar /var/tmp/bash-completion-root/usr/share/bash-completion
+ cd contrib
+ for f in '*'
+ ln -s /usr/share/bash-completion/bitkeeper /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/bitkeeper'
+ for f in '*'
+ ln -s /usr/share/bash-completion/bittorrent /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/bittorrent'
+ for f in '*'
+ ln -s /usr/share/bash-completion/cksfv /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/cksfv'
+ for f in '*'
+ ln -s /usr/share/bash-completion/clisp /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/clisp'
+ for f in '*'
+ ln -s /usr/share/bash-completion/dsniff /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/dsniff'
+ for f in '*'
+ ln -s /usr/share/bash-completion/freeciv /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/freeciv'
+ for f in '*'
+ ln -s /usr/share/bash-completion/gcl /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/gcl'
+ for f in '*'
+ ln -s /usr/share/bash-completion/gkrellm /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/gkrellm'
+ for f in '*'
+ ln -s /usr/share/bash-completion/gnatmake /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/gnatmake'
+ for f in '*'
+ ln -s /usr/share/bash-completion/harbour /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/harbour'
+ for f in '*'
+ ln -s /usr/share/bash-completion/hg /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/hg'
+ for f in '*'
+ ln -s /usr/share/bash-completion/isql /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/isql'
+ for f in '*'
+ ln -s /usr/share/bash-completion/larch /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/larch'
+ for f in '*'
+ ln -s /usr/share/bash-completion/lilypond /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/lilypond'
+ for f in '*'
+ ln -s /usr/share/bash-completion/lisp /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/lisp'
+ for f in '*'
+ ln -s /usr/share/bash-completion/mailman /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/mailman'
+ for f in '*'
+ ln -s /usr/share/bash-completion/mcrypt /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/mcrypt'
+ for f in '*'
+ ln -s /usr/share/bash-completion/modules /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/modules'
+ for f in '*'
+ ln -s /usr/share/bash-completion/mtx /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/mtx'
+ for f in '*'
+ ln -s /usr/share/bash-completion/p4 /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/p4'
+ for f in '*'
+ ln -s /usr/share/bash-completion/povray /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/povray'
+ for f in '*'
+ ln -s /usr/share/bash-completion/ri /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/ri'
+ for f in '*'
+ ln -s /usr/share/bash-completion/sbcl /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/sbcl'
+ for f in '*'
+ ln -s /usr/share/bash-completion/sitecopy /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/sitecopy'
+ for f in '*'
+ ln -s /usr/share/bash-completion/snownews /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/snownews'
+ for f in '*'
+ ln -s /usr/share/bash-completion/svk /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/svk'
+ for f in '*'
+ ln -s /usr/share/bash-completion/unace /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/unace'
+ for f in '*'
+ ln -s /usr/share/bash-completion/unrar /var/tmp/bash-completion-root/etc/bash_completion.d
+ echo '%ghost /etc/bash_completion.d/unrar'
+ cd -
/usr/src/redhat/BUILD/bash_completion
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-python-bytecompile
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: bash-completion-20060301-1
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.28530
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd bash_completion
+ DOCDIR=/var/tmp/bash-completion-root/usr/share/doc/bash-completion-20060301
+ export DOCDIR
+ rm -rf /var/tmp/bash-completion-root/usr/share/doc/bash-completion-20060301
+ /bin/mkdir -p /var/tmp/bash-completion-root/usr/share/doc/bash-completion-20060301
+ cp -pr BUGS COPYING README TODO Changelog /var/tmp/bash-completion-root/usr/share/doc/bash-completion-20060301
+ exit 0
Provides: config(bash-completion) = 20060301-1
Requires(interp): /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(pre): /bin/sh
Requires: /bin/sh bash >= 2.05-12 config(bash-completion) = 20060301-1 fileutils grep sed textutils
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/bash-completion-root
Wrote: /usr/src/redhat/RPMS/noarch/bash-completion-20060301-1.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.85514
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd bash_completion
+ rm -rf /var/tmp/bash-completion-root
+ exit 0
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.85514
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf bash_completion
+ exit 0
[root@rhel55 setup]#

使用rpmbuild编译后的rpm包在/usr/src/redhat/RPMS下,找到它,然后安装。

[root@rhel55 setup]# cd /usr/src/redhat/
BUILD/   RPMS/    SOURCES/ SPECS/   SRPMS/  
[root@rhel55 setup]# cd /usr/src/redhat/ RPMS/
[root@rhel55 RPMS]# find . -name "bash-completion*rpm"
./noarch/bash-completion-20060301-1.noarch.rpm
[root@rhel55 RPMS]# rpm -ivh ./noarch/bash-completion-20060301-1.noarch.rpm
Preparing...                ########################################### [100%]
   1:bash-completion        ########################################### [100%]
[root@rhel55 RPMS]# rpm -qa | grep bash
bash-3.2-24.el5
bash-completion-20060301-1
[root@rhel55 RPMS]# rpm -q bash-completion
bash-completion-20060301-1
[root@rhel55 RPMS]#

[root@rhel55 RPMS]#

安装成功了,退出重新登录。
[root@rhel55 RPMS]# exit
logout
下面的粗体的 TAB 表示按TAB键补全。
Last login: Thu Oct 28 13:19:28 2010 from 192.168.6.106
[root@rhel55 ~]# grep --TAB
--after-context=       --count                --fixed-strings        --max-count=           --silent
--basic-regexp         --devices=             --help                 --mmap                 --unix-byte-offsets
--before-context=      --directories=         --ignore-case          --no-filename          --version
--binary               --exclude=             --include=             --no-messages          --with-filename
--binary-files=        --exclude-from=        --invert-match         --null                 --word-regexp
--byte-offset          --extended-regexp      --label=               --null-data           
--color                --file=                --line-buffered        --only-matching       
--colour               --files-with-matches   --line-number          --perl-regexp         
--context=             --files-without-match  --line-regexp          --regexp=             
[root@rhel55 ~]# cvs a TAB
add       admin     annotate 
[root@rhel55 ~]# cvs a

示例二 在ssh命令后按tab键,bash会根据known_hosts中定义的主机自动补全

[root@web ~]# ssh 1TAB 92.168.6.1TAB
192.168.6.11  192.168.6.12 
[root@web ~]# ssh 192.168.6.1

 

示例三 在service命令后按tab键,bash会自动根据/etc/init.d中的脚本名称自动补全

注意输入service命令之后输入空白再按TAB键,因为是用来补全参数的。如果输入service之后立即按TAB键,bash会认为是要补全命令。

[root@web ~]# service TAB
Display all 100 possibilities? (y or n)
acpid               cvs                 hplip               mdmonitor           psacct              sshd
anacron             daytime-dgram       ip6tables           mdmpd               rawdevices          syslog
apmd                daytime-stream      ipmi                messagebus          rdisc               tcpmux-server
atd                 discard-dgram       iptables            microcode_ctl       readahead_early     tftp
auditd              discard-stream      irda                multipathd          readahead_later     time-dgram
autofs              dnsmasq             irqbalance          netconsole          restorecond         time-stream
avahi-daemon        dund                isdn                netfs               rhnsd               tomcat
avahi-dnsconfd      echo-dgram          jexec               netplugd            rmcp                vncserver
bluetooth           echo-stream         kdump               network             rpcgssd             wdaemon
capi                eklogin             killall             NetworkManager      rpcidmapd           winbind
chargen-dgram       ekrb5-telnet        klogin              nfs                 rpcsvcgssd          wpa_supplicant
chargen-stream      firstboot           krb524              nfslock             rsync               xfs
conman              gpm                 krb5-telnet         nscd                saslauthd           xinetd
cpuspeed            gssftp              kshell              ntpd                sendmail            ypbind
crond               haldaemon           kudzu               pand                setroubleshoot      yum-updatesd
cups                halt                lvm2-monitor        pcscd               single             
cups-config-daemon  hidd                mcstrans            portmap             smartd             
[root@web ~]# service

 

示例四 在cvs命令后按tab键,会显示cvs自带的指令

[root@web ~]# cvs TAB
add        ci         diff       freeze     import     patch      rdiff      rm         tag        --version 
admin      co         -e         get        -l         -q         release    rtag       unedit     -w        
annotate   commit     edit       -H         log        -Q         remove     stat       up         -x        
-b         -d         export     --help     -n         -r         rfreeze    status     update     -z        
checkout   delete     -f         history    new        rcs        rlog       -t         -v        
[root@web ~]# cvs

问题思考

1. 查看/etc/bash-completion文件,还会发现哪些命令的参数可以自动补全?

2. 怎样自行扩展一些命令参数的补全方式?

相关资料

【1】在路上 bash complete

【2】Working more productively with bash 2.x/3.x Download

【3】比特网 提高Linux系统命令行的工作效率

 

返回 我使用过的Linux命令系列总目录

 

Linux命令行效率翻倍:bash-completion安装与配置全攻略(附常见报错解决方案) 本文详细介绍了如何在Linux系统中安装和配置bash-completion,以显著提升命令行操作效率。通过命令补全功能,用户可以快速完成复杂命令的输入,特别适用于git、docker等工具的日常使用。文章还提供了常见报错解决方案和高级配置技巧,帮助开发者充分利用这一强大工具。 阅读详情

相关推荐

基于Pegasos主机为PPC目标板搭建无盘Linux开发环境实战指南

在嵌入式Linux开发中,网络文件系统(NFS)和网络引导是构建高效开发环境的核心技术。NFS允许将根文件系统存储在远程服务器上,通过网络挂载,实现资源的集中管理和共享。其原理是通过客户端-服务器模型,将服务器导出的目录透明地映射到客户端本地。这项技术的价值在于实现了开发环境的“分离”,将资源密集的编译和存储任务放在高性能宿主机上,而让资源受限的目标板专注于执行。这特别适用于存储空间有限的嵌入式设备,如PowerPC架构开发板。通过结合TFTP协议进行内核的网络引导,可以构建完整的无盘启动系统。本文以Peg

weixin_30619101的博客 388

bash命令补全工具bash-completion

什么是shell ? 简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了。 打个比方,如果把计算机硬件比作一个人的躯体,而系统内核则是人的大脑,至于shell,把它比作人的五官似乎更加贴切些。 回到计算机上来,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。 bash是 linux环境下面的命令行终端,对于命令和..

ChaITSimpleLove的博客 2万+

腾讯云轻量服务器部署Moltbot钉钉机器人:从零到一的保姆级指南

聊天机器人作为人机交互的重要载体,其核心原理在于通过自然语言处理(NLP)技术理解用户意图,并调用后端服务生成智能回复。在工程实践中,为了实现稳定、可扩展的机器人服务,常采用微服务架构进行部署。其中,容器化技术(如Docker)因其环境隔离和易于部署的特性,成为构建和运行机器人服务的首选方案。结合云服务器提供的弹性计算资源,开发者可以快速搭建起一个高可用的智能对话系统。本文聚焦于如何将开源的Moltbot(原OpenClaw)聊天机器人框架,与**腾讯云轻量应用服务器**和**钉钉**平台相结合,通过详细的

weixin_33701294的博客 569

Linux下命令补全工具bash-completion

Linux下超强的命令补全工具bash-completion 编写 Bash 补全脚本 参考URL: https://kodango.com/bash-competion-programming 在使用bash命令行时,在提示符下输入某个命令的前面几个字符,然后按下TAB键,就会列出以这几个字符开头的命令供我们选择。 自动补全这个功能是Bash自带的,但一般我们会安装bash-completion包来得到更好的补全效果,这个包提供了一些现成的命令补全脚本,一些基础的函数方便编写补全脚本,还有一个基本的配置脚

西京刀客 1万+

在树莓派上通过nginx安装ownCloud的bash自动化脚本

Bash(Bourne Again SHell)是Unix和Linux系统中常用的命令行解释器,它提供了一个与用户交互的环境,并允许执行命令和编写脚本。作为程序员和系统管理员,熟练掌握Bash脚本可以显著提高工作效率,实现复杂任务的自动化。树莓派(Raspberry Pi)是一款由树莓派基金会开发的单板计算机,自2012年首次发布以来,它已经经历了多次迭代和升级。树莓派最初的设计目的是为教育机构提供一种低成本、高效率的学习和教学工具,以便学生学习计算机编程和电子技术。

weixin_42510243的博客 882

AT32F435/437开发实战:把SD卡变成U盘的完整指南(含源码解析)

本文提供了基于AT32F435/437微控制器将SD卡改造为U盘的完整实战指南。通过深入解析USB MSC协议与SDIO驱动的协同工作原理,详细介绍了硬件设计要点、软件架构融合、核心源码解析以及从编译到文件传输的完整调试流程,帮助开发者实现可靠的大容量存储设备扩展。

weixin_29159127的博客 409

bash_completionq强劲的bash参数补全功能

我使用过的Linux命令之complete - 强劲的bash参数补全功能我使用过的Linux命令之complete - 强劲的bash参数补全功能本文链接:http://codingstandards.iteye.com/blog/796598 (转载请注明出处)在使用bash命令行时,在提示符下,输入某个命令的前面几个字符,然后按TAB键,就会列出以这几个字符开头的命...

weixin_33877092的博客 154

保姆级教程:用Ansible 2.9自动化配置华为ENSP路由器(附Cloud连接避坑指南)

本文提供了一份详细的Ansible 2.9与华为ENSP路由器自动化配置教程,涵盖环境搭建、网络连通性配置、Playbook开发及典型问题排查。特别针对Cloud连接常见问题提供避坑指南,帮助运维工程师快速掌握网络自动化技能,提升工作效率。

weixin_42561476的博客 375

Linux命令补全工具--bash-completion

本文介绍Linux命令补全工具:bash-completion。

IT利刃出鞘的博客 956

Selenium自动化测试遇到shadow-root元素?3种实用解决方案帮你搞定

本文针对Selenium自动化测试中遇到shadow-root元素难以定位的常见问题,提供了三种实用的解决方案。详细阐述了通过JavaScript直接穿透Shadow DOM、利用浏览器工具快速获取JS Path以及使用Python第三方库进行优雅封装的方法,并分享了提升脚本健壮性的实战策略与最佳实践,帮助测试人员有效应对现代Web组件化开发带来的挑战。

code8的博客 408

[知识图谱构建] 一.Neo4j图数据库安装初识及药材供应图谱实例

2012年5月,谷歌公司的知识图谱(Knowledge Graph)产品被正式提出,其旨在将人、地点、物等信息作为实体,将实体间的联系作为关系,并将实体和关系以图的形式进行存储。作为语义网的最新产物,知识图谱这种新型的搜索引擎改变了传统的文本搜索结果,而随后国内公司也开发出了相应产品,例如百度公司的“知心”和搜狗公司的“知立方”等。知识图谱本质上属于一种语义网。知识图谱中的每一条数据或事实一般会采用 &amp;lt;实体,属性,属性值&amp;gt; &amp;lt;实体, 关系,

杨秀璋的专栏 1万+

使用Bash中Complete自动补全命令

大家在Linux下都用shell的TAB自动补全功能,非常方便,但是有时自己开发程序,可能需要自定义实现TAB自动补全功能,这时可能就会用到complete命令来实现对命令的自定义补全,本文主要介绍complete的用法 complete参数详解 1 complete [-abcdefgjksuv] [-o comp-option] [-A actio

kobejayandy的专栏 4051

RockChip Android14 修改LCD背光最大值

在调试LCD屏时时长会出现硬件不匹配,导致电流过大,屏幕发热严重。在不调整硬件的情况下,我们可以通过修改软件,降低LCD背光最大值来实现适配。我们都知道LCD屏背光是靠pwm来控制,一般来说最大值可以设置为255,针对上述问题,我们可以通过软件来降低该值,比如200,100等等。

qq_34968572的博客 631

【亲测免费】 Bash-Completion 使用教程

Bash-Completion 是一个为 Bash shell 提供的命令行命令补全功能的集合。它包含了一系列的辅助函数,帮助创建新的补全功能,并提供了一套自动加载补全功能的机制。Bash-Completion 可以显著减少系统管理员的日常维护工作,提高工作效率。 ## 项目快速启动 ### 安装 首先,你需要安装 Bash-Completion。以下是几种常见的安装方法: - **Deb...

gitblog_00520的博客 1907

华为海思:大小海思的双轮驱动战略分析

大海思的定位清晰明确,即专注于为华为内部提供高性能、高集成度的芯片解决方案,以支持华为终端、服务器等业务的快速发展。小海思的产品线广泛,涵盖了广域物联、短距物联、手机穿戴、显示交互、智慧视觉、智慧媒体、MCU、模拟以及光模块等多个领域。通过提供多样化的芯片解决方案,小海思旨在满足外部客户的不同需求,拓展华为海思在芯片市场的份额和影响力。大海思的产品布局主要围绕华为的内部需求展开。在智能手机应用处理器方面,大海思的麒麟系列芯片已经成为华为手机的标志性产品,以其出色的性能和能效比赢得了市场的广泛认可。

dream it possible 2922

29. 如何通过 ABAP 代码给 SAP OData 元数据增添注解

我们先看下效果,在 MPC_EXT 类的 DEFINE 方法里编写 ABAP 代码之后,用 Postman 使用 url 访问 OData metadata,在返回的数据里,能看到我们用 ABAP 代码添加的自定义注解。你好,请问可以不可以在odata里面通过什么设置,从而自动给metadata.xml中加上注解,实现value help的功能,还是说每次需要在metadata.xml中修改?的词汇引用,然后为命名空间 com.sap.vocabularies.UI.v1 声明了一个别名。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1657

Linux |奇怪的知识---complete命令---你不知道的命令参数补全---kubectl命令的参数补全

complete命令定义命令或者脚本内的方法的参数自动补全内容是什么(例如,定义某个命令的参数---可以是目录,可以是其它的命令,可以是一个词组,可以是一个脚本内的函数名。命令的参数补全意义是比较重大的,通过命令的参数补全功能我们可以快速的上手命令,并对命令的使用加深记忆,这种情况尤其适用于像kubelet这样的参数非常多的命令。complete -p 命令---查询命令的complete参数补全设置。complete -c 命令---设置命令的参数为命令。命令参数补全主要是三个地方的脚本。

zsk_john的技术分享专用博客 3526

手把手教你学Simulink--基于飞轮储能系统的场景实例:飞轮储能与锂电池混合储能系统的协同控制

本文详细介绍了基于Simulink的飞轮储能与锂电池混合储能系统协同控制建模方法。通过高通/低通滤波器实现功率分配,使飞轮处理高频波动(±100kW),锂电池承担削峰填谷(50kW)。仿真结果表明,该系统效率达88%,锂电池循环次数减少90%,投资成本比纯电池方案节省200万美元。文章包含完整的建模步骤、控制策略设计和多场景仿真分析,为构建高效、长寿、经济的智能储能系统提供了实用解决方案。

MHD0815的博客 341

Linux 新手必看:bash-completion 命令补全神器

Linux 自带的基础补全只能补全命令和文件路径,比如输入 do 按 Tab 能补全 docker,但没法补全 docker 的子命令(如 run)或选项(如 -it)。而是 bash shell 的扩展工具,能实现高级补全:不仅补命令、路径,还能补子命令、选项甚至动态内容(比如正在运行的容器名)。一句话:少敲键盘、少出错!

运维老生常谈 2156

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Bash-completion 安装与配置指南

`bash-completion` 是一个为 Bash shell 提供命令行命令补全的开源项目。它包含了一系列的补全函数,这些函数可以辅助用户快速完成命令输入,提高工作效率。该项目的主要编程语言是 Bash 脚本。 ## 2. 项目使用的关键技术和框架 本项目主要利用了 Bash shell 的内置特性来实现命令补全功能。没有使用其他外部的框架或技术,因此它非常轻量且易于集成到现有的 Bas...

gitblog_01038的博客 1276

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

探索智能Shell命令完成:bash-completion

在日常的Linux或Unix系统操作中,我们经常需要输入各种命令行,而`bash-completion`项目正是为了提升这种体验而生。它是一个开源项目,位于,提供了一种自动补全功能,让你的Bash Shell更加智能化。 ## 项目简介 `bash-completion`是Bash Shell的一个扩展,它可以自动完成命令、选项和参数,减少了手动键入的时间和错误。该项目支持多种常见命令,包括系

gitblog_00011的博客 625

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

10种有用的Linux Bash_Completion 命令示例

我们可以对这个 bash 补全进行加速,并使用 complete 命令将其提升到一个新的水平。

华为云官方博客 1624

自定义补全bash complete

最开始接触shell时觉得命令自动补全功能很强大,但没有深入,今因偶然机遇重新学习竟然看懂了,故记之以作后查。 国外也有英文帖子作例解,但解释更长而且也是个人思路讲解,也不一定有助于自己的理解。 英文水平好的可以直接看bash mannual中Progammable Completion这段即可,耦即是耐着性子看懂了这段英文手册才有了收获。 故这里主要是参照手册来解释,也几乎是翻译了,敬

junyidcf的专栏 3105

Linux中Bash自动补齐原理

在之前说过,很多挖矿病毒为了隐藏自己往往会劫持动态链接库,在劫持后会发现TAB键会无法补齐一些病毒自带的文件,所以本文就想研究下TAB补全命令以及文件的原理是什么。

dayouzi的博客 2012
上一篇: 我使用过的Linux命令之join - 根据关键字合并数据文件
下一篇: 我使用过的Linux命令之time - 测定一个命令的资源使用情况
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值