Я хочу посмотреть, что я набрал в командной строке bash в определенный день неделю назад. Есть ли способ получить историю командной строки? Возможно, что-то вроде ниже?
> history --include-date | grep 2012-02-27`
Я хочу посмотреть, что я набрал в командной строке bash в определенный день неделю назад. Есть ли способ получить историю командной строки? Возможно, что-то вроде ниже?
> history --include-date | grep 2012-02-27`
По умолчанию 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
(которые вы можете найти здесь, между прочим), вы можете делать все виды волшебных вещей. Но для того, что вы хотите сделать, работает следующее.
[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
Вы увидите изменения, когда откроете новую вкладку в терминале или выйдете из системы.