9

Все знают (или должны знать!) что на терминале клавиши со стрелками вверх и вниз используются для навигации по истории используемых команд.

Когда вы используете терминал ежедневно, ваша история команд, вероятно, будет длинным списком множества различных команд, что сделает навигацию менее простой. В качестве примера, скажем, месяц назад я использовал iwconfig с определенным набором параметров (как я уже сказал, это всего лишь пример, мне не нужно сейчас с ним связываться), как я могу вспомнить этот конкретный команда со всеми ее аргументами и параметрами без необходимости перемещаться назад через сотни команд истории?

Я знаю, что могу использовать history чтобы получить список ранее использованных команд и !n чтобы повторно выполнить команду n в упомянутом списке, но когда история становится большой, это также не очень практично.

Идеально было бы иметь что-то, что позволило бы мне использовать некоторую горячую клавишу для навигации по истории, но только между экземплярами, которые содержат то, что я уже набрал в командной строке; так что в моем примере, после iwconfig , используйте некоторые ключи (возможно, PgUp и PgDown?) перемещаться только по записям, начинающимся с iwconfig.

Если это невозможно, было бы также неплохо напечатать список, как это делает history , но он будет содержать только то, что я уже набрал (я подозреваю, что в него включены history и команда grep , но я не уверен в правильном синтаксисе); но предыдущее решение горячей клавиши было бы лучшим вариантом.

4 ответа4

12

Вы можете искать в истории, используя Ctrl+R, а затем введите строку поиска (например, iw чтобы найти iwconfig). Затем вы все еще можете перемещаться по истории в этой точке с помощью клавиш со стрелками вверх и вниз, или снова нажмите Ctrl+R, чтобы найти предыдущий случай.

5

После небольшой практики я нашел, как использовать обходное решение.

Я выбрал правильный синтаксис для печати отфильтрованного списка, я сделал это с history | grep iwconfig (это было не так сложно в конце концов); с выходом я могу использовать !n с теперь легко читаемый отфильтрованный список.

3

Я не могу комментировать ответ Стефана, но обычно вы должны продолжать нажимать Ctrl+R. Смотрите эту страницу для получения дополнительной информации.

2

Нажмите Ctrl + R, затем введите строку поиска.

Если не тот, который вы ищете, то снова "Ctrl + R"

Если найдено, нажмите Enter, чтобы выполнить его. Или нажмите стрелку вправо ->, чтобы отредактировать его перед использованием.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .