<Предыдущая | Содержание: | Следующая>
История поиска
В любой момент мы можем просмотреть содержимое списка истории:
[я @ linuxbox ~] $ история | меньше
[я @ linuxbox ~] $ история | меньше
По умолчанию bash сохраняет последние 500 введенных нами команд, хотя большинство современных дистрибутивов устанавливают это значение равным 1000. Мы увидим, как изменить это значение в следующей главе. Допустим, мы хотим найти команды, которые мы использовали для вывода списка / USR / бен. Один из способов сделать это:
[я @ linuxbox ~] $ история | grep / usr / bin
[я @ linuxbox ~] $ история | grep / usr / bin
И предположим, что среди наших результатов мы получили строку, содержащую интересную команду вроде этой:
88 ls -l / usr / bin> ls-output.txt
Число «88» - это номер строки команды в списке истории. Мы могли бы использовать это немедленно, используя другой тип расширения, называемый расширение истории. Чтобы использовать нашу открытую строку, мы могли бы сделать это:
[я @ linuxbox ~] $ ! 88
[я @ linuxbox ~] $ ! 88
bash расширит "! 88" до содержимого восемьдесят восьмой строки в списке истории. Есть и другие формы расширения истории, о которых мы поговорим чуть позже.
bash также предоставляет возможность постепенного поиска в списке истории. Это означает, что мы можем указать bash выполнять поиск в списке истории по мере ввода символов, при этом каждый дополнительный символ дополнительно уточняет наш поиск. Чтобы начать инкрементный поиск, нажмите Ctrl-r, а затем введите искомый текст. Когда вы его найдете, вы можете либо нажать Enter, чтобы выполнить команду, либо нажать Ctrl-j, чтобы скопировать строку из списка истории в текущую командную строку. Чтобы найти следующее вхождение текста (перемещение «вверх» по списку истории), нажмите Ctrl-r еще раз. Чтобы выйти из поиска, нажмите Ctrl-g или Ctrl-c. Здесь мы видим это в действии:
[я @ linuxbox ~] $
[я @ linuxbox ~] $
Первое нажатие Ctrl-р:
(обратный поиск) `':
(обратный поиск) `':
Приглашение изменится, чтобы указать, что мы выполняем обратный инкрементный поиск. Это «наоборот», потому что мы ищем «сейчас» в какое-то время в прошлом. Далее мы начинаем вводить текст для поиска. В этом примере «/ usr / bin»:
(обратный поиск) `/ USR / бен': ls -l / usr / bin> ls-output.txt
(обратный поиск) `/ USR / бен': ls -l / usr / bin> ls-output.txt
Сразу же поиск возвращает наш результат. С нашим результатом мы можем выполнить команду, нажав Enter, или мы можем скопировать команду в нашу текущую командную строку для дальнейшего редактирования, нажав Ctrl-J. Скопируем. Нажмите Ctrl-J:
[я @ linuxbox ~] $ ls -l / usr / bin> ls-output.txt
[я @ linuxbox ~] $ ls -l / usr / bin> ls-output.txt
Наша командная строка возвращается, и наша командная строка загружается и готова к работе! В таблице ниже перечислены некоторые нажатия клавиш, используемые для управления списком истории:
Таблица 8-5: Команды истории
Ключевое действие
Ключевое действие
Ctrl-p Переход к предыдущей записи в истории. То же действие, что и стрелка вверх. Ctrl-n Переход к следующей записи в истории. То же действие, что и стрелка вниз. Alt- <Перейти в начало (вверху) списка истории.
Alt-> Перейти в конец (низ) списка истории, т. Е. В текущую командную строку.
Ctrl-r Обратный инкрементный поиск. Выполняет пошаговый поиск из текущей командной строки вверх по списку истории.
Alt-p Обратный поиск, без инкремента. С помощью этой клавиши введите строку поиска и нажмите клавишу ВВОД перед выполнением поиска.
Alt-n Поиск вперед без инкремента.
Ctrl-o Выполнить текущий элемент в списке истории и перейти к следующему. Это удобно, если вы пытаетесь повторно выполнить последовательность команд в списке истории.