『Bash Completion』を使ってbashでホスト名のタブ補完

Bash Completionでbashの補完機能を強力にする - 理想未来はどうなった?』
http://d.hatena.ne.jp/pcmaster/20101021/p1
こちらで紹介されていたbashでのホスト名のタブ補完設定がクソ便利だったので備忘録として。
一回この設定にしたら手放せません。
上記URL先の情報をそのまま自分の環境へ入れてみました。


例えば、LinuxMacのターミナルからsshログインする際、

ssh example.com

と打つ場合、「ssh example.com」とホスト名全てを打ち込んでいたんですが、
Bash Completion』を導入すると「ssh e」くらいでタブキーを押すと補完してくれる!!
known_hostsに入ると補完対象になります。
何が便利ってsshだけじゃなくてpingやdigコマンドでも補完されるっていう点。


RedHat系では、rpmforgeを有効にすることでyumでインストールが可能でした。

sudo yum install bash-completion.noarch


MacOSXでは

sudo brew install bash-completion

こんな感じのMacPortsコマンドでインストールした後、
自分のアカウントのホームディレクトリの
.bash_profile
へ以下を追記

if [ -f /opt/local/etc/bash_completion ]; then
    . /opt/local/etc/bash_completion
fi

こんな感じ。


この設定の後、
~/.ssh/config
を以下のように編集してやれば完全にログインが簡単になります。

Host *
User tsunokawa
IdentityFile ~/.ssh/id_rsa


特定ホストだけポート番号を指定したい場合

Host example.com
HostName example.com
User tsunokawa
Port 8022
IdentityFile ~/.ssh/id_rsa

これらの設定については↓を参考にさせて頂きました。
ウノウラボ by Zynga Japan: 快適なsshクライアント生活』
http://labs.unoh.net/2010/03/ssh_config.html