Оказывается, это задокументированное поведение. На странице руководства ksh93:
Команды редактирования поиска Эти команды обращаются к истории ваших команд.
[count] k
Получить предыдущую команду. Каждый раз, когда вводится k, осуществляется доступ к предыдущей команде во времени.
[count] -
Эквивалентно k.
[count] [A
Если курсор находится в конце строки, он эквивалентен/
с ] строка , установленная в содержимое текущей строки. В противном случае он эквивалентенk
.
[count] j
Получить следующую команду. Каждый раз, когда вводитсяj
, выполняется доступ к следующей команде вперед во времени.
/
строка Поиск назад по истории предыдущей команды, содержащей строку . Строка заканчиваетсяRETURN 'или
NEW LINE'. Если строке предшествует^
, совпадающая строка должна начинаться с строки . Если строка пуста, будет использоваться предыдущая строка.
Примечание. При использовании стрелки вверх после ввода строки строка поиска будет привязана к началу строки, как если бы впереди было набрано ^
.
Пример:
$ ls[Up-Arrow]
эквивалент
$ [ESC]/^ls