【Linux】historyコマンドで実行日時(時間)を表示する方法

【Linux】historyコマンドで実行日時(時間)を表示する方法

PR Amazonのアソシエイトとして、ITナレッジライフは適格販売により収入を得ています。

記事の文字数:1,772

Linuxのhistoryコマンドでコマンドの実行日時(時間)を表示する方法を解説します。HISTTIMEFORMAT変数の設定方法や、永続化する手順をわかりやすく紹介します。

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

初心者向け

わかばちゃんと学ぶ サーバー監視

難易度
実用性
読みやすさ

マンガと図解が中心で圧倒的に読みやすい。負荷調査の手法がスッと理解できるようになります。

新しいLinuxの教科書 第2版

難易度
実用性
読みやすさ

一生モノの基礎知識が身につく定番書です。

ゼロからわかる Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

難易度
実用性
習得度

アウトプット重視で記憶に定着しやすい。反復練習でLinux操作が自由自在になります。

エンジニア1年生のための世界一わかりやすいLinuxコマンドの教科書

難易度
実用性
読みやすさ

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 '" >> ~/.bashrc

2. 時間表示の設定を反映する

ファイルに追記しただけでは現在のセッションには反映されないため、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ライフを!
ITナレッジライフ 運営者
この記事を書いた人

Z (ITナレッジライフ)

現役のITエンジニア。Linux、プログラミング、IT用語など、日々の業務で得た「痒いところに手が届く」技術情報を発信しています。

プロフィールと編集ポリシーを見る

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

人気記事


記事を評価

Thanks!
目次
Scroll to Top