Гид по технологиям

Как очистить историю Bash на Mac и Linux

5 min read Терминал Обновлено 01 Dec 2025
Очистить историю Bash на Mac и Linux
Очистить историю Bash на Mac и Linux

Редактирование файла истории Bash в macOS

Быстрые ссылки

  • Очистить историю текущей сессии

  • Полностью удалить историю Bash

  • Очистить экран терминала, чтобы выглядеть как новая сессия

Нажмите стрелку вверх в командной строке Mac или Linux, и вы увидите последнюю введённую команду. Продолжайте нажимать — вы сможете вернуться назад на дни, месяцы или даже годы.

Это удобно: ошибка в длинной команде — нажали вверх, исправили. Нужна команда для повторного подключения к серверу — опять же нажали вверх. Но в истории часто остаются чувствительные данные (например, случайно набранные пароли). Как очистить историю правильно?

Короткий ответ — двумя командами:

history -c

затем

rm ~/.bash_history

Ниже — подробности и дополнительные варианты.

Почему важно очищать историю

История команд удобна, но может содержать секреты: пароли, токены, пути к приватным ключам, команды с чувствительными флагами. Если кто-то получает доступ к вашему аккаунту или к файлам системы, он может прочитать эти команды. Очистка помогает снизить риск утечки информации.

Важно: удаление ~/.bash_history не удаляет автоматически логи других систем (аудит, rsyslog, централизованные сборщики логов) — с ними нужно работать отдельно.

Очистить историю текущей сессии

В Bash история разделена на две части: текущая сессия (память процесса оболочки) и долгосрочный файл истории (обычно ~/.bash_history). Команда

history -c

очищает историю именно текущей сессии — то есть список команд в памяти. Это предотвратит запись текущего списка команд в файл истории при завершении сессии.

Вывод команды history в терминале

Пояснение:

  • history — встроенная команда Bash, которая показывает или управляет списком команд.
  • Опция -c очищает этот список в памяти.

Если вы хотите не только очистить память, но и убедиться, что файл перезаписан пустым содержимым прямо сейчас, выполните после history -c:

history -w

Команда history -w перезапишет файл истории текущим (в данном случае пустым) списком.

Полностью удалить историю Bash

Чтобы удалить весь файл истории, можно удалить сам файл:

rm ~/.bash_history

Удаление файла ~/.bash_history

Пояснения:

  • rm — стандартная команда для удаления файлов в UNIX-подобных системах.
  • ~/.bash_history — текстовый файл, куда Bash обычно пишет историю.

Альтернатива удалению — открыть файл и удалить только конкретные строки руками (например, если вы хотите убрать только один инцидент). На macOS можно сделать:

open ~/.bash_history

Это откроет файл в вашем редакторе по умолчанию. На Linux используйте предпочитаемый редактор, например:

nano ~/.bash_history

# или

vim ~/.bash_history

# или

gedit ~/.bash_history

После удаления или редактирования сохраните файл и перезапустите оболочку — удалённые строки больше не будут появляться.

Очистить экран терминала

Иногда нужно просто визуально скрыть предыдущие команды (для снимков экрана или если рядом кто‑то смотрит через плечо). Для этого есть команда:

clear

Команда clear очищает экран терминала

Это чисто косметическая операция: вывод становится невидимым, но при прокрутке вверх предыдущие результаты по-прежнему доступны (скроллбэк сохраняется).

Альтернативные подходы и конфигурации

Если вы хотите управлять историей более предсказуемо, рассмотрите следующие опции конфигурации (вставляйте в ~/.bashrc или ~/.bash_profile):

  • Отключить запись истории в файл:
export HISTFILE=/dev/null
  • Ограничить размер истории:
export HISTSIZE=0
export HISTFILESIZE=0
  • Игнорировать команды, начинающиеся с пробела, и дублирование:
export HISTCONTROL=ignorespace:erasedups
  • Не сохранять команды с определёнными паттернами:
