パターンに一致するコマンドのみを繰り返すには、リバース検索を使用してください。

パターンに一致するコマンドのみを繰り返すには、リバース検索を使用してください。

使用されるコマンド履歴ファイルの内容はhistory | less次のとおりです。

555 ls
556 ls -a
557 echo "hello"
558 echo "hello again"
559 cd
560 pwd
561 echo "hello hello"
562 ls
563 echo "hello hello hello"
564 cd
565 pwd

リバース検索を使用してコマンドラインプロンプトに入力されたパターン(たとえば、この場合は「echo」)と一致するコマンド履歴ファイルのコマンドのみを循環したいと思います(reverse-i-search)`echo':。可能であれば、コマンド履歴ファイルで指定された行番号まで、コマンド履歴ファイル内のすべてのコマンドのecho代わりに再実行したい以前に使用したコマンドのみを選択します。echo

リバース検索を使用して、コマンドの最新の使用を検索しますecho(したがって、リバース検索コマンドという名前が付けられました)。ただし、逆順に前方にスクロールすると(逆方向検索など)、bashは逆方向検索から返された行から始まり、コマンド履歴ファイルの各行をスクロールするため、検索したくないコマンドが含まれます。

  1. (reverse-i-search)`echo':履歴リストのスクロールを開始すると、リバース検索プロンプトが消えます。スクロール中に逆方向検索プロンプトが消えるのを防ぎ、逆方向にスクロールするときにパターンと一致するコマンドのみを表示するにはどうすればよいですか?
  2. 1が可能な場合にコマンド履歴ファイルの一部でのみコマンドが選択されるように、リバース検索をコマンド履歴ファイルの特定の行番号に一時的に制限するにはどうすればよいですか。

注:この問題に対する解決策は、同じコマンドラインパラメータの複数のインスタンスがあり、リバース検索で目的のパラメータが見つからない場合にも役立ちます。

ベストアンサー1

検索語を入力したら、次を使用してください。

  • Ctrlr「up」から前のコマンドを検索し、
  • Ctrls方向を切り替えて、次のルートを見つけるために「下」を検索してください。

検索する履歴アイテムの数を制限する方法がわかりません。

おすすめ記事