Команда history в Linux

В операционной системе Linux в терминальном режиме есть возможность посмотреть историю команд. Все последние команды (около 1000 по умолчанию), которые вводились в командной строке сохраняются, их можно вывести на экран. Чтобы не вводить сложные названия утилит вместе с опциями, система позволяет вернуть раннее введенную команду и выполнить ее еще раз.

Синтаксис

Рассмотрим синтаксис утилиты history (History Library).

history параметры файл

Основные параметры:

  • -a — включить в файл bash новый запрос;
  • -c — удалить историю введенных раннее команд;
  • -d — очистить из истории определенную строку с заданным идентификатором;
  • -n — читает все запросы из файла и добавляет в текущyю сессию;
  • -r — читает все команды из файла и добавляет в текущий список.
  • -w — записывает всю историю в файл, который указан в качестве аргумента. Например «history -w newfile».

Файл — это необязательный аргумент, его можно не указывать.

В качестве аргументу можно указать в какой документ записать запрос.

По умолчанию все записывается в домашний каталог пользователя в файл .bash_history. Если нужно изменить максимальный размер файла, то все настройки хранятся в «.bashcr».

Конфигурация bashcr

В документе bashcr видим:

  • «HISTSIZE=1000» — максимальное число строк, хранящихся в памяти оболочки;
  • «HISTFILESIZE=2000» — максимальное число записей, хранящихся в файле.

Примеры

Для первого примера, посмотрим всю историю последних 1000 строк. Введем название утилиты без аргументов.

history

Визуально смотреть текст из 1000 строк сразу неудобно, поэтому покажем на экране 5 последних запросов. Синтаксис будет выглядеть так:

history 5

Пять последних запросов

На скриншоте видим два столбика:

  • 501, 502,503 — номер запроса, согласно истории;
  • cd .., clear — название запроса.

Выполним команду под номером 504 «clear» очистка экрана. Для этого введем восклицательный знак и номер.

Внимание! Написать все нужно слитно без пробела.

!504

Выполнение запроса

Чтобы удалить всю историю, необходимо использовать ключ «-c».

history -c

 

Если нужно очистить только какую-нибудь определенную команду, то пишем название утилиты с ключом «-d». Например удалим запрос под номером 503.

history -d 503

 

Для поиска введенных раннее команд, можно воспользоваться дополнительной утилитой grep. Найдем все,  что совпадает с «ls».

history | grep ls

 

Поиск bash

Другой вариант выполнить поиск, использовать конструкцию «!?».

!?ifconfig

 

Более простой способ поиска по истории через оболочку терминала. Можно нажать горячие клавиши Ctrl + r. На экране появиться надпись: «(reverse-i-search)». Набирая символы с клавиатуры — оболочка будет выводить на экран подходящие команды из истории.

Найдем ifconfig.

Поиск ifconfig

Если нажать на клавишу вверх в терминале Linux — оболочка покажет последний запрос. Таким образом можно перебирать введенные раннее команды.

Друзья помогите этому контенту стать доступнее в социальных сетях.

Не проходи мимо жмакни по кнопке возможно кому то еще он будет полезен!