直前のコマンドは!!で再実行できる。でも所詮置換しているだけなので、オプション追加とかもできる。例えば、ls -lで流れてしまった部分を逆順にしてみるとか。
$ ls -l $ !! -r
この技は!から始めることで履歴置換モードになることによっている。!!は!-1と同じ。2つ前のものは!-2でOK。詳しくはman参照。また、!のあとに文字列を続けることでコマンドライン履歴のなかから最も近いコマンドを再実行できる。
$ pwd $ echo hoge $ !p
このようにした場合、2つ前に実行したpwdが!pとすることで実行される。さらに!?のあとに文字列を続けると、其の文字列を含むコマンドライン履歴を実行できる。
$ ls -l $ echo ls $ !?ls
とすると、echo lsが実行される。コマンドも引数もオプションも区別されない。