macOS の bash-completion で ssh 接続先を補完する

macOS でも bash-completion を入れると bash の補完が出来るようになります。特に定義ファイルを追加しなくても、ssh の接続先を補完してくれるので、これだけでも便利です (定義ファイルを追加してカスタマイズしていくと更に便利です!)。

Homebrew はインストール済みだとします。bash-completion がインストールされていないと以下のように「Not installed」と表示されます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ brew info bash-completion
bash-completion: stable 1.3 (bottled)
Programmable completion for Bash 3.2
https://bash-completion.alioth.debian.org/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/bash-completion.rb
==> Caveats
Add the following lines to your ~/.bash_profile:
  if [ -f $(brew --prefix)/etc/bash_completion ]; then
    . $(brew --prefix)/etc/bash_completion
  fi

Homebrew で bash-completion をインストールします。

1
brew install bash-completion

~/.bash_profile に以下を追加します。

1
2
3
if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
fi

source ~/.bash_profile するか、ターミナルを開き直して設定変更を反映します。あとは ssh に続いて Tab キーを 2 回押すと、接続先候補が一覧表示されるか、または補完されます。

1
$ ssh [Tab x 2]