31 октября 2008 г.

Маленькие трюки

История команд — удобная штука, но при одновременной (лучше сказать попеременной) работе сразу в нескольких терминалах, возникают неудобства: в каждой оболочке своя собственная история команд и при этом каждая оболочка записывает историю в файл без оглядки на другие запущенные экземпляры. В результате команду, которую только что вводил в соседнем окне, приходится копировать средствами X Window, а при закрытии, допустим, screen с 10 окнами в файле остается история только одной из оболочек. Однако, в bash есть средства для решения этой проблемы. Вот кусочек ~/.bashrc:
HISTTIMEFORMAT=%FT%T
PROMPT_COMMAND='history -a; history -n'
Теперь при каждом отображении подсказки bash будет дописывать в $HISTFILE часть истории текущей сессии, которая еще не была записана (history -a) и читать из файла историю, которая еще не была прочитана (history -n). UPD: Все-таки эта штука не работает как надо :(

Комментариев нет:

Отправить комментарий