Чем больше работаешь в командной строке, тем чаще возникает необходимость повторять введёные ранее команды. Самый простой способ просматривать историю команд — нажимать клавиши "вверх/вниз". При каждом нажатии стрелки "вверх" в поле ввода начнёт появляться предыдущая выполненная команда, если нажать "вниз" — то следующая.
История команд баша хранится в специальном файле .bash_history, который лежит в домашней директории пользователя. Каждый раз, когда пользователь вводит команду, она попадает именно в этот файл. Он ничем не отличается от остальных файлов: его можно открыть, посмотреть и даже отредактировать. За то, какое количество команд хранится в истории, отвечает переменная окружения HISTFILESIZE. Если она выставлена, то берётся указанное в ней число, иначе история не обрезается и файл .bash_history растёт "бесконечно".
$ tail .bash_history rm -r one/ env HOME=/tmp cd pwd cd echo $HOME export HOME=/tmp id exit id
Посмотреть историю можно и более простым способом, достаточно выполнить команду history.
$ history
1 docke rps
2 free -m
3 docker ps
4 docker exec -it 8678a6520641 bash
5 ls
6 exit
7 docker ps
8 docker exec -it 1209b6e5ce6b bash
...
Эта команда выведет содержимое файла .bash_history, добавив слева номер. Если набрать history 5, то отобразятся только 5 последних введённых команд. Используя номер команды в выводе history, можно выполнить повторный запуск без необходимости набирать или копировать команду из истории.
$ !2
# Эта команда имела второй номер в листинге выше
free -m
total used free shared buff/cache available
Mem: 1998 1532 75 21 390 227
Swap: 0 0 0
При необходимости историю всегда можно погрепать:
$ history | grep export 174 export HOME=/tmp 183 history | grep export
Последнее, и самое интересное — реверсивный поиск. Если нажать комбинацию Ctrl + r, то запустится специальный поиск по истории. Он ожидает ввода символов и сразу отображает ближайшую команду, в которой эти символы встречаются. Если найденное соответствие вас не устроило, то повторное нажатие Ctrl + r выберет следующее соответствие из истории.
На скриншоте выше продвинутая версия этого поиска, работающая через утилиту fzf