CentOSでhistoryコマンドを使うと過去に実行したコマンドの一覧が出力されますが(.bash_historyの内容だと思いますが)、コマンド実行の日時とどのディレクトリで実行したか、のログは残っているでしょうか?また、デフォルトで残っていない場合、それらのログを残すことは可能でしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/12/05 11:32:38
  • 終了:2011/12/06 08:27:18

ベストアンサー

id:JULY No.1

JULY回答回数966ベストアンサー獲得回数2472011/12/05 12:03:38

実行日時は、HISTTIMEFORMAT という環境変数を設定すると可能です。
Hack 50. HISTTIMEFORMAT を使用して履歴に TIMESTAMP を表示する - bobchinの日記

カレントディレクトリは... とりあえず、直接的にはそういった機能は無さそうですが、シェルスクリプトを組み合わせて頑張ると出来るようです。

Supplementary Command History Logging in Bash: Tracking Working Directory, Date/Times, etc. | Jeet Sukumaran
私自身で試したり、中身をきちんと理解できている訳では無いですが、hh というエイリアスを定義していて、これを呼び出すと、タイムスタンプとその時のカレントディレクトリが表示出来るようになっているみたいです。

他1件のコメントを見る
id:JULY

元々、.bash_history のファイルに書き出されるまでには、タイムラグがあります。

http://linuxjm.sourceforge.jp/html/GNU_bash/man1/bash.1.html

上記ページの「履歴 (HISTORY)」の章を読むと「対話的なシェルが終了する際には、最近の HISTSIZE 個の行が履歴リストから HISTFILE にコピーされます。」と書かれています。つまり、通常は bash のプロセスがオンメモリーで内容を保持し、終了時に .bash_profile へ書き出す、という動きになります。

なので、環境変数を設定した直後の .bash_profile の内容を見ても、タイムスタンプらしき物は見つかりませんが、一度、ログアウトしてから再度ログインすると、「#1323061139」という行が入っているのが分かります。

2011/12/05 14:06:59
id:koime_ryokutya

コメントありがとうございます。
たしかに、#**という行が入ってますね。多分これがタイムスタンプの情報なのですね。ありがとうございます。

2011/12/06 08:27:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません