逆検索を使用するときにbash履歴の最後に戻りますか?


12

私はかなり長いbash履歴を保持しており、bashの逆検索機能(Ctrl+ r)で何かを検索すると、検索履歴の最初に到達し、必要なものがまだ見つからないため、最後に戻りたいと思います。履歴ファイルの。1つのオプションは、履歴の終わりに近づくか、または実行する前方検索機能(Ctrl+ s)を使用することです#が、bash履歴の終わりに直接移動するキーボードショートカットもありますか?


2
history..あなたに行われたすべてのbashのコマンドが表示されます
ryekayo

回答:


6

readline関数がありend-of-history、デフォルトでM- >にマップされますが、逆検索中に使用すると、逆検索プロンプトが終了します。

可能な回避策/トリック

文字列検索を開始

代わりに、逆検索を使用するには、を使用history-search-backwardしてhistory-search-forward(デフォルトではマップされていません)、それらをup/down(非常に便利な)にマッピングします.inputrc

# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward

したがって、入力した後、upCtrl+の代わりにR)を押して逆方向検索を行うことができます。履歴の最後に戻りたい場合は、end-of-historyM- >)を押して関数を使用できます。

このように、「検索文字列は履歴行の先頭で一致する必要がある」ので、を検索するls -ltr場合は、入力lsしてからupキーを押す必要があり  ます。

部分文字列検索

検索文字列が履歴行のどこにでも一致する可能性がある」が必要な場合は、次を使用する必要がhistory-substring-search-forward ありhistory-substring-search-backwardます。

# up-down arrow to search in history
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward

このようにして、を検索するls -ltr場合は、を押す前にと入力することlsもできltrますup

参照:Bashリファレンスマニュアル–履歴のコマンド

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.