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

Как очистить историю 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
Автор
Редакция

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

Пересылка почты Outlook ↔ Gmail: полное руководство
Почта

Пересылка почты Outlook ↔ Gmail: полное руководство

Как узнать, что пора менять батарейку AirTag
Гаджеты

Как узнать, что пора менять батарейку AirTag

Как удалить устройства из Google Home
Умный дом

Как удалить устройства из Google Home

Вернуть «Open command window here» в Windows 11
Windows

Вернуть «Open command window here» в Windows 11

Подключение Bluetooth-наушников к Wear OS
Гаджеты

Подключение Bluetooth-наушников к Wear OS

Запустить успешную страницу на Patreon
Монетизация

Запустить успешную страницу на Patreon