history のコマンド履歴を再利用する方法

最終更新:2021-12-19 by Joe

Linux 系のシェルコマンド「history」で、過去のコマンドを再利用する方法です。

通常は「↑」「↓」でコマンドを再利用しますが、履歴行番号を指定したり hisotory を有効活用できます。

history 履歴の番号を指定し、コマンドを再利用する方法

history コマンドでで番号を指定するには「!」と番号を組み合わせます。

history 履歴の確認

まずはhistory で 履歴と番号の確認します。

# まずは番号をチェック

$ history 
 1066  git reset --hard 3dkdddc
 1067  git commit .
 1068  sh bulk-copy-paste.sh
 1069  ls -la
 1070  git diff

番号を指定して、コマンド再利用

番号がわかれば、あとは「!」と番号を組み合わせて、番号を指定すれば、再利用できます。

# 番号を指定して実行

$ !1069

!だけなので、簡単じゃな。でも、なぜか必要なときにど忘れしてしまうのじゃ・・。

Mac(zsh)で全件表示する方法
MacOS (zsh) では、bash と異なり、デフォルトでは末尾の15件しか表示されませんが、[行の開始番号] を指定することで履歴を全部表示することができます。

# zsh すべての履歴を全部表示する
$ history 1

# 開始番号と終了番号を指定
$ history 1 20

# 最新の番号から、表示件数を指定 
$ history -100

bash と微妙に違うんだね

直前のコマンドの再利用

通常は「↑」「↓」でコマンドを再利用しますが、「!!」を使って、直前のコマンドを再利用できます。

# 直前のコマンドを再利用[comment character="turtle" text="簡単じゃな。でも、なぜか必要なときにど忘れしてしまうのじゃ・・。"]

$ !!

N回のコマンドを再利用する

# 2回前のコマンドを再利用

$ !-2

こんな方法もあるんだね!