historyで表示されるコマンド履歴に日時の情報を追加する方法

ユーザの作業履歴を表示するhistoryコマンドを実行した際に、コマンドの実行日時の情報を追加する方法です。

historyコマンドの実行結果に日時の情報を追加

初期設定のhistoryコマンド実行結果には、下記のようにコマンドの実行日時情報は含まれていません。

$ history 5
1245  history 
1246  ps -ef
1247  top
1248  df -h
1249  history 5

コマンドをいつ実行したのかを知りたくなったので、表示させる方法を調べてみました。

日時の情報が分かるようになると、作業した日時でgrepによる抽出が出来るようになり便利になります。

コマンドの実行日時の情報を追加

historyでユーザが実行したコマンドの日時を表示させるには、「HISTTIMEFORMAT」変数に表示させたい日時のフォーマットを設定することで表示させることができます。

今回は一時的に日時の情報を追加する方法と、永続的に追加する方法を説明していきます。

日時のフォーマットについては、下記のページで解説していますので参照してみてください。

dateコマンド使用方法 「date」コマンドを使用して日付や時刻を設定する方法や表示する方法をまとめています。 いつも...

一時的に日時を追加

一時的に日時の情報を追加させる場合は、「HISTTIMEFORMAT='日時をフォーマットで指定 '」を実行して「HISTTIMEFORMAT」を設定します。

この方法は一時的な設定となりますので、ログアウトしたりするとこの設定は元の状態に戻ってしまい、日時が表示されなくなってしまいます。

実行結果

「HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S '」と設定すると下記のように日時が追加されます。

$ HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S '
$ history 5
 1265  2021-10-31 22:28:47 top
 1266  2021-10-31 22:29:05 free
 1267  2021-10-31 22:29:09 uname -a
 1268  2021-10-31 22:29:29 ls -l
 1269  2021-10-31 22:29:36 history 5

永続的に日時を追加

ログアウトしても設定が元に戻らないように、永続的な設定を行う方法を下記の2通りについて説明していきます。

  • ユーザ個別に設定する方法
  • 全ユーザに設定する方法

ユーザ個別に設定する方法

ユーザが個別に設定する場合は、ホームディレクトリにある.bashrcに設定を追加することで、日時を表示させることができます。

$ cd
$ vi .bashrc

今回は下記のように設定を追加しました。

HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S '

設定を反映させるためには、一度ログアウトして再ログインするか、sourceコマンドで.bashrcファイルを再読込してみてください。

$ source .bashrc 

その後にhistoryコマンドを実行すると、日時が表示されるようになります。

$ history 5
 1273  2021-10-31 22:44:53 ll
 1274  2021-10-31 22:45:01 vi .bashrc 
 1275  2021-10-31 22:48:19 source .bashrc 
 1276  2021-10-31 22:48:21 history
 1277  2021-10-31 22:48:36 history 5

全ユーザに設定する方法

「/etc/profile.d/」ディレクトリに.shの拡張子でファイルを作成することで、ユーザがログインした際に設定を読み込んでくれます。

そこに作成したファイルに「HISTTIMEFORMAT」の設定する記述をすることで、ユーザがログインした際に設定が読み込まれて、historyコマンドで表示される結果に日時の情報が追加されるようになります。

今回は「/etc/profile.d/history.sh」というファイルを作成して、そこに「HISTTIMEFORMAT」の設定を記述していきます。

$ su -
# vi /etc/profile.d/history.sh 

設定内容は下記のように行いました。

HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S '

一旦ログアウトして、再度ログインしてhistoryコマンドを実行すると、コマンドの実行結果が表示されるようになりました。

$ history 5
1282  2021-11-01 19:30:09 free
1283  2021-11-01 19:30:15 uname -a
1284  2021-11-01 19:30:31 ls -l
1285  2021-11-01 19:30:46 cat ~/.bashrc 
1286  2021-11-01 19:30:52 history 5

シェアする