【Linux, bash】bash-completionの導入〜CentOS6.2の場合〜

Linux, UNIX系OSのシェルで、標準のbashの補完機能を強化できるbash-completionを導入したので、備忘も兼ねてそのプロセスを記載します。

参考URL

Bash Completion Official Homepage:
    http://bash-completion.alioth.debian.org/
@IT:bashの補完機能を拡張するには(2006/7/13):
    http://www.atmarkit.co.jp/flinux/rensai/linuxtips/908bashcomp.html

CentOS6.2の場合

CentOS6.2でのインストールプロセスです。
検証はしていませんが、Scientific Linux6.2でも同様のプロセスで可能かと思います。

bash-completionのインストール

CentOS6.2では、yumでインストールするだけでbash-completionが利用できます。
rootになり、以下のコマンドを実行します。

# yum install bash-completion

bash-completion導入の確認

ログアウトして、ログインし直します。
yumコマンドでtab補完できることを確認してみます。

# yum <-- yumと入力した後にTabキーを2回クリックする
--assumeyes --disableplugin --help --randomwait --tolerant deplist groupremove makecache search
--cacheonly --disablerepo --installroot --releasever --verbose distro-sync help provides shell
--color --enableplugin --nogpgcheck --rpmverbosity --version downgrade history reinstall update
--config --enablerepo --noplugins --setopt check groupinfo info remove upgrade
--debuglevel --errorlevel --obsoletes --showduplicates check-update groupinstall install repolist version
--disableexcludes --exclude --quiet --skip-broken clean grouplist list resolvedep

gitの補完について

CentOS6.2のyumコマンドでインストールしたbash-completionは、デフォルトでgitの補完もできるようです。

# git
add branch commit format-patch init notes replace show whatchanged
am bundle config fsck instaweb pull request-pull show-branch
annotate checkout describe gc log push reset stage
apply cherry diff get-tar-commit-id merge rebase rev-tree stash
archive cherry-pick difftool grep mergetool relink revert status
bisect clean fetch help mv remote rm submodule
blame clone filter-branch imap-send name-rev repack shortlog tag

設定ファイル等のディレクトリ

インストールしたbash-completion関連の設定は、/etc/bash_completion, /etc/bash_completion.d/などに格納されるようです。
また、/etc/bash_completion.d/以下には、補完対象になるコマンドのそれぞれの設定が補完されるようです。

# ls /etc/bash_completion.d/
autoconf bzip2 crontab e2fsprogs git imagemagick java man net-tools postfix redefine_filedir samba smartctl tar xmlwf
automake chkconfig cryptsetup findutils gpg2 info lsof mdadm ntpdate procps rfkill screen sqlite3 tcpdump xsltproc
bash-builtins configure cvs gcc gzip iproute2 lvm mercurial.sh openssl python rpm service ssh util-linux xz
bind-utils coreutils dd gdb iconv iptables lzma module-init-tools perl quota-tools rrdtool sh strace wireless-tools yum-utils.bash
brctl cpio dhclient getent ifupdown isql make mysqladmin pkg-config rcs rsync shadow subversion xmllint yum.bash

以上でbash-completionの導入は完了です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>