それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Bashを便利にする補完機能:bash-completionでSSHの入力を楽にする。

Bash-Completionは手放せなくなり。とても大事です。zshもいいんだけど、bashまだまだ使えるよ。ってかデフォルトbashが続くのでやっぱしばらくはbashかな

bash-completionがあると。

TABを押すだけでコマンドが補完される。

コマンドで引数を保管してくれる。
(brewコマンドで補完)

SSHコマンドの補完
(SSH補完)

sshコマンドの場合、サーバー名が補完される。
・authorized_keys (アクセスしたことあるサーバー)
・.ssh/config (Host設定)

などが対象になって、超便利。このためだけにCompletionを使っているといえる。

SSHの補完機能はサーバー名などが長い時に特に便利。

いままで
alias media_server="ssh 192.168.2.11"
いまでは
ssh me

このほうが断然便利!

インストール

Macの場合は

brew install bash-completion

ubuntu/debianはapt cygwin もある。


bashrcで有効にされる。

mac brew の場合は、bashrcに追記して、completionを有効にする。そんな感じ。この設定が重要ですね。

(2d2d125353e3cd765063896146baa495)

補完機能が効くコマンド

上のスクリーン・ショットの場所(.dで分割)にコマンドの補完機能があって、コマンド毎の補完機能を使うことで

いかが今のところコマンドのオプションが効くもの。

takuya@air:~/Desktop$ ls  `brew --prefix`/etc/bash_completion.d
abook          dselect                       jar                ntpdate      sitecopy
ant            dsniff                        java               open-iscsi   smartctl
apache2ctl     dvd+rw-tools                  k3b                openldap     snownews
apt            e2fsprogs                     kldload            openssl      source-highlight-bash-completion
apt-build      findutils                     larch              p4           sqlite3
aptitude       freeciv                       ldapvi             perl         ssh
aspell         freerdp                       lftp               pine         sshfs
autoconf       fuse                          lilo               pkg-config   strace
automake       gcc                           links              pkg_install  subversion
autorpm        gcl                           lintian            pkgtools     svk
bash-builtins  gdb                           lisp               pm-utils     sysbench
bind-utils     gdbus-bash-completion.sh      lrzip              portupgrade  sysctl
bitkeeper      gem                           lsof               postfix      sysv-rc
bittorrent     genisoimage                   lvm                postgresql   tar
bluez          getent                        lzma               povray       tcpdump
brctl          git                           lzop               procps       unace
brew           git-completion.bash           mailman            python       unrar
bzip2          gkrellm                       make               qdbus        update-alternatives
cardctl        gnatmake                      man                qemu         util-linux
cfengine       gpg                           mc                 quota-tools  vncviewer
chkconfig      gpg2                          mcrypt             rcs          vpnc
chsh           gsettings-bash-completion.sh  mdadm              rdesktop     wireless-tools
cksfv          gzip                          medusa             reportbug    wodim
clisp          heimdal                       mercurial          resolvconf   wol
configure      helpers                       minicom            rfkill       wtf
coreutils      hg-completion.bash            mkinitrd           ri           wvdial
cowsay         hping2                        module-init-tools  rpcdebug     xhost
cpan2dist      iconv                         monodevelop        rpm          xm
cpio           iftop                         mount              rpmcheck     xmllint
crontab        ifupdown                      mplayer            rrdtool      xmlwf
cryptsetup     imagemagick                   msynctool          rsync        xmms
cups           info                          mtx                rtcwake      xmodmap
cvs            ipmitool                      munin-node         samba        xrandr
cvsps          iproute2                      mutt               sbcl         xrdb
dd             ipsec                         mysqladmin         screen       xsltproc
dhclient       iptables                      ncftp              service      xz
dict           ipv6calc                      net-tools          sh           yp-tools
dpkg           isql                          nmap               shadow       yum-arch


かなりたくさんあります。

Bash-Completionによる補完機能はデストリ次第で異なるので、いいものを見つけたら、自分のレポジトリに取り込んで、増やしておけばいいと思う。