Shtsh 24.08.2012 00:02

Tips & tricksНастраиваем историю bash

Читая на планшете Zite, я наткнулся на интересную статью, которую можно добавить в продолжнение моего поста о конфиге bash.

Статья заключается в настройке хистори баша. Естественно, это всё есть в man bash, но кто его осилил?

Во-первых, есть такая переменная, как HISTTIMEFORMAT, которую можно задать и в .bash_history (или что там у ваз в HISTFILE?) начинает записываться timestamp выполнения команды. Посмотреть можно при помощи команды history, в которой и выводится время, задаваемое переменной HISTTIMEFORMAT.

Например, у меня
1
HISTTIMEFORMAT='%d/%m/%Y %H:%M:%S %Z '

, что даёт примерно такой вывод:
492 23/08/2012 22:30:44 UTC vim .bash_history

Чтобы узнать, что можно писать в эту переменную, идём читать man 3 strftime

Далее настраиваем игнорирование дубликатов и удалении лишних пробелов. Для этого сделаем
1
export HISTCONTROL=erasedups:ignorespace

Теперь увеличим размер истории
1
export HISTSIZE=10000

И избавимся от логирования некоторых командHISTCONTROL=
1
export HISTIGNORE="pwd:ls:ls -l:ls -la"

Теперь можно пользоваться историей и радоваться жизни :)
Если же хочется побольше узнать о настройках истории, то можно всё-таки открыть man bash и поискать по HIST.


Тэги: bash history
+ 4 -
Похожие Поделиться

Daria 24.08.2012 05:04 #
лучше бы в беш общую историю для всех шеллов прикрутили-б.
IamCrazy 24.08.2012 07:02 #
shopt -s histappend
IamCrazy 24.08.2012 07:11 #
В инете много статей по настройке, если лень читать man'ы притом довольно подробных.
Честно говоря, не вижу смысла записывать время команды. Зачем?
Насчет HISTIGNORE - можно использовать "*", чтобы не повторяться:
1
export HISTIGNORE="pwd:ls*"

Мой список таких команд растянулся на несколько строк.


PS можно ещё написать про автоисправление ошибок директорий
1
shopt -s cdspell

Ctrl+R - поиск среди команд и т.д. для полноценной статьи. :)
Dark_SS 24.08.2012 08:10 #
Насчет HISTIGNORE - можно использовать "*", чтобы не повторяться:
Наверно, имеется в виду, что ls в текущем каталоге не представляет ценности для истории, а ls /usr/local уже представляет.
le087 25.08.2012 11:34 #
Мои пять копеек. Иногда требуется, что бы файл истории не велся, в таких случаях я использую:
1
unset HISTFILE

ladykosha 25.08.2012 15:09 #
Спасибо. Как-то раньше не обращала внимания на HISTIGNORE. Теперь уберу из неё dict*. :)