Средняя команда в администрировании — 40–80 символов. Набирать её второй раз незачем: bash помнит последние тысячи команд, нужно только уметь их доставать.
Обратный поиск
Нажмите Ctrl+R и начните вводить любую часть команды — bash покажет последнее совпадение:
(reverse-i-search)`systemctl': systemctl restart nginx
Повторные нажатия Ctrl+R листают более старые совпадения. Дальше:
- Enter — выполнить найденное
- → или Esc — вставить в строку для правки
- Ctrl+G — отменить поиск
Повтор последней команды
!!
Самое частое применение — забыли sudo:
sudo !!
Последний аргумент предыдущей команды — !$:
mkdir -p /opt/app/config
cd !$
Замена в последней команде
Опечатались или нужно поменять одно слово:
systemctl status nginx
^status^restart
Выполнится systemctl restart nginx.
Настройка истории
По умолчанию история короткая и теряется при параллельных сессиях. Добавьте в ~/.bashrc:
HISTSIZE=50000
HISTFILESIZE=100000
HISTCONTROL=ignoreboth:erasedups
HISTTIMEFORMAT="%F %T "
shopt -s histappend
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
Что это даёт:
ignoreboth— не сохранять дубликаты и команды, начинающиеся с пробелаHISTTIMEFORMAT— метки времени, видно когда что запускалосьhistappend+history -a— история из разных сессий не затирает друг друга
Применить без перезахода:
source ~/.bashrc
Совет. Команда с паролем или токеном не должна попадать в историю. Начните её с пробела — при HISTCONTROL=ignorespace или ignoreboth она не сохранится.
Итог
Ctrl+R покрывает 90% случаев. Настройка истории в .bashrc делается один раз и окупается сразу.