LinuxLinux [リナックス / ライナックス]オープンソースのOSカーネルで過去に実行したコマンドの履歴を確認する際、historyコマンドをよく使用します。しかし、デフォルトの設定では「コマンドの実行内容」しか表示されず、「いつ実行したか(時間)」がわかりません。
障害対応やオペレーションの振り返りなどにおいて、コマンドの実行時間は非常に重要な情報となります。
本記事では、historyコマンドの結果に実行日時(時間)を表示させる方法を解説します。
Linuxのhistoryコマンドで一時的に実行時間を表示する方法
現在のログインセッション(一時的)のみ、historyコマンドに時間を表示させたい場合は、環境変数 HISTTIMEFORMAT を設定します。
export HISTTIMEFORMAT='%F %T '上記コマンドを実行した後に history コマンドを実行すると、以下のように日時が表示されるようになります。
[!WARNING] 過去のコマンドのタイムスタンプについて
HISTTIMEFORMATは、変数を設定した時点以降に実行されたコマンドから正しい日時が記録されます。設定する以前に実行された過去のコマンドに対しては、記録がないため不正確な日時(1970-01-01 00:00:00など)が表示されます。最初からすべての履歴に日時を残したい場合は、後述の「恒久対応」を事前に行っておく必要があります。
$ history # 設定前に実行されたコマンドは正しい日時が表示されない(例) 101 1970-01-01 00:00:00 ls -la 102 1970-01-01 00:00:00 cd /var/log # 設定後に実行したコマンドから正しい日時が記録される 103 2026-08-10 12:05:45 tail -f messages実行時間のフォーマット(HISTTIMEFORMAT)指定について
HISTTIMEFORMAT に設定している %F %T は、日時の表示形式(フォーマット)を指定しています。よく使われるフォーマットは以下の通りです。
%F:%Y-%m-%dと同じ(例: 2026-08-10)%T:%H:%M:%Sと同じ(例: 12:34:56)- 末尾のスペース : 日時とコマンドの間にスペースを入れるため
スラッシュ区切り(例: 2026/08/10)にしたい場合などは、以下のように変更することも可能です。
export HISTTIMEFORMAT='%Y/%m/%d %H:%M:%S 'historyコマンドの実行時間表示を永続化(恒久対応)する方法
ログアウトしても設定を維持したい(永続化したい)場合は、ユーザーのプロファイル設定ファイル(~/.bash_profile や ~/.bashrc)に追記します。
一般的には ~/.bashrc に追記することが多いです。
1. ~/.bashrc に時間表示の設定を追記する
テキストエディタで ~/.bashrc を開いて追記するか、以下のコマンドで末尾に追記します。
echo "export HISTTIMEFORMAT='%F %T '" >> ~/.bashrc2. 時間表示の設定を反映する
ファイルに追記しただけでは現在のセッションには反映されないため、sourceコマンドで設定を再読み込みするか、一度ログアウトして再ログインします。
source ~/.bashrcこれで、次回以降ログインした際も常に history コマンドに実行時間が表示されるようになります。
Linuxの全ユーザーに対してhistoryの時間表示を適用する場合
システム上のすべてのユーザーに対して history の実行時間表示を適用したい場合は、/etc/profile や /etc/profile.d/ 配下のスクリプトで設定します。
/etc/profile.d/ ディレクトリに独自の設定ファイル(例:history.sh)を作成する方法が管理上おすすめです。
# root権限(sudo)で実行しますsudo sh -c 'echo "export HISTTIMEFORMAT=\"%F %T \"" > /etc/profile.d/history.sh'これにより、システムにログインする全ユーザーの history コマンドに時間が表示されるようになります。
[!NOTE]
/etc/profileや/etc/profile.d/は、基本的にログインシェルとして起動した際に読み込まれます。デスクトップ環境でターミナルエミュレータを開いた際など、非ログインの対話型シェルとして起動する場合、ディストリビューション(DebianDebian [デビアン]コミュニティ主導で開発される安定性の高いLinuxディストリビューション/UbuntuUbuntu [ウブントゥ]人気のLinuxディストリビューション系など)によっては読み込まれないことがあります。その場合は環境に合わせて/etc/bash.bashrcなど適切なシステム共通設定ファイルへ記述する必要があります。
まとめ:Linuxのhistoryに時間を表示してトラブルシューティングを効率化
history コマンドで実行時間を確認できるようにするには、HISTTIMEFORMAT 変数を設定するだけです。
オペレーションミスを防いだり、トラブルシューティングをスムーズに行うために、サーバー構築時の初期設定として HISTTIMEFORMAT の永続化を含めておくことをおすすめします。
以上で本記事の解説を終わります。
よいITライフを!
人気記事
- 1
- 2
- 3
- 4
- 5
Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。