ウェブサイト検索

Bash 履歴で実行する各コマンドの日付と時刻を設定する


デフォルトでは、 コマンドラインでBash によって実行されたすべてのコマンドは履歴バッファに保存されるか、~/.bash_history というファイルに記録されます。これは、システム管理者がシステム上でユーザーによって実行されたコマンドのリストを表示したり、ユーザーがhistoryコマンドなどを使用して自分のコマンド履歴を表示したりできることを意味します。

history

上記のhistoryコマンドの出力からは、 コマンドが実行された日付時刻は表示されません。これは、すべてではないにしても、ほとんどの Linux ディストリビューションのデフォルト設定です。

この記事では、Bash履歴の各コマンドが実行されたときのタイムスタンプ情報を表示する設定方法について説明します。

各履歴エントリに関連付けられた日付時刻は、HISTTIMEFORMAT変数を設定することで履歴コメント文字でマークされて履歴ファイルに書き込むことができます。

これを行うには 2 つの方法が考えられます。1 つは一時的に行う方法で、もう 1 つは永続的に行う方法です。

HISTTIMEFORMAT 変数を一時的に設定するには、コマンド ラインで次のようにエクスポートします。

export HISTTIMEFORMAT='%F %T'

上記のエクスポート コマンドのタイムスタンプの形式は次のとおりです。

  1. %F%Y-%m-%d (年-月-日) と同じ完全な日付に展開されます。
  2. %T – 時間に展開します。 %H:%M:%S (時:分:秒) と同じです。

詳しい使用方法については、date コマンドのマニュアル ページを参照してください。

man date

次に、次のようにコマンド履歴を確認します。

history 

ただし、この変数を永続的に構成したい場合は、好みのエディターでファイル ~/.bashrc を開きます。

vi ~/.bashrc

そして、その中に以下の行を追加します (独自の構成としてコメントでマークします)。

#my config
export HISTTIMEFORMAT='%F %T'

ファイルを保存して終了し、その後、以下のコマンドを実行して、ファイルに加えた変更を有効にします。

source ~/.bashrc

それだけです!興味深い履歴コマンドのヒントやテクニック、またはこのガイドに関するご意見があれば、以下のコメント セクションから私たちと共有してください。