今号では Linux におけるターミナル操作で、過去に実行したコマンドの履歴を管理する history コマンドの概要、基本的な使い方、および表示件数の制限方法について紹介します。
1. history コマンドの概要
history コマンドは、これまでにターミナルで入力・実行したコマンドの履歴を一覧で表示したり、再利用したりするための機能です。
このコマンドで以前実行したコマンドの内容を振り返ることができるほか、長いコマンドや複雑なコマンドを再度タイピングすることなく、簡単な操作で呼び出してもう一度実行することができます。
2. 基本の使い方
履歴の一覧表示
引数を付けずに history と入力して実行すると、過去のコマンドが履歴番号とともに一覧で表示されます。
$ history
...
1012 cat /var/log/httpd/access_log
1013 vi /etc/hosts
1014 systemctl restart httpd「!」を使用した履歴の再実行
「!」に続けて履歴番号や文字を入力することで、過去のコマンドを再入力することなく実行できます。
・履歴番号で実行(!n)
history コマンドで確認した左側の番号を指定します。履歴にある番号 1014 のコマンドをもう一度実行したい場合は、以下のように入力します。
$ !1014
systemctl restart httpd・先頭の文字で実行(!string)
指定した文字列から始まる、直近のコマンドを検索して実行します。
$ !sys
systemctl restart httpd・特定文字列を含む履歴の実行(!?string[?])
コマンドの先頭に限らず、指定した文字列を含んでいる直近のコマンドを検索して実行します。
$ !?restart?
systemctl restart httpdgrep コマンドによる履歴の絞り込み
history コマンドの出力は件数が多いため、特定のコマンドを探し出す際は、出力を絞り込む grep コマンド とパイプ(|)を組み合わせる手法が広く用いられます。
$ history | grep ssh
452 ssh user@192.168.1.10
512 ssh -i ~/.ssh/id_rsa admin@example.com3. 表示件数の制限
historyコマンドの末尾に数値を指定することで、直近の指定件数のみを出力することができます。
履歴の全体を表示させると確認しづらくなるため、直近数件の履歴だけを手早く確認したい場合に有効な指定方法です。
$ history 3
1013 vi /etc/hosts
1014 systemctl restart httpd
1015 history 3historyコマンドの基本的な仕様と件数の制限方法を把握しておくことで、過去の操作を効率的に再利用し、ターミナルでの入力の手間を省くことが可能になります。


