非連続キーワードを使用した検索履歴コマンド

非連続キーワードを使用した検索履歴コマンド

コマンドの最初の数文字を知らず、どのように過去のコマンドを検索できるか疑問に思います。

Ctrl+ inを使用してR検索する場合は、bashコマンドの最初の数文字を入力する必要があります。途中の一部の文字のみを認識する場合、または最初の部分と中間の一部の文字のみを認識する場合はどうすればよいですか?

cat myfileたとえば、検索をしてみると、最初と途中で、あるいはどこかにあるということだけが分かるだけだ。キーワードは連続して配置する必要があります。たとえば、でandを検索したいが、+では両方を指定することはできません。atcmycat myfilecmyCtrlR

答え1

(記憶を蘇らせるために)その行を探したい場合は、覚えているコマンド部分をgrepします。

history | grep "substring"

答え2

私が知っている限り、Bashには単純な文字列検索しかありません。

移行を検討してください扱いにくい、過去のワイルドカード検索があります。history-incremental-pattern-search-backwardそしてhistory-incremental-pattern-search-forwardデフォルトではキーにバインドされていませんが、バインドできます。

bindkey '^X^R' history-incremental-pattern-search-backward
bindkey '^X^S' history-incremental-pattern-search-forward

次に、を入力しますCtrl+X Ctrl+R ^c*my

答え3

Apropos(1) は、man に単語が含まれている場合は、トピックの man も返す必要があります。 Whatis(1) は絶対一致のみを返します。

注:約== man -k Whatis == man -f

ワイルドカード*と?と一緒にこれら2つを使用すると、多くの役に立ちます。

関連情報