BashでWindowsスタイルのコマンド履歴ナビゲーションなどの機能をどのように有効にしますか?

BashでWindowsスタイルのコマンド履歴ナビゲーションなどの機能をどのように有効にしますか?

個人的には、各コマンドが履歴内のその場所を維持し、最後に実行されたコマンドに戻るときに必ずしも履歴の最後のコマンドではない可能性があるWindowsのコマンド履歴の閲覧(申し訳ありません!)を好みます。

これが言葉になるかどうかはわかりませんので、例として説明します。

吹く

one4つのコマンド(、、、、、)を実行するとします。以降、コマンド履歴(最も古いものから最新まで)は次のようになります。twothreefour

  • one
  • two
  • three
  • four

上キーを3回押すと、期待どおりに、fourに戻ります。 Enterを押すとコマンドが実行されます。今の記録は次のとおりです。threetwotwo

  • one
  • two
  • three
  • four
  • two

押すとそれを見ることができますtwo。もう一度押すとfourなどが見えます。

Windows

同じ4つのコマンド(、、、、、one)を実行するとします。以降、コマンド履歴(最も古いものから最新まで)は次のようになります。twothreefour

  • one
  • two
  • three
  • four

上キーを3回押すと、前と同様に、にfour戻ります。 Enterを押すとコマンドが実行されます。もう一度押すとまだ表示されます。しかし、歴史は依然としてそうです。threetwotwotwo

  • one
  • two
  • three
  • four

これは私が歴史の前の瞬間に「ジャンプバック」したことを意味します。これで、ビューやoneビューなどthree押すことができます。

これがなぜ役に立つのですか?

これは、一連のコマンドを実行してから再実行したい場合に特に便利です。それは含まれていますかなりより少ないキーストロークでシリーズ全体を再実行します。

Bashを同じように動作させる方法はありますか?

答え1

これはあなたの質問に直接答えることはありませんが、最終的に実際の答えがなければ役に立ちます。

一連のコマンドを実行した場合:

$ one
$ two
$ three
$ four

$ history
1  one
2  two
3  thee
4  four

シーケンスを再実行するには、次のようにします。

!1; !2; !3; !4

または、前のコマンドが成功した場合にのみ後続のコマンドを実行したい場合:

!1 && !2 && !3 && !4

これにより、履歴に次の項目が表示されます。

$ history
1  one
2  two
3  three
4  four
5  one; two; three; four
6  one && two && three && four

その後、シーケンスを再実行するには、矢印を使用するか、次のように使用できます。!5

関連情報