1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事を書くきっかけ

ターミナルのコマンド操作に慣れてきた頃、過去のコマンドを実行したいときに、キーボードの上矢印(↑)をひたすら押して探すという非効率な方法をとっていることに気づきました。例えば、ローカルマシンからEC2(仮想サーバー)にSSH接続する際、毎回キーボードを連打しながら過去に実行した ssh 〇〇コマンドを探して実行していました。

そこで、historyコマンドを覚えて過去のコマンドを一覧表示して、目的のコマンドを探して実行しようとしました。すると、すぐには出てきません。入力ミスや一回限りのコマンドも多くあり、希望のコマンドは大分古い履歴に記録されているようです。結局historyと入力するだけでは、目的のコマンドを見つけることができませんでした。

「もっと上手にhistoryコマンドを使えるようになりたい」、「自分の目的にあったコマンドをピンポイントで実行できるようになりたい」と思い、今回記事にしました。目的別でhistoryコマンドを実行できるようにまとめました。是非、参考にしてみてください。

この記事の対象者

  • シェル入門者
  • Linuxコマンドを勉強している人
  • histroyコマンドのオプションを知りたい人
  • 過去に実行したコマンドを記録する方法を知りたい人

historyコマンドとは

コマンド:history
説明:過去に実行したコマンドの一覧を表示するコマンドです。Zshの場合、デフォルトで直近16個のコマンドが表示されます。

目的別histroyコマンドの活用法

過去に実行したコマンドを一覧で表示したい

コマンド:history
シェルで実行した過去のコマンド履歴を表示します

$ history
  1  ls
  2  cd /etc
  3  pwd
  4  history

指定したヒストリ番号以降のコマンド履歴を表示したい

コマンド:history [ヒストリ番号]

ヒストリ番号とはhistoryの履歴内のコマンドを識別する番号です。番号が小さいほど昔に実行されたコマンドです。引数にヒストリ番号を指定することで、その番号以降に実行されたコマンドの一覧を表示します。

$ history 50
  50  ls
  51  cd /etc

直近のコマンド履歴を指定した数だけ表示したい

コマンド:history -[数字]

引数にマイナスの数値を指定すると、直近のコマンド一覧をその数だけ表示します。

$ history -5
  50  history
  51  uname -r
  52  ls
  53  pwd
  54  history -5

指定したヒストリ番号のコマンドを再実行したい

コマンド:![ヒストリ番号]

ピンポイントで指定したヒストリ番号のコマンドを実行できます。

$ history
  101  ls
  102  cd /etc
  103  pwd

$ !102
cd /etc

直前に実行したコマンドをもう一度実行したい

コマンド:!!

$ ls
file1  file2

$ !!
ls
file1  file2

任意の文字で始まる直前のコマンドを再実行したい

コマンド:!(任意の文字)

例:!l
直前に実行したコマンドの中で、任意の文字(例:l(小文字のL)) で始まるものを再実行します

$ ls
file1  file2

$ pwd
/home/user

$ !l
ls
file1  file2

指定したヒストリ番号から始まるコマンドの引数を全て再利用したい

コマンド:! [ヒストリ番号] *

指定したヒストリ番号から始まるコマンドのすべての引数を再利用します。
!* と入力すると、直前のコマンドの引数をすべて再利用したいときに使います。

$ echo file1 file2
file1 file2

$ ls !*
ls file1 file2
file1  file2

直前のコマンドの最後の引数だけを再利用したい

コマンド:!$

直前のコマンドの最後の引数だけを利用して、他の命令を実行することができます。

$ echo Hello World
Hello World

$ ls !$
ls World
ls: World: No such file or directory

まとめ

historyコマンドを活用することで、シェル操作が格段に効率的になるはずです。過去のコマンドを探す方法を忘れてしまったら、またこの記事を見直して目的のコマンドを素早く実行できるようにしたいと思います。

historyコマンドは気軽なコマンドなので、シェル操作に慣れることを目的として実行してもいいかもしれません。そうやってシェル操作に慣れていくと、他の便利なコマンドやオプションも覚えやすくなると思います。是非、参考にしてみてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?