BASHのループでリバース検索を実行するには?

BASHのループでリバース検索を実行するには?

端末でCtrl+を入力すると、R以前にBASHに入力した一致コマンドを検索できます。たとえば、Ctrl「+ Rthen」と入力すると、grep最後のgrepコマンドが表示され、Enterキーを押して使用できます。しかし、これは単なる提案です。以前に入力した他の一致コマンドを繰り返す方法はありますか?

答え1

Ctrl私が質問を正しく理解したら、+を繰り返しクリックしてオプションを循環させることができますR

たとえば、

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

これにより、履歴が逆に検索されます。今後検索するにはCtrl+を使用してください。ただし、+に代わるXON / XOFF機能を無効にするにSは、これを実行する前に(または手動stty -ixonで)次の設定を行う必要があります。この場合、+を使用して画面出力を再度有効にしてください(詳しくは.bash_profileCtrlSCtrlQここ.)

答え2

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

command #useful

それから

Ctrl+R #useful

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

答え3

~/.inputrcに次の行を追加して上下の矢印を設定して、少し異なる検索を実行することもできます。

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

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

$ ls bart
$ ls fools

その後、ls2回押すとカーソルと同じ位置にUp表示されます。ls bart比較Ctrl- 最後の行を2回r見つけるので、ls前の行を見つけるにはもう一度押す必要があります。

これらの方法にはそれぞれ独自の利点があり、多くの時間を節約できます。

答え4

次の組み込み代替項目がありますCtrl + Rハースト。すべての検索タグに一致するコマンド履歴を同時に検索し、矢印キーを使用して結果を循環させることができます。

はい

これはデモのスクリーンショット

次の Debian シリーズオペレーティングシステムにインストールできます。

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

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

Ctrl + R次に(ターミナルを再開した後)を使用してください。

関連情報