Конечно, есть и механизм истории bash.  Если включено, bash будет хранить файл ~/.bash_history который содержит все введенные вами командные строки, вплоть до максимального количества записей.
Также есть команда fc для просмотра истории, не просматривая файл, например fc -l 1 | fgrep echo для вывода списка всех строк истории, содержащих echo где угодно.
Все это, конечно, можно настроить:
HISTFILE устанавливает имя файла истории вместо ~/bash_history 
HISTSIZE устанавливает максимальное количество записей, которые хранятся в истории (по умолчанию 500). 
HISTCONTROL позволяет немного настроить то, что хранится в истории, а что нет.  Установив HISTCONTROL=ignoreboth повторяющиеся записи сохраняются только один раз, и вы можете предотвратить отображение отдельных командных строк в истории, добавив пробел (например,  ls вместо ls). 
Мне нравится держать HISTSIZE настолько большим, насколько я могу, не замедляя свою машину, это обычно около 50000 или около того, прежде чем она становится заметной.  Таким образом, я могу вернуться на месяцы, если я не запомнил этот сложный трубопровод или что-то еще, и мне это нужно снова.
(Я сам не использую bash, только zsh, но из того, что я понял из man-страницы, механизм похож.  Кто-нибудь, пожалуйста, поправьте меня, если я ошибся в деталях. )