historyはコマンドの入力履歴を調べたり、コマンドの入力履歴を外部ファイルで管理したりするコマンドだ。
作業履歴を残しておくことはエンジニアにとって大切なことだ。手っ取り早く残すためにhistoryコマンドは重宝する。
例えば、Linuxのシステムを構築する際に、どんなコマンドを入力していたか記録し、その通り実行することで、同じ設定内容のコンピュータをもう一台作成することができる。あくまでも手っ取り早く実施したいときのみだが、有効な手段だ。
目次
historyコマンドの基本
コマンドの基本動作
使い方は、次のとおりだ。
$ history
コマンドの入力履歴が表示された。
今回は、すでに、「ls -la」「cd work」「cat html.php」の3つのコマンドを実行していた。
それらのコマンドが入力履歴として表示されている。
それぞれのコマンドの左側の番号は管理番号で、この順番で入力されていることを指す番号と考えていいだろう。
最後に実行したhistoryコマンドも実行したコマンドとして記録されている。
historyコマンドのオプションたち
オプションの一覧
後から詳細をご紹介するが、まずは一覧で見てみよう。
オプション -c
端末に記録されているコマンド履歴を消去する。
オプション -d
端末に記録されている指定した管理番号のコマンド履歴を削除する。
オプション -w
端末に記録されているコマンド履歴をファイルに書き込む。
オプション -r
ファイルに書き込まれているコマンド履歴を端末に読み込む。
オプション -a
端末に記録されているコマンド履歴をファイルに追記で書き込む。
-cオプション:端末に記録されているコマンド履歴を消去する
端末に記録されているコマンド履歴を消去する書式は次のとおりだ。
$ history -c
端末に記録されているコマンド履歴が消去された。
はじめに4つのコマンド履歴があったが-cオプションを実行することで、履歴が消去され、次にhistoryコマンドを実行した際には、最後に実行したhistoryコマンドのみが記録されている。
-cオプションを実行したhistoryコマンドの履歴も消去されるので、消去した事実は消えてしまうので注意が必要だ。
-dオプション:端末に記録されている指定した管理番号のコマンド履歴を削除する
端末に記録されている、任意の管理番号のコマンド履歴を消去する書式は次のとおりだ。
$ history -d 管理番号
端末に記録されている、725番の管理番号のコマンド履歴を消去する書式は次のとおりだ。
$ history -d 725
端末に記録されている、725番の管理番号のコマンド履歴が消去された。
はじめに4つのコマンド履歴があったが、そのうちの725番が「cat html.php」というコマンドだった。-dオプションで725番を指定して実行することで、725番「cat html.php」の履歴が消去され、次にhistoryコマンドを実行した際には、-dオプションで削除したコマンドと、最後に実行したhistoryコマンドのみが追記されている。
-wオプション:端末に記録されているコマンド履歴をファイルに書き込む
端末に記録されているコマンド履歴をファイルに書き込み、バックアップしておく。
書き込まれたファイルはテキストファイルなのでcatコマンドで内容を確認したり、viエディタで内容を編集したりできる。
書式は次の通りだ。
$ history -w ファイル名
端末に記録されているコマンド履歴をファイルhis.txtに保存するコマンドは次のとおりだ。
$ history -w his.txt
はじめに4つのコマンド履歴があり、その内容がファイルhis.txtに保存されている。
-rオプション:ファイルに書き込まれているコマンド履歴を端末に読み込む
ファイルに書き込まれているコマンド履歴を端末に読み込む。
端末に読み込む際は、現状で端末に記録されているコマンド履歴の後に追加する形で読み込まれる。
書式は次の通りだ。
$ history -r ファイル名
ファイルhis.txtに記録されているコマンド履歴を端末に読み込むコマンドは次のとおりだ。
$ history -r his.txt
はじめに4つのコマンド履歴があり、その後、-rオプションでファイルhis.txtから履歴を読み込んだので内容が追記されている。-wコマンドを実行した際に、-wコマンドを実行した履歴が残っている。最後にhistoryコマンドを実行したので、その内容が端末に記録されている。
読みだした内容に管理番号が表示してあるのは、historyコマンドが自動で割り振った番号を表示しているので、実際のファイルには番号は記載されていない。
-aプション:端末に記録されているコマンド履歴をファイルに追記で書き込む
端末に記録されているコマンド履歴を、バックアップしていたファイルに追記する。
作業途中で区切ったコマンド履歴に、作業再開してからのコマンド履歴を追記するというときに使うとよいだろう。
書式は次の通りだ。
$ history -a ファイル名
端末に記録されているコマンド履歴をファイルhis.txtに追記するコマンドは次のとおりだ。
$ history -a his.txt
はじめに端末に記録されているコマンド履歴をクリアしている。その状態でhis.txtの内容を端末に読み込むと723番から728番までの履歴が読み込まれていた。その状態で、-aオプションを実行し、ファイルhis.txtに確認のためのhistoryコマンドと、-rオプションでファイルを読み込んだ動作が追記された。最後のhistoryコマンドで動作確認し、内容が間違いないことがわかる。
まとめ
今回は、historyコマンドを使ったコマンド履歴の操作方法を解説した。
Linuxは人間が入力した内容を記録しているため、後で動作に間違いがなかったかを確認できるとともに、同じ動作なら履歴内容を記録したファイル内容を操作して、同じ動作をするためのシェルファイルを作成することができる。
いわゆる、操作内容を記録して、その内容を繰り返すことができるマクロ動作ができるので、応用してほしい。