Можно облегчить себе пользование терминалом, нехитрым образом настроив bash и используя некоторые удобные команды.
Все команды дописываются в файл ~/bashrc.
Размер истории
HISTSIZE=5000
HISTFILESIZE=10000Первая определяет количество команд, хранимых в памяти, вторая — в файле.
Запись истории
shopt -s histappendЕсли опция histappend выставлена - история команд будет добавлена в файл $HISTFILE, в противном случае файл будет перезаписан. Опция по умолчанию отключена.
Фильтрация истории
HISTCONTROL="ignoredups"$HISTCONTROL управляет сохранением истории. Есть несколько других полезных опций, например
ignorespace, команды которые начинаются с пробела не будут сохранятьсяerasedups, все предыдущие команды, которые совпадают с текущей будут удалены из истории.
$HISTIGNORE позволяет через точку с запятой записать команды, которые не должны попасть в историю.
Посткоманды
PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"В bash есть одна малоизвестная переменная с названием $PROMPT_COMMAND, назначение которой — выполнение какой-то команды перед выводом приглашения, заданного переменной $PS1. В этой переменной можно задать скрипт, который будет выполняться перед каждым выводом приглашения для новой команды.
Итоговое решение
Такая настройка обеспечивает многотерминальную работу с синхронизацией истории и удалением дубликатов.
HISTSIZE=5000
HISTFILESIZE=40000
shopt -s histappend
HISTCONTROL=ignoredups:erasedups
PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"Чтобы применить настройки без выхода из сессии X, достаточно выполнить
source ~/.bashrcУдобные команды
Ctrl-R в bash запускает поиск по истории команд.
Команда
cd -возвращает к последней посещенной директории.
Esc+. вызывает последний упомянутый объект.
Например, если набрать
cat /etc/apt/sources.listа затем rm и нажать Esc+., то команда будет автоматически завершена:
rm /etc/apt/sources.list