BASH Программирование

Использование и настройка истории команд Bash

Использование и настройка истории команд Bash
Оболочка bash - это среда командной строки по умолчанию, доступная в большинстве дистрибутивов Linux. Подобно всем средам оболочки, он хранит записи команд, которые ранее были выполнены пользователем. Эта запись сохраняется и поддерживается даже после перезапуска нашей системы.

Возможно, вы знаете основы использования команды history, но она может гораздо больше. История Bash обычно хранится в файле ~ /.bash_history. Это позволяет вам вызывать и повторно использовать сохраненную запись эффективным способом, чтобы максимально эффективно использовать функцию сохранения истории bash. Не только это, но вы также можете настраивать и контролировать вывод команды bash так, как хотите.

В этой статье мы объясним, как эффективно использовать и настраивать историю команд bash, чтобы максимально использовать ее возможности.

Мы использовали Debian 10 для выполнения команд и процедур, упомянутых в этой статье.

Использование истории команд bash

1. Просмотр истории bash

Чтобы просмотреть всю историю команд оболочки, вы можете запустить следующую команду в Терминале:

$ история

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

2. Поиск в истории вывода

Вы также можете выполнить поиск по определенному ключевому слову из вывода истории. Соедините команду history с grep и определенным ключевым словом для поиска команд, соответствующих указанному вами ключевому слову, следующим образом:

$ история | grep [ключевое слово]

Например, чтобы перечислить все команды, содержащие ключевое слово «найти», команда будет выглядеть так:

$ история | grep find

3. Просмотр последних n команд

Команда history по умолчанию отображает последние 1000 команд, выполненных пользователем. В случае, если вы хотите указать только определенное число, скажем, n номер последней выполненной команды, выполните следующую команду в Терминале:

$ история n

Например, чтобы перечислить последние 7 выполненных команд, команда будет выглядеть так:

$ history 7

Чтобы просмотреть количество последних n команд запуска, которые включают определенное ключевое слово, вы можете использовать следующий синтаксис:

$ история | ключевое слово grep | хвост -n

Примером этого может быть просмотр последних 4 выполненных команд с ключевым словом «java».

$ история | grep java | tail -n

4. Просмотр самых старых команд

Чтобы просмотреть самое старое количество n команд, вы можете использовать следующий синтаксис в Терминале:

$ история | голова -n

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

$ история | ключевое слово grep | голова -n

Примером этого может быть просмотр 4 самых старых выполненных команд с ключевым словом «java».

$ история | grep java | голова -4

5. Полностью очистить историю Bash

Чтобы удалить всю историю bash, выполните в Терминале следующую команду:

$ history -cw

Настройка истории команд bash

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

$ nano ~ /.bashrc

Когда вы закончите редактировать файл, используйте Ctrl + O и Ctrl + X, чтобы сохранить и закрыть редактор nano.

Затем выполните следующую команду, чтобы применить изменения:

$ source ~ /.bashrc

1. Добавить дату и метку времени в историю Bash

Если вы хотите отображать дату и время вместе с историей команд, вы можете сделать это, добавив следующую строку в ~ /.bashrc:

$ export HISTTIMEFORMAT = '% F,% T'

Теперь запустите история команда, и она покажет историю команд с соответствующими данными и отметкой времени.

2. Увеличение размера истории Bash

Bash по умолчанию сохраняет 500 команд в списке истории. Однако мы можем изменить это значение, используя значение HISTSIZE.

Чтобы просмотреть текущий размер истории bash, выполните в Терминале следующую команду:

$ echo $ HISTSIZE

Точно так же размер файла истории bash по умолчанию - 500. Это максимальное количество записей, содержащихся в файле истории.

Чтобы увеличить размер истории bash, скажем, 10000, добавьте следующие строки в ~ /.bashrc файл:

$ HISTSIZE = 10000
$ HISTFILESIZE = 10000

Чтобы проверить, успешно ли изменился размер истории bash, выполните в Терминале следующие команды:

$ echo $ HISTSIZE
$ echo $ HISTFILESIZE

3. Добавить команды Bash в файл истории

Когда сеанс bash закрыт, вы можете выбрать, перезаписывать или добавлять команды в файл истории, используя переменную histappend. Чтобы просмотреть текущие настройки, выполните в Терминале следующую команду:

$ shopt histappend

«On» в выводе показывает, что опция histappend включена, и команды будут добавлены в файл истории вместо перезаписи. Пока отображается «off», опция histappend отключена, и файл будет перезаписан.

Откройте ~ /.bashrc файл и:

Добавьте следующую строку, если вы хотите добавить команды в файл истории вместо перезаписи:

$ shopt -s histappend

Или добавьте следующую строку, если вы хотите отключить опцию добавления и хотите перезаписать файл при выходе:

$ shopt -u histappend

4. Немедленное сохранение истории Bash

Bash по умолчанию сохраняет сеанс в файл истории bash только после его завершения. Чтобы изменить это поведение по умолчанию и заставить его мгновенно сохранять каждую выполненную команду, вы можете использовать PROMPT_COMMAND.

Отредактируйте ~ /.bashrc и добавьте следующую строку:

$ PROMPT_COMMAND = 'история -a'

Теперь всякий раз, когда вы выполняете любую команду, она сразу же добавляется в файл истории.

5. История Control Bash

Мы можем контролировать способ сохранения нашей истории команд в bash через переменную HISTCONTROL. Мы можем указать его, чтобы игнорировать повторяющиеся записи и / или игнорировать записи с ведущими пробелами.

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

$ export HISTCONTROL = ignorespace: игнорировать дубликаты

6. Игнорировать определенные команды

Мы также можем контролировать, какие команды игнорировать в истории, используя переменную HISTIGNORE. Это список шаблонов, разделенных двоеточиями, в котором мы можем указать все команды, которые мы хотим игнорировать из истории.

Например, если мы не хотим перечислять основные команды, такие как history, ls, pwd, в списке истории, мы добавляем следующую строку в ~ /.bashrc файл:

$ export HISTIGNORE = "история: ls: pwd:"

С историей команд Linux bash вы можете делать гораздо больше, чем просто повторять старые команды. В этой статье мы узнали, как использовать историю bash для просмотра команд, которые выполнялись ранее, а также научились контролировать способ сохранения bash истории команд.

Бесплатные движки с открытым исходным кодом для разработки игр для Linux
В этой статье будет рассмотрен список бесплатных игровых движков с открытым исходным кодом, которые можно использовать для разработки 2D- и 3D-игр в L...
Shadow of the Tomb Raider для Linux Учебное пособие
Shadow of the Tomb Raider - двенадцатое дополнение к серии Tomb Raider - франшизе приключенческой игры, созданной Eidos Montreal. Игра была очень хоро...
Как увеличить FPS в Linux?
FPS означает Кадров в секунду. Задача FPS - измерить частоту кадров при воспроизведении видео или во время игры. Проще говоря, количество непрерывных ...