日付によるLinuxコマンドライン履歴の取得


20

1週間前の特定の日にbashコマンドラインに入力した内容を確認したい。コマンドライン履歴を取得する方法はありますか?以下のようなものでしょうか?

> history --include-date | grep 2012-02-27`


あなたはzshのを使用している場合:history -E
ヴァヒド

回答:


32

デフォルトでHistoryは、コマンドを実行した時刻を記録しますが、表示しません。この理由は、Historyコマンドを実行するとHISTTIMEFORMAT、と呼ばれる環境変数を探し、それが時間のフォーマット方法を指示するためです。値がnull設定されている場合、または設定されていない場合、デフォルトでは時間は表示されません。

いくつかの時間の例

[qweet@superbox ~]$ export HISTTIMEFORMAT='%F %t '
[qweet@superbox ~]$ history
    1  2012-03-06        su -
    2  2012-03-06        jbach@mobiletribe.net
    3  2012-03-06        mysql
    4  2012-03-06        ll
    5  2012-03-06        cd /opt/
    6  2012-03-06        ll
    7  2012-03-06        exit
    8  2012-03-06        ll
    9  2012-03-06        ls -lsa
   10  2012-03-06        cd ../
   11  2012-03-06        ll
   12  2012-03-06        ll
....

しかし、それだけではありません。HISTTIMEFORMATstrftime値をとるので(ここで確認できます)、あらゆる種類の魔法のようなことができます。しかし、あなたがしたいことのために、次のように動作します。

[qweet@superbox ~]$ export HISTTIMEFORMAT='%F %T %t'
[qweet@superbox ~]$ history | grep -e "2012-03-06 14:48"
 1006  2012-03-06 14:48:05      export HISTTIMEFORMAT='%F %T %t'
 1007  2012-03-06 14:48:07      history
 ...

また、HISTTIMEFORMATを保持したい場合は、bashrc同様に追加することを検討してください。

echo 'HISTTIMEFORMAT="variables here"' >> ~/.bashrc

ターミナルで新しいタブを開くか、ログアウトしてからログインすると、変更が表示されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.