historyをインクリメンタルサーチして実行したりする
SKIYAKIでエンジニアをしてるらしい kouno と申します。
普段は横須賀で提督業に勤しんだり、焼却された人理の復元をしてたりしますが、エンジニアブログに何かを書けと言われたので、少し書いてみようと思います。
今までは過去に実行したような気がするコマンドを探すのにhistory | grep hoge
とかしていたのですが、peco
というものに出合って割とこの辺の探し物とかが便利になったので以下つらつらと。
まずはpecoの導入
環境は MacOSX 10.11.13 とかです。
$ brew tap peco/peco $ brew install peco
※homebrew導入済みのOSXにて brew tap peco/peco 不要かも?
次にシェルの準備
[~/.bash_profile] shis () { #search shell history if grep -q '^[0-9]\+$' <<< "$1";then history $(($1 + 1)) else history fi | sort -r | sed 1d | peco --prompt "Select history to copy:" | cut -d ' ' -f 5- | pbcopy pbpaste } rhis () { #run shell history eval "$(shis "$1")" }
実践してみる
これで $ rhis
とかすると、history コマンドの結果に対して、インクリメンタルサーチが出来るうえに、
画面上で実施したいコマンドを選択すると、その場で実行してくれます。
実行でなくて、ただ探したいだけの時は $ shis
で探して選択する事が出来ます。
ザックリと使い方だけですが、詳細な仕様等は参考下記のURLをご参照下さい。
参考
参考URL