コマンドのtab補完拡張:bash-completion

コマンドラインの、[tab]キーによる補完を拡張する。


そんなことが望みなら、bashではなく最強とも評されるzsh(Z Shell/ゼットシェル)を使えというのは真っ当な指摘だが、ここはひとまずbashで。

zshについては、Wikipedia: Z Shellなど。

bashの初期状態では、コマンドの補完はコマンド名がせいぜいだが、「bash-completion」をインストールすることによってコマンドのオプションも補完できるようになる。bash-completionが扱えるのは、すべてのコマンドではないが、例えば「apt-get」の場合なら、初期状態では「apt-get」までの補完だが、bash-completionは「apt-get install」までが守備範囲となる。

また、「cd」と打って[tab]キーを押せば、ディレクトリだけが候補として表示される。bash-completionなしの場合は、必要もないのにファイルまでが表示される。

インストール

Working more productively with bash 2.x/3.xというサイトのDownloadから、現状では、

bash-completion-20060301.tar.gz

を、どこかにダウンロードして展開。

展開してできたディレクトリ内に「bash_completion」というファイルがあるので、たとえばそれを「~/」(自分のhomeディレクトリ)にコピー。

bashの設定ファイル、「~/.bashrc」に以下を追記。
(「bash_completion」を「~/」にコピーした場合)

# 補完機能拡張
. bash_completion

冒頭の「.」も必要。

設定ファイル、「.bashrc」を再読み込み。

source ~/.bashrc

補完方法

[tab]キーによる補完方法は、従来と変わらない。補完機能は、入力の手間を省くためや、コマンドを間違わないためや、コマンド名やオプションを正確に覚えていないときにヒントを得るためのものなので、コマンド名をまったく知らない場合は、従来通りどうにもならない。

たとえば、Vineのパッケージを探すときに……

  1. パッケージを探すコマンドは「apt-」なんとかだったはずだと、「apt-」まで打って[tab]キー。
  2. 補完候補に「apt-cache apt-cdrom apt-config apt-get apt-shell」が表示されるので、「apt-cache」であることを思いだし「apt-ca」まで打って再度[tab]キー。
  3. 「apt-cache」と補完されるので、さらにオプションを表示すべく[tab]キー。ずらっと補完候補が出る。
  4. 「search」が必要なコマンドなので、「se」まで打って[tab]キー。
  5. 続けて、調べたいパッケージ名。

andy


冒頭の写真のオリジナル: Kasia/flickr
ライセンス:CC/クリエイティブ・コモンズ 表示-改変禁止

andy