web-dev-qa-db-ja.com

LinuxターミナルでBashコマンド履歴を選択的にナビゲートする方法

ターミナルでは、使用されたコマンドの履歴をナビゲートするために上下の矢印キーが使用されることを誰もが知っています(または知っておく必要があります!)。

ターミナルを日常的に使用する場合、コマンド履歴は多くの異なるコマンドの長いリストになる可能性が高いため、ナビゲーションが簡単ではなくなります。例として、1か月前に、決定されたパラメーターのセットでiwconfigを使用したとしましょう(私が言ったように、これは単なる例であり、今はそれをいじる必要はありません)、どのように何百もの履歴コマンドに戻ることなく、その特定のコマンドとそのすべての引数およびパラメーターを思い出すことができますか?

historyを使用して以前に使用したコマンドのリストを作成し、!nを使用してそのリストでnコマンドを再実行できることはわかっていますが、履歴が大きくなると大きいので、あまり実用的ではありません。

理想的なのは、ホットキーを使用して履歴をナビゲートできるものを用意することですが、コマンドラインで既に入力した内容を含むインスタンス間だけです。したがって、私の例では、iwconfigと入力した後、いくつかのキー(PgUpとPgDown?)を使用して、iwconfigで始まるエントリ間を移動します。

それが不可能な場合は、history doのようなリストを印刷するのもよいでしょうが、それは私がすでに入力したものだけを含みます(historygrepコマンドが関係していますが、正しい構文がわかりません);ただし、以前のホットキーソリューションが最適なオプションです。

9
Sekhemty

を使用して履歴を検索できます Ctrl+R 次に、検索文字列を入力します(たとえば、iwを検索するにはiwconfig)。次に、上下の矢印キーを使用してその時点の履歴をナビゲートするか、を押します。 Ctrl+R もう一度、前の発生を見つけます。

12
Stefan Seidel

少し練習した後、回避策の使用方法を見つけました。

フィルターされたリストを出力するために正しい構文を一致させました。history | grep iwconfigを使用して実行しました(結局、それほど難しくはありませんでした)。出力を使用すると、!nを、読みやすいフィルター付きリストで使用できます。

5
Sekhemty

ステファンの答えについてコメントすることはできませんが、通常はCtrl + Rを押し続ける必要があります。詳細については、 このページ を参照してください。

3
user2313067

「ctrl + r」を押して、検索文字列を入力します。

あなたが探しているものでない場合は、もう一度「ctrl + r」

見つかった場合は、Enterキーを押して実行するか、右矢印->キーを押して編集してから使用します。

2
Santosh