Я хочу побачити, що я набрав у своєму командному рядку 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(які ви можете знайти тут 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
Зміни ви побачите, коли відкриєте нову вкладку в терміналі або виходите з системи та входите.