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