はじめに
Linuxのコマンドラインで作業をしていると、「さっき実行したあのコマンド、もう一度使いたいんだけど、入力するのが面倒だな」と思うことがよくあります。そんな時、過去に実行したコマンドの履歴を簡単に呼び出して再利用できるのが、**history**コマンドです。このコマンドは、ユーザーのコマンド入力を記録し、管理する役割を担っています。
LPICレベル1の試験でも、historyコマンドを使った効率的な作業方法は重要なポイントです。この記事では、historyコマンドの基本的な使い方から、コマンド名の由来、そしてLPIC対策として押さえるべきポイントまでを詳しく解説していきます。
historyコマンドの基本
まずは、historyコマンドの基本的な使い方と、よく使うオプションから見ていきましょう。
historyコマンドの書式
history [オプション] [引数]
ポイント: オプションや引数を付けずにhistoryと入力するだけで、過去に実行したコマンドのリストが表示されます。

主要オプション一覧
| オプション | 意味 | 補足 |
-c | 履歴リストを全て消去する | clear |
-d | 指定した番号の履歴を削除する | delete |
-a | 未保存のコマンドをヒストリファイルに追記する | append |
-r | ヒストリファイルを読み込んで履歴リストに追加する | read |
-w | 履歴リストをヒストリファイルに書き込む | write |
コマンド名の由来:なぜ「history」なのか?
historyコマンドの「history」は、英語で “歴史” や “経歴” を意味します。
このコマンドは、ユーザーがコマンドラインで入力した一連の「歴史」、つまり実行履歴を記録し、管理するために存在します。これにより、過去のコマンドを簡単に振り返ったり、再利用したりできるため、作業効率が大幅に向上します。
historyコマンドは、シェルに組み込まれた機能(builtin)であり、ユーザーのコマンド入力の歴史を管理する役割にふさわしい、直接的で分かりやすい名前が付けられています。
各オプションの詳細と実践例
ここからは、historyコマンドの各オプションや、関連するショートカットについて詳しく掘り下げていきます。
コマンドの再利用と検索
historyコマンドで表示される履歴リストは、単に過去の記録を見るだけでなく、様々な方法で再利用できます。
直前のコマンドを再実行:
!!
(直前のコマンドをそのまま再実行します)

特定の番号のコマンドを再実行:
!番号
(例: historyで表示された番号100のコマンドを実行する場合、!100)

特定の文字列で始まるコマンドを再実行:
!文字列
(例: caで始まる一番最近のコマンドを実行する場合、!ca)

コマンド履歴のインクリメンタル検索:
Ctrl + r を押すと、reverse-i-searchモードに入ります。
検索したい文字列を入力すると、リアルタイムで過去の履歴が検索されます。
見つけたらEnterで実行、Ctrl + rでさらに古い履歴を検索できます。


(Ctrl + rのあとにcaを入力して履歴を検索している。ここでは最初にcat fileBが表示された。)
履歴の管理
historyコマンドのオプションは、主に履歴リストの管理に使用されます。
-c (clear) オプション:履歴リストを全て消去する
意味: 現在のシェルの履歴リストを全て削除します。ヒストリファイル(.bash_historyなど)には影響しませんが、次にシェルを終了した時に変更が書き込まれる場合があります。
実践例:
history -c

オプションの由来:「-cオプションのcは、clear(消去する)の頭文字から来ています。一時的に全ての履歴をリセットしたい場合に便利です。」
-d (delete) オプション:指定した番号の履歴を削除する
意味: historyコマンドで表示される履歴番号を指定して、その履歴をリストから削除します。
実践例:
history -d 100
(番号100の履歴を削除します)
type -a lsが100番目に存在

-dオプションでコマンドを実行する

historyコマンドで結果を確認。100番目に存在したtype -a lsが消えている

オプションの由来:「-dオプションのdは、delete(削除する)の頭文字から来ています。リストから特定のコマンドを削除したい場合に便利です。」
ヒストリファイル(~/.bash_history)との関係
historyコマンドが扱う履歴は、通常、シェルセッションが終了する際にホームディレクトリにある.bash_historyのようなヒストリファイルに書き込まれます。このファイルは、次回のシェルセッション開始時に読み込まれます。
history -a: 現在のセッションで実行したコマンドを、ヒストリファイルに追記します。history -r: ヒストリファイルの内容を読み込み、現在のセッションの履歴リストに追加します。history -w: 現在のセッションの履歴リスト全体を、ヒストリファイルに上書き保存します。
まとめ
今回は、Linuxのコマンド履歴を管理するhistoryコマンドについて、その基本的な使い方からコマンド名の由来、そして主要な操作方法までを詳しく解説しました。historyコマンドは、!!や!文字列といったショートカットと合わせて使うことで、日々のコマンドライン作業を劇的に効率化することができます。
LPICレベル1の試験対策としては、コマンドの再実行方法や、履歴の管理に関するオプション(特に-cや-d)を理解しておくことが重要です。ぜひ、今日からhistoryコマンドを積極的に活用し、コマンドライン作業の「歴史」を効率的に管理していきましょう。



コメント