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