2016年06月03日

コマンドの履歴を検索する

コマンドラインで開発をしていると、過去に使ったコマンドをもう一回使いたい!なんてことが多々発生します。
ctrl + PやNで一つずつ遡ってもいいのですが、かなり効率が悪いです。
(正直数ヶ月前までは遡ってました 照)

今回は過去に実行したコマンドを検索して実行する方法をメモしておきます。

ctrl + r で過去の履歴

ctrl + rを押すとコマンドを検索する状態になりますので、過去に実行したコマンドの文字を入力します。

# mysql.server startコマンドを実行したい

# ctrl + rでこんな文字が出てくる
bck-i-search: _

# 実行したいコマンドで覚えているのは `mysql`  の部分なので `my` と入力
bck-i-search: my_

# するとコマンドが検索されて自動で入力される
mysql.server start

なお、最初に検索されたコマンドが欲しいコマンドでなければ、ctrl + rを押すたびに過去のコマンドを検索してくれます。

さらにctrl + s で前方検索ができます。
ctrl + r を連打しすぎた時に便利です。

僕は基本的に

  1. ctrl + r
  2. 使いたいコマンドを検索
  3. 最初に検索されたコマンドが違ければ、さらにctrl + rで検索
  4. 行き過ぎたらctrl + sで前に戻る

こんな感じで使っています。