Ответы:
Несколько возможностей:
Свяжите history-search-backward/forwardкоманды. Я считаю, что это ближе всего к тому, что вы хотите:
bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'Используйте историю i-search. Это, вероятно, связано с ^R. В пустой строке ^Rls<space>вы вернетесь к нему ls foo, затем ^Rснова перенесете вас к последней lsкоманде (или другой команде, lsнаходящейся где-то в строке) перед этим ls fooи т. Д ...
Привязать magic-spaceкоманду: bind SPACE:magic-space. Затем введите (в пустой строке) !ls<space>, и readline выполнит подстановку истории автоматически, оставив вас с ls foo.