コマンドライン上で矢印キー(↑↓)を使って、過去に実行したコマンドを一つずつ表示させて再実行する方法を良く使っています。ただ、それだと直近のコマンドを再実行する場合は問題ないですが、いくらか前に実行して矢印キーで戻ることが難しい場合は、historyコマンドが有効だと思います。よく使っているhistoryの実行パターンを厳選してご紹介したいと思います。

スポンサーリンク

historyコマンドで実行履歴を表示

コマンドラインでhistoryと実行することで、過去の実行履歴を表示することができます。

 $ history

下記が実行例になります。

 $ history
    8  ls
    9  hitory
   10  history
   11  cat in.txt 
   12  pwd
   13  ls
   14  history

スポンサーリンク

historyとgrepでコマンド履歴を効率的に表示

ただ、historyで表示される履歴の数が多くなってきた場合は、追うのが大変です。
そこで、historyとgrepをパイプ"|"でつないで組み合わせることで、実行履歴を見つけやすくすると良いと思います。

例えば、catコマンドを実行した履歴を中心に表示させたい場合は、下記のように実行します。

 $ history | grep "cat"

実行すると下記のように、”cat”の文字列を含む履歴を表示させることができます。
 $ history | grep "cat"
   11  cat in.txt 
   15  history | grep "cat"

historyの履歴から選択して再実行する方法

!履歴番号 の形式で、再実行することができます。

例えば、下記のhistory実行結果があったとします。

 $ history | grep "cat"
   11  cat in.txt 
   15  history | grep "cat"

履歴番号11を実行したい場合には、下記のように実行します。
 $ !11
 

下記が実行結果で、履歴番号11が実行されているのが確認できます。
 $ !11
cat in.txt 
20 45 awk
67 32 delimiter
78 56 row

historyの履歴を削除する方法

-cオプションで履歴を削除することができます。

 $ history -c

スポンサーリンク