問題を解決したコマンドを覚えていますか?cat、less 、 more 、 wc、それとも何か他のコマンドでしたか? ターミナルでは、問題を解決するために何十ものコマンドを実行できますが、Linux OSはバックグラウンドでこれらのコマンドを履歴ファイルに記録しています。
このハウツーでは、コマンド履歴を検索して再利用する様々な方法を紹介します。これらのコマンドに慣れるまでは、問題を引き起こす可能性のあるコマンドを誤って再実行しないように、念入りに確認することが重要です。これらの新しいテクニックをじっくりと使い、Enterキーを押す前に詳細を再確認してください。
このハウツーで紹介するコマンドはすべて、ほとんどのLinuxマシンで動作します。Ubuntuを使用していますが、Raspberry Piでも実行できます。ハウツーはすべてターミナル経由で行います。ほとんどのLinuxマシンでは、Ctrl、Alt、Tキーを押すか、アプリケーションメニューからターミナルアプリを検索することで、ターミナルウィンドウを開くことができます。
最近実行したコマンドを確認する最も簡単な方法は、キーボードの上下矢印キーを使って以前のコマンドをスクロールすることです。見つかったコマンドを再度実行したい場合は、Enterキーを押すだけです。
Linuxでコマンド履歴を表示する
historyコマンドの最も基本的な使用法は、ターミナルエミュレータで実行された最後の1000個のコマンドを一覧表示し、注釈を付けることです。各コマンドには番号が関連付けられています。
1. historyコマンドを実行して、過去1000件のコマンドのリストを表示します。リストされているすべての履歴コマンドには、固有の参照番号が付与されていることがわかります。
history
2. historyコマンドを再実行しますが、結果の表示件数を特定の数に制限します。これは、探しているコマンドがいつ実行されたかおおよそ分かっている場合に便利です。表示されるのは最新の20件だけです。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
history 20
以前のコマンドを再発行する
これで、履歴を使用して以前のコマンドを表示できるようになり、履歴結果に割り当てられた番号を使用してコマンドを選択して再発行できます。
1. history 20 を実行してコマンドリストを作成し、再発行するコマンドを選択します。選択したコマンドが安全に実行できることを確認してください。cd Music (1660)のような単純なコマンドを選択するのは良い例です。感嘆符とコマンド番号の間にスペースを入れないことに注意してください。
history 20
!1660
Grep を使用した Linux 履歴検索の強化
historyの出力をgrepにパイプすることで、コマンド履歴を検索し、指定した用語または文字列の結果を返すことができます。これは、部分的にしか覚えていないコマンドを見つけるのに最適な方法です。
1.履歴とgrepを使って特定の用語を検索します。シルエットビニールカッターの問題を解決するためにコマンドを実行したことを思い出したので、例として「シルエット」という検索語を使用しました。この検索語を、お使いのマシンに適したものに置き換えてください。
history | grep silhouette
Linuxコマンド履歴の逆検索の使用
以前に実行したLinuxコマンドを検索するもう一つの便利な方法は、ターミナルに組み込まれている逆検索機能を使うことです。このモードに入るには、CtrlキーとRキーを押すだけです。検索語を入力し、CtrlキーとRキーを繰り返し押すことで、その語を含む以前のコマンドのリストを遡ることができます。再実行したいコマンドが見つかったら、Enterキーを押します。
1. Ctrl キーとR キーを押すと逆検索モードに入り、プロンプトに「(逆 I 検索)」と表示されます。
2.検索語を入力すると、その語を含む最後のコマンドが表示されます。例えば、sudo権限で実行された過去のコマンドを表示するために、「sudo」という検索語を追加しました。
3. Ctrl キーとR キーを繰り返し押して、他の結果に進みます。
4. Enter キーを押して前のコマンドを実行するか、Esc キーを押して逆検索を終了します。
以前の Linux コマンドを素早く再発行する
最後に実行したコマンドを単純に再実行したい場合がよくあります。これは!!コマンドを使うだけで実現できます。
1. lsコマンドを実行して、これをテスト例として設定します。
ls
2. !!を使用して最後のコマンドを再発行します。前のコマンドがリストされ、実行されることに注意してください。
!!
ホームディレクトリ外のファイルの編集など、昇格した権限を必要とするコマンドを再利用したい場合があります。このような場合は、前のコマンドの前に sudo を付けます。次の例では、最初のlsコマンドにsudoを付けて再実行しています。
sudo !!
Linux の履歴からコマンドを隠す
コマンドを履歴から削除する必要がある場合があります。そのような状況が発生した場合は、コマンドの前にスペースバーを 1 回押すだけで済みます。
たとえば、ここに 2 つの ls コマンドがあります。2 番目のコマンドにはスペースが 1 つ含まれており、履歴ファイルから非表示になっています。
ls
ls
少し練習すれば、上記の方法はすべて直感的に使えるようになり、ターミナルセッションをより強力かつ効率的に活用できるようになります。コマンドを見つけて再発行する機能は、特にあまり使用しないコマンドや、最初に作成するのが難しかったコマンドを復元する際に非常に便利です。
- Linuxでディスク使用量を確認する方法
- Linuxでプロセスを強制終了する方法
- Linuxでファイルを検索する方法