Linuxターミナルをマスター:Ctrl+Rでコマンド履歴を素早く検索・再利用する方法
モダンなbashシェルを使用しているなら、キーボードショートカット「Ctrl+R」を活用してコマンド履歴を検索できます。以前実行したコマンドを呼び出し、そのまま再実行できるため、コマンドラインでの作業効率が大幅に向上します。この機能は、emacsモードでkshを使用している場合など、他のシェルでも同様に動作します。
この操作にはターミナルが必要です。「Ctrl+Alt+T」を同時に押すか、デスクトップ環境によっては「Super+T」で起動できます。また、アプリケーションメニューから「システムツール」→「ターミナル」を選択するか、Ubuntu Dashで検索して開くことも可能です。
方法1:Ctrl+Rでコマンドを検索する
bashプロンプトで、Ctrlキーを押しながらRを押してください。すると「(reverse-i-search)`':」というメッセージとカーソルが表示されます。ここで、以前実行したコマンドの最初の文字を入力すると、該当するコマンドが見つかります。例えば、catコマンドでテキストファイルの内容を確認したことがあれば「c」を入力してみましょう。calコマンドでカレンダーを表示した経験があれば、それも一緒にヒットする可能性があります。
Ctrl+Rを再度押すと、名前の似たコマンドを順番に切り替えられます。bash履歴が長い場合、類似したコマンドが複数見つかることもありますが、目的のコマンドが表示されたらEnterキーを押すだけで、まるでその場で入力したかのように実行されます。フルのコマンドを打つ必要はなく、1〜2文字の入力で済むのが魅力です。
数文字入力するだけで、過去に実行した長いコマンドも即座にコマンドラインへ呼び出せます。さらに、コマンドが表示された段階で矢印キーを使って内容を編集してから実行することも可能です。履歴から目的のコマンドを探す作業が格段に楽になるでしょう。
もし実行を取りやめたくなったら、Ctrl+Cを押して検索をキャンセルできます。これはターミナルで他の操作を中断するのと同じ要領です。なお、このテクニックはどのようなコマンドを実行した後でも使えますし、ターミナル上に既に表示されている出力の種類を気にする必要もありません。
方法2:Ctrl+R検索用のタグを追加する
頻繁に使うコマンドを何度も呼び出したい場合は、コマンド行の末尾にコメント形式でタグを付けておく方法が便利です。コマンドを入力し、スペースを空けてから#findmeのように入力してEnterキーを押します。シェルは「#findme」をプログラミング言語のコメントとして扱うため、単純に無視してコマンドを実行します。
以降は、そのコマンドが必要になったときにCtrl+Rを押して「#fin」と入力すれば、すぐに候補として表示されます。複数のコマンドにタグを付けたい場合は、それぞれ異なるタグ名を付けるだけです。例えば「#command1」「#command2」のようにタグ付けしておけば、「#com」と入力してCtrl+Rを数回押すことで目的のコマンドを絞り込めます。この方法は、コマンド履歴が膨大にある場合に特に効果的で、各タグは履歴がクリアされるまで残り続けます。
方法3:kshでemacsモードを有効にする
kshをデフォルトシェルとして使用している場合は、set -o emacsと入力してEnterキーを押してください。これでemacsモードが有効になり、bashと同じようにCtrl+Rのテクニックが使えるようになります。動作はわずかに異なりますが、bashユーザーはこの設定が不要なため、ほとんどのLinuxユーザーはこのステップを読み飛ばして問題ありません。
kshユーザーは、設定後にCtrl+Rを押すと画面に「^R」が表示されます。検索語を入力してEnterキーを押すと、最も近い履歴エントリが表示され、そのまま編集するか、もう一度Enterキーを押して実行できます。ちなみに、emacsモードを有効にすると、通常の矢印キー操作など、いくつかの便利なオプションも併せて使えるようになります。
著者について

Kevin Arrows(ケビン・アローズ)
Kevin Arrowsは、10年以上の業界経験を持つテクノロジースペシャリストです。Microsoft Certified Technology Specialist(MCTS)認定資格を保有し、最新の技術動向を追いかけることに深い情熱を注いでいます。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど、幅広い技術分野に関する記事を多数執筆しており、複雑な技術的概念を明確かつ簡潔に説明する能力で、業界内外から高い評価を得ています。
-
LinuxでMACアドレスを確認する方法|コマンドラインクイックガイド
パソコンに接続されているネットワークインターフェースのMACアドレスを調べたいとき、Linuxならとても簡単に確認できます。すべてのコンピューターのネットワークインターフェースには、固有のMAC(Media Access Control)アドレスが割り当てられており、それがどのデバイスに属するものかを識別する役割を果たします。MACアドレスは世界に一つしか存在せず、まったく同じものはありません。そのため、複数のネットワークインターフェースを搭載したマシンでは、確認すべきアドレスも複数になるわけです。 MACアドレスを調べるにはコマンドラインインターフェースを使いますが、root権限でログインす
-
SSH接続エラー「一致する鍵交換メソッドが見つかりません」を解決する2つの方法
リモートサーバーにSSHで接続しようとした際、「no matching key exchange method found(一致する鍵交換メソッドが見つかりません)」というエラーメッセージが表示され、使用すべき暗号化アルゴリズムの候補を提示されることがあります。このエラーが発生すると、リモートサーバーに接続できなくなります。一見厄介な問題に思えますが、実は非常によくあるトラブルで、Unix系ユーザーの間でも頻繁に話題に上り、同じ対処法が繰り返し共有されています。以下で紹介する修正方法は、SSHが動作するあらゆる環境で検証済みですが、特にUnixやLinuxシステムでこの問題に遭遇しやすい傾向が