黒い画面が苦手な人にこそ教えたい「Control + R」の便利な使い方

Macのターミナルなどで過去のコマンド履歴を検索できる「Control + R」。便利すぎて最もよく使うショートカットの一つなので、知らない方にはぜひ教えてあげたい!

はじめに

ターミナルが得意ではないけど、仕事上使わなければならないという方もいらっしゃると思います。私もそうです。

そんな筆者でもタイトルにある、「Control + R」(過去に打ったコマンド履歴の検索)を覚えたことで、ターミナルの操作がずいぶん楽になりました。

今回の記事では、主にウェブのフロントエンド開発を中心に行う筆者の観点で、便利な使い方をご紹介します。

 基本的な使い方

まずは基本的な使い方の説明です。

ターミナルを起動します。コードエディターにVS Codeを使っている方は、メニューの「ターミナル」から「新しいターミナル」を選択して、画面下部に出てきます。

入力待機状態になると、お使いの環境によって異なりますが、

ユーザー名@コンピュータ フォルダ $

もしくは

ユーザー名@コンピュータ フォルダ %

などと表示されているはずです。

この状態で、ControlキーとRキーを同時に押すと、コマンド履歴の検索モードになります。

(reverse-i-search)`':

もしくは

bck-i-search: _

という表示に切り替わるはずです。

この状態で何か文字や数字を打つことで、過去に入力したことがあるコマンドを検索できます。

たとえば履歴の検索モードの状態で「c」と入力すれば

% cd test-dir

のように、過去に実行したコマンドのうち、cを含むものが表示され、エンターを押すだけで再実行されます。

一度の検索で欲しい履歴が表示されなければ、もう一度「Control + R」で次々と履歴を遡ることができます。

では、次から具体的に便利な使い方をご紹介します。

便利な使い方

Node.jsのバージョンを切り替える

プロジェクトによって、必要なNode.jsのバージョンが異なるというのはよくあります。

筆者はローカルのMacにNode.jsを直接インストールし、nodebrewでバージョンを切り分けていますが、プロジェクト毎のバージョン番号を覚えるのはちょっと難しいです。

そんな時に、「Control + R」を使います。コマンド履歴検索で「brew」と打って検索することで

% nodebrew use v15.8.0

といったように過去に使ったバージョンが表示されます。メジャーバージョンくらいだったら大体覚えているため、Node.jsのバージョン切り替えは普段これで事足りています。

過去に接続したサーバーにsshでログインする

ファイルのアップロードなどで別サーバーにssh接続する時、接続先のIPアドレスや秘密鍵の置き場所を覚えておくのは大変ですよね。

ここでも「Control + R」が活躍します。

普段接続するサーバーが少ないなら、「Control + R」で「ssh」の履歴を検索すれば

% ssh -i (秘密鍵の場所) (ユーザー)@(IPアドレス)

とすぐに表示されるので、過去接続したサーバーへの接続も簡単です。

また、接続するサーバーが常時複数ある場合は、IPアドレスの第4オクテット(末尾3桁)だけ覚えておいて、それを検索すればOKです。

頻繁に接続するサーバーは .ssh/config で管理するのも手ですが、こういった手法が使えない場合に便利です。

終わりに

以上です。

簡単なコマンドですが、筆者はこれを知る前と後ではターミナル操作の生産性が格段に向上したと感じます。

もしまだ知らない・使っていない方がいらっしゃったら、ぜひ使ってみてください。

最後までお読みいただきありがとうございました。