Pobierz historię wiersza poleceń systemu Linux według daty

Odpowiedzi:

32

Domyślnie Historyrejestruje czas uruchomienia polecenia, ale go nie wyświetla. Powodem tego jest to, że po uruchomieniu Historypolecenia szuka zmiennej środowiskowej o nazwie HISTTIMEFORMAT, która mówi, jak sformatować czas. Jeśli wartość jest nullustawiona lub nie, to domyślnie nie pokazuje czasu.

Przykład z pewnym czasem

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

Ale to nie wszystko. Ponieważ wartości HISTTIMEFORMATprzyjmuje strftime(które można znaleźć tutaj przy okazji), możesz robić wszelkiego rodzaju magiczne rzeczy. Ale do tego, co chcesz zrobić, działają następujące.

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

Ponadto, jeśli chcesz, aby HISTTIMEFORMAT utrzymywał się, zastanów się nad dołączeniem go do bashrcpodobnego;

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

Zmiany zobaczysz po otwarciu nowej karty w terminalu lub wylogowaniu się i zalogowaniu.

qweet
źródło