使用しました
history | less
前のコマンドの行を取得し、左側の数字から、繰り返したい行(22など)を見つけて実行しました
!22
コマンドプロンプトで、それは機能しました—その時に行った行で一連のコマンドを実行しました。感嘆符がどこで使用されているのか、bashによって実行されるアクションの観点から何を表しているのか、どこで使用するのかがわかりません。ドキュメントから、「具体的な」説明は見当たりません。
承認された回答:
!コード> 履歴拡張を呼び出します。これは、元々Cシェルに表示されていた機能であり、端末に矢印キーがあると期待できるようになる前の時代にさかのぼります。現在のコマンド番号をプロンプトに追加すると特に便利です(
PS1 ="!$"
)画面をすばやく確認して、過去のコマンドの番号を取得できます。
これで、矢印キーや Ctrl-Rなどを使用できるようになりました。 コマンド履歴を検索するために、この機能はあまり使用されていません。
それでも役立つと思われるバリエーションの1つは、 !!
です。 、前のコマンドを再実行します。それだけでは、は見つかりません! ! 入力 ↑よりも高速 入力 、ただし、より大きなコマンドに組み合わせると役立つ場合があります。
例: sudo
でよくあるパイロットエラー ベースのシステムはsudo
を忘れることです 追加の特権を必要とするコマンドのプレフィックス。初心者はコマンド全体を再入力します。勤勉な学生は、シェルのコマンド履歴からコマンドを編集します。悟りを開いた人はsudo!!
と入力します 。
!
を処理しています このように、インタラクティブシェルではデフォルトでBashで有効になり、 set + o histexpand
で無効にできます。 またはset+ H
。 set -K
を使用して、Zshで無効にすることができます 。