Table of Contents
bash Использование истории
bash поддерживает историю вводившихся команд. Этот список команд хранится в домашнем каталоге, в файле с именем <html>.bash_history</html>. Механизм истории помогает уменьшить объем ручного ввода, особенно в сочетании с командами редактирования командной строки.
Просмотреть содержимое истории можно с помощью команды:
history | less
По умолчанию bash хранит последние 500 введенных команд, однако в большинстве дистрибутивов этот предел увеличен.
Поступательный поиск
bash также дает возможность выполнять поступательный поиск в списке истории. Это означает, что bash может выполнять поиск в списке истории по мере ввода символов, уточняя результаты с вводом каждого нового символа.
Чтобы запустить поступательный поиск, нажимаем комбинацию CTRL+R и введите искомый текст. Закончив поиск, прожимаем ENTER, чтобы выполнить команду, или CTRL+J, чтобы скопировать запись из списка истории в текущую командную строку. Чтобы найти следующее вхождение текста (переместиться «вверх» по списку истории), нажмем CTRL+R еще раз. Чтобы завершить поиск, нажмите CTRL+G или CTRL+C.
В таблице ниже, перечислены некоторые комбинации клавиш, используемые для манипуляций со списком истории команд.
Команда | Описание команды |
---|---|
<html>CTRL+P</html> | Переход к предыдущей записи в истории. Действует так же, как клавиша со стрелкой вверх |
<html>CTRL+N</html> | Переход к следующей записи в истории. Действует так же, как клавиша со стрелкой вниз |
<html>ALT+«/html> | Переход в начало (к первой записи) списка истории |
<html>ALT+></html> | Переход в конец (к последней записи) списка истории |
<html>CTRL+R</html> | Инкрементальный поиск в обратном порядке. Поиск выполняется поступательно, от текущей записи вверх по списку истории |
<html>ALT+P</html> | Поиск в обратном порядке, не инкрементальный. При использовании этого вида поиска введите искомую строку и нажмите ENTER, и только после этого будет выполнен фактический поиск |
<html>ALT+N</html> | Поиск в прямом порядке, не поступательный |
<html>CTRL+O</html> | Выполните текущую команду в списке истории и перейдите к следующей. Эту комбинацию удобно использовать, если требуется повторно выполнить последовательность команд из списка истории |
Подстановка записей истории
Командная оболочка поддерживает специализированный вид подстановки —
подстановку записей из списка истории при использовании символа <html>!</html>. Этот вид подстановки имеет несколько разновидностей
Команды механизма подстановки записей истории
Последовательность | Действие |
---|---|
<html>!!</html> | Повторяет последнюю команду. Очень удобно использовать например когда забыли перед командой поставить sudo. Пишем sudo !! |
<html>!число</html> | Повторяет команду из записи с указанным номером |
<html>!строка</html> | Повторяет последнюю команду в списке истории, начинающуюся с указанной строки |
<html>!?строка</html> | Повторяет последнюю команду в списке истории, содержащую указанную строку |
<WRAP center round important 90%> Не используйте формы !строка и !?строка, если абсолютно точно не знаете содержимого записей в списке истории. </WRAP>
SCRIPT
В дополнение к истории команд в bash большинство дистрибутивов Linux включают программу script, которую можно использовать для записи в файлы целых сеансов работы с командной оболочкой. Базовый синтаксис команды:
script file_name
Где <html>file_name</html> — это имя файла для записи. Если файл не будет указан, сохранение сеанса будет произведено в файл <html>typescript</html>.