15.06.2009

Как добавить дату и время в историю команд BASH

Довольно часто пользуюсь историей команд bash-а.
Историю набранных комманд в баш можно просмотреть двумя способами:
1-ый способ используется если нужно просмотреть несколько последних комманд - нажимается на клавиатуре стрелка вверх;
2-ой способ если нужно "вспомнить" или повторить сложную комманду или конвеер, которые выполнялись достаточно давно, а 100 раз тыкать стрелочку вверх невмоготу и набирать лень - есть такая команда history.
Так лично мне удобно не только посмотреть саму историю комманд, но еще и дату и/или время их исполнения.
Вот случайно случайно наткнулся на описание в ubuntugeek.com
как такое дело прикрутить.
А прикрутить очень просто.
Редактируем конфигурационный файл bash:
gedit $HOME/.bashrc

и добавляем следующую строку (я сделал ее первой):
export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

Сохраняем изменения.
Закрываем текущий терминал и открываем новый или завершаем сессию Ctrl+D.
Набираем history и видим перед командами время и дату их выполнения.
Я, например слушаю музыку с помощью mplayer. Для того, чтобы иметь возможность слушать композиции не находящиеся в одной папке пользуюсь плейлистами.
Вот так это выглядит:
создаю плейлист
find /home/budda/music/80-e/ -type f -name "*.mp3" -print > /home/budda/disco.m3u

при необходимости добовить еще папки в плейлист нужно одну стрелку перенаправления ">" изменить на двойную ">>", тогда композиции из второй папки добавяться в конец файла плейлиста
find /home/budda/music/90-e/ -type f -name "*.mp3" -print >> /home/budda/disco.m3u

а воспроизвести можно так
mplayer -shuffle -playlist disco.m3u

при этом опция shuffle случайным образом перемешает порядок воспроизведения из плейлиста.

Вот теперь комманда history будет очень кстати.
Набираем
history | grep disco
в списке нахим нужную комманду и запускаем, например так:
!456

где 456 номер нужной комманды полученной с помощью history.