Centos 7 上的 Bash 补全非常不完整

Centos 7 上的 Bash 补全非常不完整

我已经使用安装了 bash 补全yum install --enablerepo=epel bash-completion。虽然它适用于一些基本命令(git 和 yum),但我缺少很大一部分完成者。

我的/etc/bash_completion.d包含以下内容:

bash_completion.d]$ ls
git iprutils redefine_filedir yum yummain.py yum-utils.bash

但是,我知道 ie make (已安装)有 bash_completion 以及更多,将 ie 与示例输出在这里

如何获取缺失的完整脚本? (最好使用 yum,这样我就不必手动更新它们)

如果重要的话:制表符补全可以工作,但我没有在 .bashrc 中获取任何内容。安装软件包后它才开始工作。


更新:在检查了 bash 完成的版本后,我按照 @fduff 的建议进行了安装,我看到了以下内容:

$ yum 已安装列表 | grep 完成
bash-completion.noarch 1:2.1-6.el7 @base

然而,尝试卸载它并强制 centos 从 epel 存储库安装 bash_completion 并sudo yum install --enablerepo=epel bash-completion --disablerepo=base生成package not found.

进一步检查发现新包装现在位于 @base 中,将完成文件放入/usr/share/bash-completion/completions,但是我仍然缺少一些,即sshsudo(有点糟糕,在完成sudo command [tab]时没有完成command [tab]),此外我找不到make(应该列出 中的目标Makefile)的位


