Отримайте історію командного рядка Linux за датою


20

Я хочу побачити, що я набрав у своєму командному рядку bash в певний день тиждень тому. Чи є спосіб отримати історію командного рядка? Щось подібне нижче, можливо?

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

не якщо це вже не було включено: cyberciti.biz/faq/unix-linux-bash-history-display-date-time
RobotHumans

якщо ви використовуєте 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
....

Але це ще не все. Оскільки значення HISTTIMEFORMATприймає strftime(які ви можете знайти тут btw), ви можете робити всілякі магічні речі. Але для того, що ви хочете зробити, працює наступне.

[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

Зміни ви побачите, коли відкриєте нову вкладку в терміналі або виходите з системи та входите.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.