はじめに
前回は、history コマンドと grep を組み合わせて過去の履歴を探し出し、!番号 で再実行するという、「どのLinux環境でも確実に使える、一番ステーブル(安定)な方法」を紹介しました。
前回記事:【history】Linuxコマンドの実行履歴を確認・削除・再実行する使い方【Linuxコマンド入門 Part4-6】
しかし、ターミナル作業に慣れてくると、「いちいち history | grep と打ち込むのすら少し面倒だな」と感じる瞬間がやってきます。
実はLinuxのターミナルには、コマンドを打ち込まずに、ショートカットキー一発で過去の履歴を呼び出せる強力な標準機能が隠されています。 今回は、環境構築なしで今すぐ使える小技、「Ctrl + r」による逆引き検索を紹介します。

1. 「Ctrl + r」でインクリメンタル検索(逆引き検索)
ターミナルで作業中、何もコマンドを打っていない状態でキーボードの Ctrl と r を同時に押してみてください。
すると、プロンプト(入力待ちの行)が以下のように変わります。
(reverse-i-search)`': これが「履歴の逆引き検索(リバースサーチ)モード」です。 ここに文字を打ち始めると、一文字打つごとに(インクリメンタルに)、過去の履歴の中からその文字を含む最新のコマンドが即座に呼び出されて表示されます。
基本的な使い方
Ctrl + rを押す。- 探したいコマンドの一部(例:
sysやsshなど)を打ち込む。 - 目的のコマンドが表示されたら、そのまま
Enterを押せば即実行されます!
ポイント:実行する前に編集したい時は? 「目当てのコマンドが出たけど、一部だけ書き換えて実行したい」という場合は、Enterを押さずに 右矢印キー(
→) を押してください。 すると通常の入力モードに戻り、コマンドを編集できるようになります。1. リバースサーチ(control + r )で ls 検索
2. 矢印キー(→)で入力モードにできる
2. もっと過去へ遡る・キャンセルする
検索モードでの「移動」と「取り消し」の方法です。
目当てのコマンドじゃない場合(さらに過去へ)
「systemctl と打ったら restart nginx が出たけど、探しているのは status nginx の方なんだよな…」という場合は、もう一度 Ctrl + r を押してください。 押すたびに、同じキーワードを含む「さらに一つ古い履歴」へと次々に遡っていくことができます。
検索をやめたい場合(キャンセル)
「やっぱり探すのをやめた」という時は、Ctrl + g(または Ctrl + c)を押せば、何も実行されずにいつもの入力画面に戻ります。
3. 【おまけ】Ctrl+r をさらに進化させる魔法のツール「fzf」
Ctrl + r は標準機能でとても便利なのですが、「通り過ぎてしまうと前に戻れない」「1行しか見えない」という弱点もあります。
そこで最後に、少しだけターミナル検索の便利ツールをご紹介します。 エンジニア界隈で大人気の fzf(ファジーファインダー) というツールをインストールすると、いつもの Ctrl + r の機能をアップグレードできます。
【fzf 導入後のイメージ】
105 sudo systemctl restart nginx
102 nano /etc/nginx/nginx.conf
> 101 cd /var/www/html
45 cat /var/log/nginx/error.log
> nginx_- 画面に履歴がリスト(一覧)で表示される!
- 矢印キー(↑↓)で直感的に選べる!
- 複数のキーワード(例:
nginx log)で曖昧検索ができる!
この fzf は別途インストールや設定が必要になるため、本シリーズとは別の独立した記事で紹介します。(記事は現在利用できません: ID 5502)
指定された記事(ID: 5502)は現在公開されていません。
まとめ
history | grep: 確実に一覧を見ながら探せる、一番堅実な方法。Ctrl + r: 外部ツール不要!手元から離れずに一瞬で履歴を呼び出せる標準ショートカット。fzf: 別途インストールすることで、検索をグラフィカルに進化させる最強ツール。
これらを状況に合わせて使い分けるのが、Linux中級者への第一歩です。
さて、過去の長いコマンドを見つけて呼び出せるようになったのは良いですが、「再実行する前に、長文のパスなどをガッツリ修正したい」という時、ターミナル上で矢印キーをポチポチ動かすのは大変ですよね。
次回は、使い慣れたテキストエディタで直前のコマンドをサクッと修正して再実行できる fc コマンドを紹介します。
第四回”Linuxコマンド入門 Part4 ~自分好みの環境を整える~”では、linuxでの作業を効率化し自分好みの環境を作り上げる方法を紹介しています
Linuxコマンド入門 Part4 ~ターミナル操作の効率化とシェル環境のカスタマイズ~
Linuxで、コマンドライン操作を効率化したり、自分好みにカスタマイズする方法を学ぼう。
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero

