historyからのコマンド実行

Linux

こんにちは、せぃゆーです。

コンソールで作業していて過去に実行したコマンドを再度実行したいなんてときないでしょうか?
キーボードから↑で過去のコマンドを実行はできますが、シャットダウンしてしまった、昔過ぎてどこまで戻ればいいの?
などのときに役立ちます。(せぃゆー自身もこの間まで知りませんでした)

今まで無知なせぃゆーはhistory | grep “”で検索して、マウスでコピー&ペーストして実行をしていました。
ここでは例としてalpineLinuxを起動するdockerコマンドにします。(このコンテナ自体はすぐ停止するので何もしません)

# docker run \
>   -e ENV=local \
>   -e HOGE=hoge \
>   -e PIYO=piyo \
>   -d \
>   alpine:3.13.0
63097f2b353cbe138c285fcb9cb9e20179d84502418306657826ba41e36bd037

これを毎回コピペやコマンドをたたくのは大変です。
過去のコマンドをhistoryで表示します(ここでは表示したいものだけをgrepで検索しています)

# history | grep alpine
#   551  docker run   -e ENV=local   -e HOGE=hoge   -e PIYO=piyo   -d   alpine:3.13.0
#   552  history | grep alpine

ここで一番左に表示されている番号を使って再度コマンドを実行することができます。
!(エクスクラメーション・マーク/ ビックリマーク)を先頭につけ番号を入力することで実行できます

# !551
docker run   -e ENV=local   -e HOGE=hoge   -e PIYO=piyo   -d   alpine:3.13.0
1f98b28ae06c438ae7df8901ba7b30f22febca4db3321c8dff457a122d49175b

コマンド実行の次の行に実行するコマンド、それ以降に実行結果が出力されます。

コメント