Rufen Sie den Linux-Befehlszeilenverlauf nach Datum ab


20

Ich möchte sehen, was ich an einem bestimmten Tag vor einer Woche in meiner Bash-Befehlszeile eingegeben habe. Gibt es eine Möglichkeit, den Befehlszeilenverlauf abzurufen? Vielleicht so etwas wie unten?

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

nicht, wenn es nicht bereits aktiviert war: cyberciti.biz/faq/unix-linux-bash-history-display-date-time
RobotHumans

Wenn Sie zsh verwenden:history -E
Vahid

Antworten:


32

HistoryProtokolliert standardmäßig die Zeit, zu der Sie einen Befehl ausgeführt haben, zeigt ihn jedoch nicht an. Der Grund dafür ist, dass beim Ausführen des HistoryBefehls nach einer Umgebungsvariablen namens aufgerufen wird HISTTIMEFORMAT, die angibt , wie die Zeit formatiert werden soll. Wenn der Wert festgelegt ist nulloder nicht, wird standardmäßig keine Zeit angezeigt.

Ein Beispiel mit etwas Zeit-

[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
....

Aber das ist nicht alles. Da die HISTTIMEFORMATnimmt strftimeWerte (die Sie finden hier btw), können Sie alle Arten von magischen Dinge tun. Aber für das, was Sie tun möchten, funktioniert das Folgende.

[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
 ...

Wenn Sie möchten, dass Ihr HISTTIMEFORMAT bestehen bleibt, sollten Sie es an Ihr bashrcähnliches anhängen .

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

Sie sehen die Änderungen, wenn Sie eine neue Registerkarte im Terminal öffnen oder sich abmelden und anmelden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.