В операционной системе Linux в терминальном режиме есть возможность посмотреть историю команд. Все последние команды (около 1000 по умолчанию), которые вводились в командной строке сохраняются, их можно вывести на экран. Чтобы не вводить сложные названия утилит вместе с опциями, система позволяет вернуть раннее введенную команду и выполнить ее еще раз.
Содержание
Синтаксис
Рассмотрим синтаксис утилиты history (History Library).
history параметры файл
Основные параметры:
- -a - включить в файл bash новый запрос;
- -c - удалить историю введенных раннее команд;
- -d - очистить из истории определенную строку с заданным идентификатором;
- -n - читает все запросы из файла и добавляет в текущyю сессию;
- -r - читает все команды из файла и добавляет в текущий список.
- -w - записывает всю историю в файл, который указан в качестве аргумента. Например "history -w newfile".
Файл - это необязательный аргумент, его можно не указывать.
В качестве аргументу можно указать в какой документ записать запрос.
По умолчанию все записывается в домашний каталог пользователя в файл .bash_history. Если нужно изменить максимальный размер файла, то все настройки хранятся в ".bashcr".
В документе bashcr видим:
- "HISTSIZE=1000" - максимальное число строк, хранящихся в памяти оболочки;
- "HISTFILESIZE=2000" - максимальное число записей, хранящихся в файле.
Примеры
Для первого примера, посмотрим всю историю последних 1000 строк. Введем название утилиты без аргументов.
history
Визуально смотреть текст из 1000 строк сразу неудобно, поэтому покажем на экране 5 последних запросов. Синтаксис будет выглядеть так:
На скриншоте видим два столбика:
- 501, 502,503 - номер запроса, согласно истории;
- cd .., clear - название запроса.
Выполним команду под номером 504 "clear" очистка экрана. Для этого введем восклицательный знак и номер.
Внимание! Написать все нужно слитно без пробела.
Чтобы удалить всю историю, необходимо использовать ключ "-c".
history -c
Если нужно очистить только какую-нибудь определенную команду, то пишем название утилиты с ключом "-d". Например удалим запрос под номером 503.
history -d 503
Для поиска введенных раннее команд, можно воспользоваться дополнительной утилитой grep. Найдем все, что совпадает с "ls".
history | grep ls
Другой вариант выполнить поиск, использовать конструкцию "!?".
!?ifconfig
Более простой способ поиска по истории через оболочку терминала. Можно нажать горячие клавиши Ctrl + r. На экране появиться надпись: "(reverse-i-search)". Набирая символы с клавиатуры - оболочка будет выводить на экран подходящие команды из истории.
Найдем ifconfig.
Если нажать на клавишу вверх в терминале Linux - оболочка покажет последний запрос. Таким образом можно перебирать введенные раннее команды.