16

I have installed bash completion using yum install --enablerepo=epel bash-completion. While it works for some basic commands (git & yum), I am missing a large part of the completers.

My /etc/bash_completion.d contains the following:

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

However, I know there is bash_completion for i.e. make (which is installed) and a lot more, compare i.e. to the sample output here.

How can I get the missing completer scripts? (Preferably with yum, so I do not have to update them manually)

If it matters: tab completion works, but I am not sourcing anything in my .bashrc. It just started working after installing the package.


UPDATE: After checking the version of bash completion I have installed as @fduff suggested I saw the following:

$ yum list installed | grep completion
bash-completion.noarch 1:2.1-6.el7 @base

However trying uninstalling it and forcing centos to install bash_completion from the epel repository with sudo yum install --enablerepo=epel bash-completion --disablerepo=base yielded package not found.

Further checking yielded that the new package which is now in @base puts the completion files into /usr/share/bash-completion/completions, however I am still missing some, i.e. ssh and sudo (kind of sucks that sudo command [tab] does not complete while command [tab] does), furthermore I sitll can't find the bit for make (which should list the targets that are in Makefile)


UPDATE2: The changelog states:

  • Fri Nov 01 2013 Petr Stodulka - 2.1-6
    • Install only available completions (#810343 - comment 15) without "tar" and remove the other.
  • Fri Sep 13 2013 Roman Rakus - 2.1-5
    • Added one more missing conditional Resolves: #1007839
  • Fri Sep 13 2013 Roman Rakus - 2.1-4
    • Added conditionals to not add completions for some commands; the packages has their own completions Resolves: #1007839

Thus reinstalling sudo, after I had bash_completion installed worked for the sudo completion, however I had no such luck with make.

QUESTION: How to enable make bash completion in Centos 7?

4 Answers 4

12

You might want to try bash-completion-extras. It was briefly only in epel-testing, but has been released into epel. Right now, you should be able to run:

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

...to get bash-completion-extras.

2
  • 2
    It is in epel now. Commented Mar 21, 2017 at 9:12
  • Updated to just enable the EPEL repo.
    – jsbillings
    Commented Nov 30, 2020 at 16:31
7

I have the bash-completion package installed on my CentOS system and by default it's got plenty of support for many applications.

Check the version you have also, just in case.

$  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
1
  • +1 for checking the version (I get a newer (?!) one from the base repo), unfortunatly I can't find bash-completion in the epel repository (see update question). Any further ideas?
    – ted
    Commented Feb 18, 2016 at 16:13
1

I saw this question when I got a problem of my bash-completion. I was inspired by the information here and took some experiment. It turns out that I need to REINSTALL the package first if the completion for that package is missing.

For example, I lost completion for my yum. Tried to remove, install, and reinstall bash-completion, but there was no yum under neither /etc/bash_completion.d/ nor /usr/share/bash-completion/completions/. Then I saw this question and tried yum reinstall yum followed by yum reinstall bash-completion. After that I got yum laid in /etc/bash_completion.d/.

That worked for make too, in my home server.

So maybe this is the case, that we need to reinstall the target package first, then reinstall bash-completion.

1
  • Tried what others suggested; eventually got it fixed via reinstalling the packages. thanks!
    – helvete
    Commented Jun 18, 2018 at 8:52
1

For CentOS 7.5, just enable the epel Repo. and then install bash-completion-extras:

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .