Команда history в Linux

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

Содержание

Синтаксис

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

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

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

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

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

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

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

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

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

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

Примеры

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

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 - оболочка покажет последний запрос. Таким образом можно перебирать введенные раннее команды.