User Tools

Site Tools


bash:использование_истории

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>.

bash/использование_истории.txt · Last modified: 2023/04/06 10:18 (external edit)