更新2: 变更日志指出:

  • 2013 年 11 月 1 日星期五 彼得·斯托杜尔卡 - 2.1-6
    • 仅安装不带“tar”的可用补全(#810343 - 注释 15)并删除其他。
  • 2013 年 9 月 13 日星期五 罗马拉库斯 - 2.1-5
    • 添加了另一个缺失的条件解决:#1007839
  • 2013 年 9 月 13 日星期五 罗马拉库斯 - 2.1-4
    • 添加了条件以不添加某些命令的完成;这些软件包有自己的完成解决方案:#1007839

因此,在安装了 bash_completion 之后重新安装 sudo 可以完成工作sudo,但是我在 make 方面却没有这样的运气。

问题: 如何make在 Centos 7 中启用 bash 补全?

答案1

你可能想尝试一下bash-completion-extras。它仅在 epel 测试中短暂存在,但已发布到 epel 中。现在,您应该能够运行:

yum --enablerepo=epel install bash-completion-extras

...获得 bash-completion-extras。

答案2

bash-completion在我的 CentOS 系统上安装了该软件包,默认情况下它为许多应用程序提供了大量支持。

还请检查您拥有的版本,以防万一。

$  yum list installed | grep completion
bash-completion.noarch                1:1.3-7.el6               @epel


$  repoquery --list bash-completion.noarch 
/etc/bash_completion
/etc/bash_completion.d
/etc/bash_completion.d/abook
/etc/bash_completion.d/ant
/etc/bash_completion.d/apt
/etc/bash_completion.d/aspell
/etc/bash_completion.d/autoconf
/etc/bash_completion.d/automake
/etc/bash_completion.d/autorpm
/etc/bash_completion.d/bash-builtins
/etc/bash_completion.d/bind-utils
/etc/bash_completion.d/bitkeeper
/etc/bash_completion.d/bittorrent
/etc/bash_completion.d/bluez
/etc/bash_completion.d/brctl
/etc/bash_completion.d/bzip2
/etc/bash_completion.d/cfengine
/etc/bash_completion.d/chkconfig
/etc/bash_completion.d/cksfv
/etc/bash_completion.d/clisp
/etc/bash_completion.d/configure
/etc/bash_completion.d/coreutils
/etc/bash_completion.d/cpan2dist
/etc/bash_completion.d/cpio
/etc/bash_completion.d/crontab
/etc/bash_completion.d/cryptsetup
/etc/bash_completion.d/cups
/etc/bash_completion.d/cvs
/etc/bash_completion.d/cvsps
/etc/bash_completion.d/dd
/etc/bash_completion.d/dhclient
/etc/bash_completion.d/dict
/etc/bash_completion.d/dpkg
/etc/bash_completion.d/dselect
/etc/bash_completion.d/dsniff
/etc/bash_completion.d/dvd+rw-tools
/etc/bash_completion.d/e2fsprogs
/etc/bash_completion.d/findutils
/etc/bash_completion.d/freeciv
/etc/bash_completion.d/freerdp
/etc/bash_completion.d/fuse
/etc/bash_completion.d/gcc
/etc/bash_completion.d/gcl
/etc/bash_completion.d/gdb
/etc/bash_completion.d/genisoimage
/etc/bash_completion.d/getent
/etc/bash_completion.d/gkrellm
/etc/bash_completion.d/gnatmake
/etc/bash_completion.d/gpg
/etc/bash_completion.d/gpg2
/etc/bash_completion.d/gzip
/etc/bash_completion.d/hping2
/etc/bash_completion.d/iconv
/etc/bash_completion.d/iftop
/etc/bash_completion.d/ifupdown
/etc/bash_completion.d/imagemagick
/etc/bash_completion.d/info
/etc/bash_completion.d/ipmitool
/etc/bash_completion.d/iproute2
/etc/bash_completion.d/ipsec
/etc/bash_completion.d/iptables
/etc/bash_completion.d/ipv6calc
/etc/bash_completion.d/isql
/etc/bash_completion.d/jar
/etc/bash_completion.d/java
/etc/bash_completion.d/k3b
/etc/bash_completion.d/ldapvi
/etc/bash_completion.d/lftp
/etc/bash_completion.d/lisp
/etc/bash_completion.d/lrzip
/etc/bash_completion.d/lsof
/etc/bash_completion.d/lvm
/etc/bash_completion.d/lzma
/etc/bash_completion.d/lzop
/etc/bash_completion.d/mailman
/etc/bash_completion.d/make
/etc/bash_completion.d/man
/etc/bash_completion.d/mc
/etc/bash_completion.d/mcrypt
/etc/bash_completion.d/mdadm
/etc/bash_completion.d/medusa
/etc/bash_completion.d/minicom
/etc/bash_completion.d/mkinitrd
/etc/bash_completion.d/module-init-tools
/etc/bash_completion.d/monodevelop
/etc/bash_completion.d/mplayer
/etc/bash_completion.d/msynctool
/etc/bash_completion.d/mtx
/etc/bash_completion.d/munin-node
/etc/bash_completion.d/mutt
/etc/bash_completion.d/mysqladmin
/etc/bash_completion.d/ncftp
/etc/bash_completion.d/net-tools
/etc/bash_completion.d/nmap
/etc/bash_completion.d/ntpdate
/etc/bash_completion.d/open-iscsi
/etc/bash_completion.d/openldap
/etc/bash_completion.d/openssl
/etc/bash_completion.d/perl
/etc/bash_completion.d/pine
/etc/bash_completion.d/pkg-config
/etc/bash_completion.d/plague-client
/etc/bash_completion.d/pm-utils
/etc/bash_completion.d/postfix
/etc/bash_completion.d/postgresql
/etc/bash_completion.d/povray
/etc/bash_completion.d/procps
/etc/bash_completion.d/python
/etc/bash_completion.d/qdbus
/etc/bash_completion.d/qemu
/etc/bash_completion.d/quota-tools
/etc/bash_completion.d/rcs
/etc/bash_completion.d/rdesktop
/etc/bash_completion.d/redefine_filedir
/etc/bash_completion.d/resolvconf
/etc/bash_completion.d/rfkill
/etc/bash_completion.d/ri
/etc/bash_completion.d/rpcdebug
/etc/bash_completion.d/rpm
/etc/bash_completion.d/rpmcheck
/etc/bash_completion.d/rrdtool
/etc/bash_completion.d/rsync
/etc/bash_completion.d/samba
/etc/bash_completion.d/sbcl
/etc/bash_completion.d/screen
/etc/bash_completion.d/service
/etc/bash_completion.d/sh
/etc/bash_completion.d/shadow
/etc/bash_completion.d/sitecopy
/etc/bash_completion.d/smartctl
/etc/bash_completion.d/snownews
/etc/bash_completion.d/sqlite3
/etc/bash_completion.d/ssh
/etc/bash_completion.d/sshfs
/etc/bash_completion.d/strace
/etc/bash_completion.d/svk
/etc/bash_completion.d/sysbench
/etc/bash_completion.d/tar
/etc/bash_completion.d/tcpdump
/etc/bash_completion.d/unace
/etc/bash_completion.d/unrar
/etc/bash_completion.d/util-linux
/etc/bash_completion.d/vncviewer
/etc/bash_completion.d/vpnc
/etc/bash_completion.d/wireless-tools
/etc/bash_completion.d/wodim
/etc/bash_completion.d/wol
/etc/bash_completion.d/wtf
/etc/bash_completion.d/wvdial
/etc/bash_completion.d/xm
/etc/bash_completion.d/xmllint
/etc/bash_completion.d/xmlwf
/etc/bash_completion.d/xmms
/etc/bash_completion.d/xorg-x11-server-utils
/etc/bash_completion.d/xsltproc
/etc/bash_completion.d/xz
/etc/bash_completion.d/yp-tools
/etc/bash_completion.d/yum-arch
/etc/profile.d/bash_completion.sh
/usr/share/bash-completion
/usr/share/bash-completion/abook
/usr/share/bash-completion/ant
/usr/share/bash-completion/apt
/usr/share/bash-completion/aspell
/usr/share/bash-completion/autoconf
/usr/share/bash-completion/automake
/usr/share/bash-completion/autorpm
/usr/share/bash-completion/bind-utils
/usr/share/bash-completion/bitkeeper
/usr/share/bash-completion/bittorrent
/usr/share/bash-completion/bluez
/usr/share/bash-completion/brctl
/usr/share/bash-completion/bzip2
/usr/share/bash-completion/cfengine
/usr/share/bash-completion/chkconfig
/usr/share/bash-completion/cksfv
/usr/share/bash-completion/clisp
/usr/share/bash-completion/cpan2dist
/usr/share/bash-completion/cpio
/usr/share/bash-completion/crontab
/usr/share/bash-completion/cryptsetup
/usr/share/bash-completion/cups
/usr/share/bash-completion/cvs
/usr/share/bash-completion/cvsps
/usr/share/bash-completion/dhclient
/usr/share/bash-completion/dict
/usr/share/bash-completion/dpkg
/usr/share/bash-completion/dselect
/usr/share/bash-completion/dsniff
/usr/share/bash-completion/dvd+rw-tools
/usr/share/bash-completion/e2fsprogs
/usr/share/bash-completion/findutils
/usr/share/bash-completion/freeciv
/usr/share/bash-completion/freerdp
/usr/share/bash-completion/fuse
/usr/share/bash-completion/gcc
/usr/share/bash-completion/gcl
/usr/share/bash-completion/gdb
/usr/share/bash-completion/genisoimage
/usr/share/bash-completion/gkrellm
/usr/share/bash-completion/gnatmake
/usr/share/bash-completion/gpg
/usr/share/bash-completion/gpg2
/usr/share/bash-completion/gzip
/usr/share/bash-completion/helpers
/usr/share/bash-completion/helpers/perl
/usr/share/bash-completion/hping2
/usr/share/bash-completion/iftop
/usr/share/bash-completion/imagemagick
/usr/share/bash-completion/info
/usr/share/bash-completion/ipmitool
/usr/share/bash-completion/iproute2
/usr/share/bash-completion/ipsec
/usr/share/bash-completion/iptables
/usr/share/bash-completion/ipv6calc
/usr/share/bash-completion/isql
/usr/share/bash-completion/jar
/usr/share/bash-completion/java
/usr/share/bash-completion/k3b
/usr/share/bash-completion/ldapvi
/usr/share/bash-completion/lftp
/usr/share/bash-completion/lisp
/usr/share/bash-completion/lrzip
/usr/share/bash-completion/lsof
/usr/share/bash-completion/lvm
/usr/share/bash-completion/lzma
/usr/share/bash-completion/lzop
/usr/share/bash-completion/mailman
/usr/share/bash-completion/make
/usr/share/bash-completion/man
/usr/share/bash-completion/mc
/usr/share/bash-completion/mcrypt
/usr/share/bash-completion/mdadm
/usr/share/bash-completion/medusa
/usr/share/bash-completion/minicom
/usr/share/bash-completion/mkinitrd
/usr/share/bash-completion/monodevelop
/usr/share/bash-completion/mplayer
/usr/share/bash-completion/msynctool
/usr/share/bash-completion/mtx
/usr/share/bash-completion/munin-node
/usr/share/bash-completion/mutt
/usr/share/bash-completion/mysqladmin
/usr/share/bash-completion/ncftp
/usr/share/bash-completion/net-tools
/usr/share/bash-completion/nmap
/usr/share/bash-completion/ntpdate
/usr/share/bash-completion/open-iscsi
/usr/share/bash-completion/openldap
/usr/share/bash-completion/openssl
/usr/share/bash-completion/perl
/usr/share/bash-completion/pine
/usr/share/bash-completion/pkg-config
/usr/share/bash-completion/plague-client
/usr/share/bash-completion/pm-utils
/usr/share/bash-completion/postfix
/usr/share/bash-completion/postgresql
/usr/share/bash-completion/povray
/usr/share/bash-completion/procps
/usr/share/bash-completion/python
/usr/share/bash-completion/qdbus
/usr/share/bash-completion/qemu
/usr/share/bash-completion/quota-tools
/usr/share/bash-completion/rcs
/usr/share/bash-completion/rdesktop
/usr/share/bash-completion/resolvconf
/usr/share/bash-completion/rfkill
/usr/share/bash-completion/ri
/usr/share/bash-completion/rpcdebug
/usr/share/bash-completion/rpmcheck
/usr/share/bash-completion/rrdtool
/usr/share/bash-completion/rsync
/usr/share/bash-completion/samba
/usr/share/bash-completion/sbcl
/usr/share/bash-completion/screen
/usr/share/bash-completion/shadow
/usr/share/bash-completion/sitecopy
/usr/share/bash-completion/smartctl
/usr/share/bash-completion/snownews
/usr/share/bash-completion/sqlite3
/usr/share/bash-completion/ssh
/usr/share/bash-completion/sshfs
/usr/share/bash-completion/strace
/usr/share/bash-completion/svk
/usr/share/bash-completion/sysbench
/usr/share/bash-completion/tar
/usr/share/bash-completion/tcpdump
/usr/share/bash-completion/unace
/usr/share/bash-completion/unrar
/usr/share/bash-completion/vncviewer
/usr/share/bash-completion/vpnc
/usr/share/bash-completion/wireless-tools
/usr/share/bash-completion/wodim
/usr/share/bash-completion/wol
/usr/share/bash-completion/wtf
/usr/share/bash-completion/wvdial
/usr/share/bash-completion/xm
/usr/share/bash-completion/xmllint
/usr/share/bash-completion/xmlwf
/usr/share/bash-completion/xmms
/usr/share/bash-completion/xorg-x11-server-utils
/usr/share/bash-completion/xsltproc
/usr/share/bash-completion/xz
/usr/share/bash-completion/yp-tools
/usr/share/bash-completion/yum-arch
/usr/share/doc/bash-completion-1.3
/usr/share/doc/bash-completion-1.3/AUTHORS
/usr/share/doc/bash-completion-1.3/CHANGES
/usr/share/doc/bash-completion-1.3/CHANGES.package.old
/usr/share/doc/bash-completion-1.3/COPYING
/usr/share/doc/bash-completion-1.3/README
/usr/share/doc/bash-completion-1.3/TODO

答案3

当我遇到 bash 完成问题时,我看到了这个问题。我受到这里信息的启发并进行了一些实验。事实证明,如果缺少该包的完成,我需要先重新安装该包。

例如,我失去了我的yum.尝试删除、安装并重新安装 bash-completion,但在/etc/bash_completion.d/Nor下都没有 yum /usr/share/bash-completion/completions/。然后我看到了这个问题,yum reinstall yum然后尝试了yum reinstall bash-completion。之后我就yum上床了/etc/bash_completion.d/

make这在我的家庭服务器上也有效。

所以也许是这种情况,我们需要先重新安装目标包,然后重新安装 bash-completion。

答案4

对于 CentOS 7.5,只需启用埃佩尔回购。然后安装bash-completion-extras

yum install epel-release
yum install bash-completion-extras

相关内容