Linux команды · 4 min read · Sep 17, 2025
Учебник по команде history в Linux для начинающих (8 примеров)

Если ваша работа связана с запуском инструментов и скриптов в командной строке Linux, я уверен, что вы каждый день выполняете множество команд. Тем, кто нов в командной строке, стоит знать, что существует инструмент - названный history - который дает вам список команд, которые вы выполняли ранее.
В этом учебнике мы обсудим основы команды history, используя несколько простых для понимания примеров. Но прежде чем мы это сделаем, стоит упомянуть, что все примеры были протестированы на машине с Ubuntu 16.04LTS.
Команда history в Linux
Если вы знаете, как эффективно использовать историю команд, вы можете сэкономить много времени на ежедневной основе. Ниже приведены некоторые примеры в формате вопросов и ответов, которые должны дать вам хорошее представление о том, как вы можете использовать команду history в своих интересах.
Вопрос 1. Как работает команда history?
Основное использование простое - просто выполните команду ‘history’.
history
Таким образом, вы можете видеть, что ваши ранее выполненные команды отображаются в выводе. Обратите внимание, что я использовал команду ‘ more ‘, чтобы убедиться, что вывод приостановлен на первой странице (полный вывод ‘history’ обычно очень длинный).
Вопрос 2. Как сделать так, чтобы history отображала дату и время?
Если вы хотите, чтобы команда history отображала дату и время выполнения каждой команды, вы можете сделать это, экспортировав переменную HISTTIMEFORMAT следующим образом:
export HISTTIMEFORMAT="%F %T: "Вот и все. Теперь, когда вы выполните команду ‘history’, вы увидите информацию о дате и времени в выводе.

Если вы видите, что дата и время одинаковы для всех команд, следующее объяснение должно прояснить ситуацию:
Если вы установите HISTTIMEFORMAT в bash, ваши новые записи будут храниться в файле истории с временной меткой, более старые команды, которые не имеют временной метки (те, которые были до того, как вы когда-либо установили HISTTIMEFORMAT), будут отображать одну и ту же дату-временную метку (я предполагаю, что это та, которая была первой записью с реальной временной меткой).
Эта проблема должна решиться сама собой после того, как ваша полная история будет обновлена через несколько дней.
Вы можете посмотреть в ~/.bash_history, чтобы увидеть, какая первая строка имеет временную метку. Это строки, начинающиеся с #, за которыми следует (в данный момент) 10-значное число.Вопрос 3. Как сделать так, чтобы history перестала записывать команды?
Если возникнет ситуация, когда вы не хотите, чтобы система сохраняла вашу историю команд, вы можете сделать это, установив переменную HISTSIZE. Просто экспортируйте ее со значением ноль, и все будет готово.
Смотрите следующий пример:
Таким образом, вы можете видеть, что выполнение команды ‘history’ теперь не дало никаких результатов.
Обратите внимание, что также существует переменная HISTFILESIZE. Вот разница между ними:
HISTSIZE - это количество строк или команд, которые хранятся в памяти в списке истории, пока ваша сессия bash продолжается.
HISTFILESIZE - это количество строк или команд, которые (а) разрешены в файле истории при запуске сессии и (б) хранятся в файле истории в конце вашей сессии bash для использования в будущих сессиях.Вопрос 4. Как сделать так, чтобы history не записывала одну команду?
Это можно сделать, установив переменную HISTCONTROL в ‘ignorespace’. Вы можете сделать это следующим образом:
export HISTCONTROL=ignorespaceТеперь, когда вы выполняете команду, которую не хотите записывать в историю, просто выполните ее с пробелом перед ней.
Вопрос 5. Как выполнить быстрый поиск в истории?
Конечно, вы можете использовать команду grep для поиска определенных ключевых слов или команд в выводе, производимом командой history. Однако существует также гораздо более быстрый метод: обратный поиск.
Это довольно просто - все, что вам нужно сделать, это нажать CTRL+R, находясь в командной строке, и вы увидите, как ваш запрос превращается во что-то вроде этого:

Теперь введите ключевое слово, которое вы хотите найти, и вы увидите соответствующие предложения из истории справа. Например, я ввел ‘man’ (без кавычек), и первым результатом, который я получил, было ‘man apropos’.

Если это не то, что вы ищете, вы можете получить следующий подходящий результат, нажав CTRL+R снова. Таким образом, в моем случае следующим результатом был ‘man find search.’

Вы можете продолжать искать таким образом. Как только вы получите нужный результат, просто нажмите клавишу вправо, и вы получите всю команду в вашем запросе.

Теперь вы можете выполнить эту команду или использовать ее любым способом, который вам нужен.
Вопрос 6. Как выполнить предыдущую команду?
Существует два простых способа, с помощью которых вы можете выполнить последнюю выполненную команду: нажмите CTRL+P или выполните следующую команду:
!!Не верите (особенно второму способу)? Попробуйте это.
Если требуется быстро выполнить предпоследнюю команду, вы можете сделать это следующим образом:
!-1И так далее.
Вопрос 7. Как сделать так, чтобы history игнорировала дублирующиеся записи в выводе?
Это можно сделать, установив переменную HISTCONTROL в ‘ignoreboth’ и ‘erasedups’. Вы можете сделать это следующим образом:
echo HISTCONTROL=ignoreboth:erasedupsТеперь, когда вы выполните команду history, вывод не будет содержать дубликатов.
Вопрос 8. Как очистить историю?
Если вы хотите очистить существующую историю, чтобы начать заново, используйте опцию командной строки -c.
history -cЗаключение
Вы, вероятно, согласитесь, что history - это очень важная команда, о которой вам следует знать. В этом учебнике мы обсудили несколько важных советов/приемов, чтобы получить максимальную пользу от этого инструмента. После того как вы попрактикуетесь в этом, обратитесь к странице man этого инструмента для получения дополнительной информации.
Get new posts in your inbox
No spam. Unsubscribe anytime.