Убираем повторяющиеся команды в терминале MacOS

История команд в терминале — полезная вещь, но со временем она может превращаться в беспорядочный список повторов. В macOS по умолчанию используется оболочка Zsh, и она позволяет легко настроить фильтрацию дубликатов, чтобы одинаковые команды не засоряли историю.

В этой статье разберём, как отключить сохранение повторяющихся строк и сделать историю чище и удобнее.


Почему в истории появляются дубликаты

Когда вы несколько раз подряд запускаете одну и ту же команду, Zsh сохраняет каждый вызов отдельно:

ls
ls
ls

В результате история раздувается, и искать нужные команды становится сложнее. Однако Zsh поддерживает специальные опции, позволяющие автоматически удалять дубликаты или просто не записывать их.


Отключение дубликатов истории в Zsh (по умолчанию в macOS)

Чтобы изменить поведение истории, нужно добавить несколько опций в файл настроек оболочки.

1. Откройте файл .zshrc

💻
BASH
nano ~/.zshrc

2. Добавьте настройки, убирающие дублирующиеся команды

💻
.zshrc
# Не сохранять повторяющиеся команды
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_ALL_DUPS

# Удалять дубли перед сохранением
setopt HIST_SAVE_NO_DUPS

# Не сохранять команды, начинающиеся с пробела
setopt HIST_IGNORE_SPACE

# Убирать лишние пробелы в командах
setopt HIST_REDUCE_BLANKS

3. Примените изменения

💻
BASH
source ~/.zshrc

Теперь одинаковые команды будут отображаться в истории только один раз — самая последняя версия.


Настройка аналогичного поведения в Bash

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

1. Откройте файл настроек

💻
BASH
nano ~/.bash_profile

2. Добавьте строки:

💻
.bash_profile
# Не записывать дубликаты
export HISTCONTROL=ignoredups:erasedups

# Корректное ведение истории между сессиями
shopt -s histappend

3. Примените изменения:

💻
BASH
source ~/.bash_profile

Итог

Удаление дубликатов из истории терминала — простой способ сделать работу в macOS удобнее. Достаточно добавить несколько опций в .zshrc или .bash_profile, и история будет автоматически очищаться от повторов. Это особенно полезно тем, кто активно работает в терминале и использует историю для быстрого доступа к ранее выполненным командам.

Обновлено 03.12.2025
comments

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *