historyCtrl + rの備忘録。

コマンドの履歴を検索するには、historyを使う。

$ history
1  pwd
2  vi /usr/local/tomcat/webapps/MyApp/WEB-INF/classes/resource.properties
3  history

grepと組み合わせて使用すれば、探したいコマンド履歴だけを絞り込める。

$ history | grep resource
2  vi /usr/local/tomcat/webapps/MyApp/WEB-INF/classes/resource.properties
4  history | grep resource

2番のコマンドをもう一度使いたいときには、historyの結果をコピペしてもいいが、!nで実行できる。

$ !2

historyとgrepを併せると非常に便利だが、表示と実行の2段階になってしまう。
一発で実行するためには履歴の後方検索をしてくれるショートカットCtrl + rを使う。

(reverse-i-search)`':に表示が変わったら、検索したいword(今回はresource.)を入力すると、最新のコマンドを表示してくれる。

(reverse-i-search)`resource.': vi /usr/local/tomcat/webapps/MyApp/WEB-INF/classes/resource.properties

さらにCtrl + rで履歴をさかのぼってくれる。

Ctrl + rを連打して行き過ぎてしまった場合は、Ctrl + sに割り当ててあるスクリーンロックをオフにすることで、前に戻れる。
.bashrcに記述すれば、Ctrl + rとCtrl + sで快適に履歴検索ができる。

# 割当状況を確認
$ stty -a

# スクリーンロックを未定義にする
$ stty stop undef