🎩 Bash: История команд — history.

Работа с историей команд в bash является очень удобным инструментом, который позволяет быстро повторять ранее введенные команды.

Вот основные способы работы с историей, включая примеры:

Просмотр истории команд.

history — Если просто ввести команду history, вы получите список всех команд, которые были введены в текущей сессии или ранее, в зависимости от настроек.

$ history

Эта команда выведет список всех команд, которые вы вводили в текущей сессии и/или ранее, в зависимости от настроек.

Хранится список в файле .bash_history, который расположен в корневом каталоге пользователя ~/.bash_history.

$ cat .bash_history

Выполнение команд из истории.

!! — Выполнить последнюю введённую команду.

!n — Выполнить команду с номером n из списка истории, который вы видите при помощи команды history. Например, !42 выполнит 42-ю команду.

!-n — Выполнить команду, которая была введена n команд назад. Например, !-2 выполнит команду, введённую два раза ввода в консоль назад.

!string — Выполнить последнюю команду, начинающуюся с string. Например, если последняя команда была echo hello, команда !echo выполнит её снова.

Выполнение последней команды.

$ !!

Выполните последнюю введенную команду.

Например, если последняя команда была ls -l, то !! выполнит её снова.

Выполнение команды по номеру.

$ !42

Если вы видите, что 42-я команда в списке — это git status, то !42 выполнит git status.

Выполнение команды, введенной n команд назад.

$ !-2

Эта команда выполнит команду, которую вы вводили два раза ввода в консоль назад.

Выполнение крайней команды, начинающейся с заданной строки.

$ !git

Если крайняя команда, начинающаяся с git, была git commit, то это выполнит git commit.

Поиск по истории.

Ctrl + r — Запустить поиск в обратном направлении. Нажимая комбинацию Ctrl + r, вы можете начинать вводить текст, и bash будет искать команды, которые содержат этот текст. Нажмите Ctrl + r повторно, чтобы найти предыдущие совпадения.

Ctrl + s — В некоторых системах это может позволить вам искать вперёд, однако в большинстве значений по умолчанию эта комбинация обычно замораживает терминал. Для её использования может потребоваться отключить функцию управления терминалом.

Поиск в обратном направлении.

Нажмите Ctrl + r. Начнется поиск команд в обратном порядке. Введите часть команды, и вы увидите совпадения. Если вы хотите найти предыдущие совпадения, нажмите Ctrl + r снова.

Пример поиска по строке git:

После нажатия Ctrl + r, введите git, вы увидите, например, git status, и если нажмете Ctrl + r снова, увидите git commit.

Настройки истории.

Файл хранения истории: История команд по умолчанию сохраняется в файле ~/.bash_history.

Вы можете изменить этот файл с помощью переменной HISTFILE:

export HISTFILE=~/my_history_file

Установка количества сохраняемых команд.

Количество команд в истории: HISTSIZE и HISTFILESIZE определяют, сколько команд будет храниться в памяти и в файле соответственно.

Например, чтобы хранить 1000 команд, в вашем файле ~/.bashrc добавьте:

export HISTSIZE=1000
export HISTFILESIZE=2000

Это задаст количество команд, которые будут храниться в памяти и в файле истории.

Игнорирование дубликатов.

Опции для управления поведением истории: Пользователь может настроить такие параметры, как игнорирование дубликатов или игнорирование некоторых команд.

Чтобы избежать хранения дубликатов и игнорирования команд, начинающихся с пробела, добавьте в ~/.bashrc:

export HISTCONTROL=ignoredups:ignorespace

Автоматическое сохранение истории.

Сохранять историю сразу после выполнения команды: По умолчанию история сохраняется при выходе из оболочки.

Установите следующую переменную в ~/.bashrc, чтобы команды добавлялись в историю сразу после их выполнения:

export PROMPT_COMMAND="history -a"

Очистка и удаление истории.

history -d n — Удалить строку с номером n из истории.

history -c — Очистить всю историю текущей сессии.

rm ~/.bash_history — Удаление файла с историей в будущем. Чтобы изменения вступили в силу, выйдите из сессии или перезапустите оболочку.

Удаление конкретной команды.

$ history -d 42

Эта команда удалит 42-ю команду из вашей истории.

Очистка всей истории.

$ history -c

Это очищает историю текущей сессии.

Удаление файла истории.

$ rm ~/.bash_history

Удаляет файл истории. В следующей сессии история будет новой.

Использование истории в скриптах.

История можно также интегрировать в скрипты для автоматизации, читая файл ~/.bash_history и анализируя его содержимое для выполнения определённых действий на основе ранее введённых команд.

Например, для анализа или повторного выполнения команд:

#!/bin/bash
while read command; do
echo "Executing: $command"
eval "$command"
done < ~/.bash_history

Это простой скрипт, который прочитает каждую команду из истории и выполнит её.

Заключение.

Работа с историей команд в bash — это полезный функционал, который помогает значительно ускорить работу и упростить ввод повторяющихся команд. Используя эти команды и техники, вы сможете эффективно управлять своей историей в bash.

Оригиналы источников информации.

  1. younglinux.info «История команд и автодополнение».
image_printСКАЧАТЬ ВЕРСИЮ ДЛЯ ПЕЧАТИ

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *