BASHでreverse-i-searchを循環させる方法は?


444

ターミナルで、CTRL-R以前にBASHで入力した一致するコマンドを検索するために入力できます。たとえば、「CTRL-Rthen grepis grep」と入力すると、最後のコマンドが一覧表示され、Enterキーを押して使用できます。ただし、これは1つの提案にすぎません。以前に入力された他の一致コマンドを循環する方法はありますか?

回答:


598

私が質問を正しく理解するなら、あなたは繰り返し打つことによって選択肢を循環できるべきCtrl+Rです。

例えば:

Ctrl+R grep Ctrl+R Ctrl+R ...

履歴を逆方向に検索します。代わりに前方検索するには、を使用しCtrl+Sますが、XON / XOFF機能を無効にするには、その前にstty -ixon.bash_profile手動または手動で)設定する必要がある場合がありますCtrl+s。(詳細はこちら。)


23
+1-参考までに、このStackOverflowの回答に従って前方に検索することもできます
ヨルダンアルセ

7
追い越した場合は、Ctrl + Shift + rを使用して逆スクロールします。
ウィスウィット

19
@wiswit CTRL+SHIFT+rは私には使えません。
マキシムススロフ

9
:この質問を参照してください@MaximSuslov stackoverflow.com/questions/791765/...あなたが追加することができ[[ $- == *i* ]] && stty -ixon、あなたの.bashrcに、その後CTRL+sの逆として動作しますCTRL+r
gla3dr

9
@JordanArseno私は「前方に検索」して「まだ入力していないコマンドを検索」を意味しました
ジョシュジョンソン

234

コマンドが頻繁に使用されると思われる場合は、タグを追加できます

コマンド#useful

それから

ctrl+r #useful

これ#は、コメントの区切り文字であるため機能します。つまり、シンボルの後に来るものはすべてコマンドとして解釈されません。ただし、履歴に記録されるため、検索可能です。


5
通常、私はこの種のタグ付けが好きです。#trg_bld #open_log
Makesh

1
このタグを追加する場所
スディップバンダリ

5
@SudipBhandariはコマンドの直後です。#コメントを開始します。例:ls -lah #useful
アンドレイ

47

これらの行を〜/ .inputrcに追加することで、上矢印と下矢印を設定してわずかに異なる検索を実行することもできます。

"\e[A": history-search-backward
"\e[B": history-search-forward

コマンド内の任意の部分文字列(Ctrl-などr)を検索する代わりに、カーソルの左側のテキストで始まるコマンドを検索します。たとえば、次のコマンドを実行すると:

$ ls bart
$ ls fools

入力lsしてUp2回押すls bartと、同じ場所にカーソルが表示されます。Ctrl- rと比較するとls、最後の行で2回検索されるため、前の行を検索するにはもう一度押す必要があります。

これらのアプローチには両方とも長所があり、両方とも多くの時間を節約できます。


2
これはOS Xでも標準であるため~/.inputrc、これらの2行を作成して追加する必要はありません。
-DASKAjA

1
falconepiはのコメントに書かれているとおり、この答えは Ubuntuの上で、あなただけにコメントを解除する必要が~/.inputrc履歴に検索語*を含む二行
アルパドHorvathの

また、この答えの詳細については、この記事を見て可能性:codeinthehole.com/writing/...
アンドレイ

これは、macOS(10.13)では標準ではありませんでした。私はいつもこの機能を見逃していました!
18年

このことについて良いことは、あなたはまだ歴史を定期的にスキミング用にCTRL-P / CTRL-Nを使用することができるということです
eligが

0

hstrCtrl + Rと呼ばれる組み込みの代替があります。すべての検索トークンに一致するコマンド履歴を(特に)検索し、矢印キーを使用して結果を循環できます。

例

これがデモのスクリーンキャストです。

次のようなDebianファミリOSにインストールできます。

add-apt-repository ppa:ultradvorka/ppa
apt-get update
apt-get install hstr

hstr --show-configuration >> ~/.bashrc

そして、使用しますCtrl + R(ターミナルを再度開いた後)。

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