コマンド履歴でbashコマンドの内部を検索して置き換える方法はありますか?

コマンド履歴でbashコマンドの内部を検索して置き換える方法はありますか?

たとえば、私のコマンドライン履歴には次のものが含まれます。

systemctl status puppet.service

もう一度実行して、status次のように変更したいと思いますstart

systemctl start puppet.service

%s/tus/art/gホットキーなどを使用する方法はありますか?

答え1

次のショートカットを使用して最後のコマンドを再入力できます。

!!

その後、以下を使用して内部交換を実行できます。

:s/from/to

それらを組み合わせると、次のようになります。

!!:s/from/to/

以前の数値コマンドを参照でき、置換!-nも発生します。

!-1:s/from/to/

文字列引用コマンドを使用したい場合、別の便利なショートカットは次のとおりです。

!?cmd?:s/from/to

あなたの場合は次のとおりです。

!?systemctl?:s/tus/art/g

関連情報