Команда history в Linux (история Bash) ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
10.12.2024
No categories

Команда history в Linux (история Bash)

Команда history в Linux – это мощный инструмент для пользователей, работающих с оболочкой Bash. Она хранит информацию о ранее выполненных командах, позволяя пользователям просматривать, вспоминать и даже повторно выполнять команды, не набирая их снова. Это может значительно повысить производительность, поскольку экономит время и снижает вероятность ошибок при повторном наборе длинных команд.

Что такое история Bash?

Bash, как и многие другие оболочки, хранит записи о введенных вами командах в файле истории. В большинстве дистрибутивов Linux эта история хранится в файле .bash_history в домашней директории каждого пользователя (~/.bash_history). По умолчанию каждая команда, введенная в оболочку, добавляется в этот файл по завершении сеанса, что позволяет пользователям повторно обращаться к командам, введенным в предыдущих сеансах.

Базовое использование команды history

Команда history проста в использовании и предоставляет различные способы просмотра и взаимодействия с историей команд. Вот некоторые из наиболее распространенных способов использования:

  • Отобразить историю команд:
    Выполнение команды history без каких-либо аргументов отобразит список последних введенных вами команд с номером рядом с каждой из них.

    history

    Это отобразит последние n команд, где n обычно составляет около 500 или 1000 в зависимости от конфигурации вашей системы.

  • Укажите количество команд:
    Вы можете ограничить количество отображаемых команд, указав число. Например, чтобы просмотреть последние 10 команд:

    history 10

Вызов команд из истории

Команда history также позволяет легко вызывать и повторно использовать ранее выполненные команды:

  • Использование символа ! (восклицательный знак):
    Это позволяет повторно выполнять команды непосредственно из истории:

    • !! – Повторное выполнение последней выполненной команды.
      !!
    • !n – Выполнение команды в позиции n в списке истории.
      !42

      Повторное выполнение команды, находящейся под номером 42 в истории.

    • !string – Находит последнюю команду, начинающуюся с string, и выполняет ее.
      !git

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

  • Использование клавиш со стрелками:
    Вы можете использовать клавиши со стрелками вверх и вниз для прокрутки предыдущих команд прямо в терминале. Это особенно полезно для быстрого поиска последних команд.

Редактирование и изменение истории

  • Удаление определенных записей:
    Вы можете удалить определенную команду из истории, используя команду history -d, за которой следует номер строки:

    history -d 42

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

  • Очистить всю историю:
    Чтобы удалить все команды из файла истории, используйте:

    history -c

    Это очистит историю для текущего сеанса. Чтобы также очистить сохраненную историю в ~/.bash_history, перезапишите этот файл:

    history -c && > ~/.bash_history

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

Поведение истории можно настроить с помощью переменных окружения и параметров конфигурации в файлах ~/.bashrc или ~/.bash_profile:

  • HISTSIZE:
    Эта переменная определяет, сколько команд будет храниться в памяти во время сеанса. Например, чтобы сохранить 1000 команд:

    export HISTSIZE=1000
  • HISTFILESIZE:
    Эта переменная задает количество строк (команд), которые сохраняются в файле ~/.bash_history. Например:

    export HISTFILESIZE=2000

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

  • HISTCONTROL:
    Эта переменная определяет способ хранения команд. Общие опции включают:

    • ignoredups – предотвращает добавление дубликатов команд в историю.
    • ignorespace – Команды, начинающиеся с пробела, не добавляются в историю.
    • ignoreboth – Комбинирует ignoredups и ignorespace.

    Пример настройки HISTCONTROL на игнорирование дубликатов:

    export HISTCONTROL=ignoredups
  • HISTTIMEFORMAT – ФОРМАТ ВРЕМЕНИ:
    Чтобы включить временную метку в каждую запись истории, установите HISTTIMEFORMAT:

    export HISTTIMEFORMAT="%F %T "

    Это добавит к каждой записи истории дату (%F) и время (%T).

Поиск в истории

  • Обратный поиск с помощью Ctrl r:
    Один из самых эффективных способов поиска команды в истории – использование Ctrl r. Начните вводить часть команды, и Bash будет находить совпадающие команды по мере ввода. Повторное нажатие Ctrl r приведет к циклическому просмотру предыдущих совпадений.
  • Grep с историей:
    Вы также можете использовать grep для поиска в истории:

    history | grep git

    Это покажет все команды, содержащие слово git.

Заключение

Команда history является основополагающей частью работы с оболочкой Bash, предлагая способ отслеживания прошлых команд и оптимизации рабочих процессов. Благодаря возможности вспоминать, искать и настраивать историю команд, она помогает сделать работу в командной строке более эффективной и удобной. Освоив историю и связанные с ней возможности, пользователи смогут значительно ускорить свою работу в среде Linux.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills