【Linux】コマンド履歴を表示する方法!historyコマンドの使い方!

この記事ではLinuxの『historyコマンド』について、以下の内容をわかりやすく解説します。

  • Linuxのhistoryコマンドとは
  • historyコマンドの使い方

Linuxのhistoryコマンドとは

Linuxのhistoryコマンドは、Linuxのシェルで過去に実行したコマンドの履歴を表示するためのコマンドです。シェルは実行したコマンドを一時的にメモリに保存し、セッション終了後もファイル(通常は~/.bash_history)に記録します。これにより、過去に実行したコマンドを簡単に確認したり、再実行することが可能です。

以下にLinuxのhistoryコマンドの構文を示します。

Linuxのhistoryコマンドの構文

history [オプション] [履歴番号]

historyコマンドは様々なオプションと組み合わせて使用することができます(後ほど、historyコマンドのオプションとその使い方について詳しく説明します)。

historyコマンドの使い方

コマンド履歴を表示する

historyコマンドを実行すると、過去に実行したコマンドの履歴が一覧で表示されます。履歴はそれぞれ番号付きで表示され、特定の番号を指定してそのコマンドを再実行することも可能です。

history

実行結果例

$ history
   1  ls
   2  cd /home/user/projects
   3  git status
   4  vim file.txt
   5  git add .
   6  git commit -m "Initial commit"
   7  git push origin main
   8  exit
   9  history

特定の履歴を再実行する

履歴に表示される番号を使って、指定したコマンドを再実行できます。たとえば、履歴番号5のコマンドを再実行するには、次のように実行します。

!5 # 5番目のコマンドを再実行

historyコマンドの実行結果から、もう1回使いたいコマンドをコピペするよりも、上記の方法の方が楽です。

grepコマンドと組み合わせて特定のコマンド履歴を表示する

grepコマンドと組み合わせることで、特定の文字列を含むコマンド履歴だけを検索して表示することができます。たとえば、gitコマンドを含む履歴を確認するには次のように実行します。

history | grep git

実行結果例

$ history | grep git
   3  git status
   5  git add .
   6  git commit -m "Initial commit"
   7  git push origin main

historyコマンドのオプション

これからhistoryコマンドの主なオプションについて説明します。

history -w

履歴は通常、自動的に~/.bash_historyファイルに保存されますが、手動で別のファイルに保存したい場合は次のコマンドを使用します。

history -w ファイル名

history -c

履歴をクリアしたい場合には、以下のコマンドを使用します。これにより、シェルに保存されている履歴がすべて削除されます。

history -c

history -d [番号]

特定の履歴エントリを削除する場合は、次のように-dオプションを使用します。

history -d 5

これにより、履歴番号5のエントリが削除されます。

Ctrl + rで過去に入力したコマンドを検索できる

Ctrl + r を使用することで、過去に実行したコマンドを検索することができます。

Ctrl + r を押すと、以下に示すような(reverse-i-search)プロンプトが表示されます。

(reverse-i-search)`git': git status

キーワードを入力すると、関連するコマンドが表示されます。

(reverse-i-search)`git': git push origin main

再度Ctrl + rを押すことで、さらに前のコマンドを検索できます。

実行したいコマンドが表示されたらEnterを押すことで、そのコマンドを再実行できます。また、[方向キーの左右矢印]キーを押すと、実行せずにコマンド入力してくれるので、コマンドの修正をすることも可能です。

検索中に途中で抜け出したい場合、Ctrl + gもしくはEscを押します。

本記事のまとめ

この記事ではLinuxの『historyコマンド』について、以下の内容を説明しました。

  • Linuxのhistoryコマンドとは
  • historyコマンドの使い方

お読み頂きありがとうございました。