export HISTIGNORE="ls:cd:pwd:exit"

Замечание: менять эти настройки стоит осторожно — они убирают полезность истории. Для временного сеанса можно экспортировать переменные прямо в терминале.

Когда очистка истории не сработает

  • Вы используете другую оболочку (например, zsh), у которой свои файлы истории (~/.zsh_history).
  • Системные журналы или аудит (auditd, rsyslog, централизованные логгеры) могут сохранять выполнение команд независимо от файла оболочки.
  • Если вы используете screen или tmux, там есть собственная прокрутка и буферы, которые не зависят от ~/.bash_history.
  • Команды, запускавшиеся через sudo, могут оставлять записи в системных логах.

Всегда учитывайте инфраструктуру: удаление ~/.bash_history — полезная мера, но не универсальная защита.

Практики безопасности и жёсткая конфигурация

Рекомендации для безопасного использования терминала:

  • Не вводите пароли в виде открытого текста в командной строке — используйте интерактивный ввод или защищённые переменные окружения.
  • Настройте HISTCONTROL и HISTIGNORE, чтобы минимизировать случайные утечки.
  • Рассмотрите хранение секретов в менеджерах секретов (vaults) и использование SSH-агента вместо ввода приватных ключей в командной строке.
  • Если необходимо удалять историю систематически, добавьте в профиль сценарий, который очищает или перезаписывает файл при выходе.

Риск и смягчение:

  • Риск: компрометация аккаунта — истории команд раскрывают активность и возможные секреты.
  • Смягчение: ограничения на запись истории, использование менеджеров секретов и централизованная политика логирования.

Чек-листы по ролям

Разработчик:

  • Убедиться, что не вводите секреты напрямую в командной строке.
  • Перед публикацией скриншотов выполнить clear и проверить ~/.bash_history.

Системный администратор:

  • Проверить политики логирования и аудит.
  • При необходимости очищать истории пользователей в согласованном порядке и вести учёт действий.

Аудитор безопасности:

  • Оценить, где кроме ~/.bash_history могут храниться записи команд.
  • Рекомендовать изменения в профилях оболочек и централизованном логировании.

Краткий глоссарий в одну строку

  • Bash: Bourne Again Shell, стандартная командная оболочка в многих UNIX-подобных системах.
  • ~/.bash_history: пользовательский файл истории команд Bash.
  • history -c: очищает историю команд текущей сессии в памяти.
  • history -w: перезаписывает файл истории текущей сессией.
  • rm: команда удаления файлов в UNIX.

Приватность и нормативы

Если история может содержать персональные данные, подходите к удалению и хранению аккуратно: учёт проведения операций, минимизация хранения и, при необходимости, выполнение процедур в соответствии с внутренними политиками и требованиями GDPR.

Резюме

Удаление истории Bash — простая, но важная мера безопасности: используйте history -c для очистки текущей сессии и rm ~/.bash_history или history -w для удаления или перезаписи файла истории. Для долгосрочной безопасности настройте переменные окружения и используйте менеджеры секретов вместо ввода чувствительных данных прямо в командной строке.

Ключевые команды (напоминание):

history -c
history -w
rm ~/.bash_history
clear

Примечание: проверьте, не сохраняются ли команды в других логах или оболочках, прежде чем полагаться только на удаление ~/.bash_history.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как быстро удалить несколько приложений на Android
Android.

Как быстро удалить несколько приложений на Android

Как искать пустую категорию в Outlook
Outlook

Как искать пустую категорию в Outlook

Как изменить User Agent в Safari на macOS
Браузеры

Как изменить User Agent в Safari на macOS

Исправить 0x80072F30 в Microsoft Store
Windows

Исправить 0x80072F30 в Microsoft Store

Как стримить на Twitch с PS5
Гайд

Как стримить на Twitch с PS5

Ошибка Microsoft Store 0x80070005 — как исправить
Windows

Ошибка Microsoft Store 0x80070005 — как исправить