2014年01月22日
hh - より良い history コマンド。 BASH command completion from the history
CLI をワーク・ホームにしている人なら頻繁に利用するコマンド・ベスト10にランキングされてもおかしくないのが history コマンド。
勿論、僕もそう。 複雑なオプションが必要なコマンド、何時だったかsshで接続先したホスト、アドレスを思い出すのに便利ですよねぇ。
この history をもっと便利にしてくれるのが今日ご紹介する hh 、 history をベースとした Bash コマンド補完ユーティリティです。
便利な history コマンドに感じるストレス・・・
僕のラップトップでも history は大活躍。 よく使うので $HOME/.bashrc で history サイズを拡張しているくらい。
$ cat ~/.bashrc
--- snip ---
# for history command
# format
HISTTIMEFORMAT='%F %T -> '
# history instance size
HISTSIZE=3000
# history persistence size
HISTFILESIZE=3000
こんな大好きな history コマンドにも時々不便に感じることがあります。 例えば検索が弱いところ。
「えーっと、この前 SSH で接続したあのホストって・・・」と思い history で探すとしたら、こんなコマンドの組み合わせになるでしょうか。
$ history | grep ssh | grep 192.168 | tail
748 2014-01-20 18:00:12 -> ssh root@192.168.3.10
750 2014-01-20 18:10:21 -> ssh root@192.168.1.15
764 2014-01-20 19:34:35 -> ssh root@192.168.1.11
769 2014-01-20 19:41:37 -> ssh root@192.168.3.10
814 2014-01-21 10:06:01 -> ssh root@192.168.5.100
816 2014-01-21 11:00:28 -> ssh root@192.168.6.16
953 2014-01-21 16:53:47 -> ssh root@192.168.0.16
971 2014-01-21 18:50:00 -> ssh 192.168.0.34
冗長的ですし、見やすいとは言えませんから今一つ納得出来ないですよね。
さらに目当てのコマンドを実行するのにコピー、ペースト、Enter キー入力という3つのアクションが必要なのもイヤ。
そんな怠け者の貴方にオススメなのが hh なんです。
hh (hstr) のインストールと設定
hh (hstr) のプロジェクト・ホームはこちら。
git でも clone できますがリリース・ページから安定版をダウンロードした方が早いでしょうね。
貴方が Linux/64bit 版 OS を使っているなら簡単。 バイナリが用意されているので解凍してパスにコピーするだけです。
$ wget https://github.com/dvorka/hstr/releases/download/0.97/hh-0.97-bin-64b.tgz
$ tar xvzf hh-0.97-bin-64b.tgz
hh
$ sudo cp hh /usr/local/bin/hh
ソースコードからビルドするなら、まず依存パッケージをインストールして、
$ sudo apt-get install libreadline-dev libncurses5-dev
hh のソースを make, make install します。
$ wget https://github.com/dvorka/hstr/releases/download/0.97/hh-0.97-src.tgz
$ tar xvf hh-0.97-src.tgz
$ cd hstr/
$ ./configure
$ make
$ sudo make install
最後に動作設定を .bashrc ( MAC OS であれば ~/.bash_profile ?)に追記・ロードすれば全ておしまい。
$ hh --show-configuration >> ~/.bashrc
$ . ~/.bashrc
Mac OS へのインストール方法はこちらをどうぞ。
hh (hstr) の使い方
端末(ターミナル)を開き hh と入力してみましょう。 デフォルトではランキング形式(頻度の高い順)でコマンドの履歴が order 表示されます。
Ctr+h キーで通常の history 形式にも切り替えられますよ。
hh の操作は対話的に。 Ctrl+r キー(又は UP or Down キー)でカーソルを移動して、
目当てのコマンドを選択した状態で Enter キーを入力すると制御が端末に移りコマンドが実行されます。
(代わりに TAB キーを入力すると実行は行わずプロンプト上でコマンドの編集が可能)
僕のように過去 SSH で接続したホストを探すなら hh 起動後に ssh と入力して( hh の引数でキーワードを指定することも可能)絞りこまれた候補の中から目当てのコマンドにカーソルを移動して、
Enter キーで選択すれば即座に history からアクションに遷移できるのです。
ね、便利でしょ。 実際の動画はこちら。
より良い history ライフを。
達人プログラマー―システム開発の職人から名匠への道
posted with amazlet at 14.01.22
アンドリュー ハント デビッド トーマス
ピアソンエデュケーション
売り上げランキング: 47,458
ピアソンエデュケーション
売り上げランキング: 47,458
プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)
posted with amazlet at 14.01.22
Neal Ford
オライリージャパン
売り上げランキング: 101,309
オライリージャパン
売り上げランキング: 101,309