Terminal.app на macOS - стандартное приложение для работы с командной строкой. Обычно он просто открывается и работает, но иногда начинаются проблемы: окно не появляется после клика, программа мгновенно вылетает, при запуске показывает белый экран или зависает на пустой строке. Причины почти всегда связаны не с самим Terminal, а с настройками оболочки (zsh/bash) или профиля пользователя.
Разбираем, как диагностировать и починить.
Причины
Terminal - это просто оболочка окна, которая запускает командный интерпретатор (по умолчанию zsh с macOS Catalina, до этого - bash). Если Terminal падает, проблема обычно в одном из трёх мест:
- Битый файл конфигурации
~/.zshrc,~/.bash_profile,~/.profile,~/.zprofile. - Повреждённые настройки Terminal.app в
~/Library/Preferences/com.apple.Terminal.plist. - Проблема с самой оболочкой (например, Homebrew установил новый zsh и он конфликтует).
- Ошибочные права на
/tmp, домашнюю папку или~/Library. - Повреждение кэшей после обновления macOS.
- Конфликт с плагинами Oh My Zsh / Powerlevel10k.
- Отсутствие исполняемого бита на
/bin/zshили/bin/bash(редко).
Способ 1: запуск в безопасном режиме
Чтобы исключить плохой конфиг, запустим Terminal без загрузки пользовательских настроек.
- Откройте Terminal (если он всё же запускается).
- Введите:
zsh -f
Флаг -f запускает zsh без .zshrc. Если оболочка работает нормально - значит, проблема в конфиге.
- Проверьте файл
~/.zshrc:
cat ~/.zshrc
Последние добавленные строки - главные подозреваемые. Обычно это exports, пути к Homebrew, инициализация Node/Python-менеджеров.
- Временно переименуйте конфиг:
mv ~/.zshrc ~/.zshrc.backup
Перезапустите Terminal. Если всё запустилось - значит, дело в .zshrc. Откройте backup и удалите/закомментируйте подозрительные строки по очереди.
Способ 2: восстановление через TextEdit
Если Terminal не открывается вообще:
- Откройте Finder -> Переход -> Переход к папке (
Cmd+Shift+G). - Введите
~/и нажмите Enter. - Включите отображение скрытых файлов -
Cmd+Shift+.(точка). - Найдите файлы
.zshrc,.bash_profile,.zprofile. - Откройте их двойным кликом - они откроются в TextEdit.
- Сохраните копии где-нибудь на рабочем столе (как
.txt). - Удалите оригиналы или переименуйте в
.zshrc.backup.
Перезапустите Terminal. Если запустился - значит, проблема в конфиге.
Способ 3: сброс настроек Terminal.app
Сам Terminal.app хранит цвета, шрифты, профили окон в ~/Library/Preferences/com.apple.Terminal.plist. Если этот файл повреждён - приложение падает на старте.
- Закройте Terminal, если открыт.
- В Finder ->
Cmd+Shift+G-> введите~/Library/Preferences/. - Найдите
com.apple.Terminal.plist. - Переместите его на рабочий стол.
- Запустите Terminal заново.
Система создаст plist заново с дефолтными настройками. Вы потеряете кастомные темы и горячие клавиши, но приложение должно заработать. Если заработало - файл из backup больше не нужен.
Способ 4: проверка прав доступа
Иногда после переноса с другого Mac или восстановления из Time Machine права на домашнюю папку сбиваются.
- Если Terminal ну никак не открывается, используйте альтернативу - iTerm2 можно скачать на другом Mac и перенести. Или войдите под гостевой учёткой и откройте там Terminal.
- Проверьте владельца домашней папки:
ls -la ~
В начале строки должно быть ваше имя пользователя и staff. Если видите root - это проблема.
- Исправить:
sudo chown -R $(whoami):staff ~
- Проверьте права на
/tmp:
ls -la /tmp
Должно быть drwxrwxrwt (липкий бит). Если не так, исправьте:
sudo chmod 1777 /tmp
Способ 5: откат на bash или переключение оболочки
Если zsh сломался и не хочется разбираться - временно переключитесь на bash.
- Откройте Системные настройки -> Пользователи и группы.
- Щёлкните по имени пользователя, удерживая Control (правой кнопкой) -> Расширенные параметры.
- В поле «Оболочка входа» замените
/bin/zshна/bin/bash. - Сохраните, выйдите из системы и войдите снова.
- Откройте Terminal - теперь работает bash.
Это временное решение, чтобы разобраться с конфигом zsh не спеша. Bash на новых macOS устаревший (3.2), но для базовой работы хватит.
Способ 6: очистка Homebrew-zsh
Если вы ставили zsh через Homebrew, возможен конфликт версий.
- Проверьте, какой zsh запускается:
which zsh
Если путь /opt/homebrew/bin/zsh или /usr/local/bin/zsh - у вас Homebrew-версия. Системная - в /bin/zsh.
- Временно переключитесь на системную:
chsh -s /bin/zsh
- Перезапустите Terminal.
- Если работает - проблема в Homebrew-zsh. Переустановите:
brew reinstall zsh
Способ 7: удаление плагинов Oh My Zsh
Oh My Zsh и Powerlevel10k - частые виновники падений после обновления macOS. Плагин может вызывать функцию, которой больше нет.
- Временно отключите Oh My Zsh - в
.zshrcзакомментируйте строкуsource $ZSH/oh-my-zsh.sh. - Проверьте Terminal. Если работает - проблема в плагинах.
- Обновите Oh My Zsh:
cd ~/.oh-my-zsh && git pull
- Или переустановите полностью:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Обязательно сохраните .zshrc перед переустановкой - инсталлятор делает бэкап, но лишний не помешает.
Когда ничего не помогло
Если после всех попыток Terminal всё равно падает:
- Проверьте диск. Disk Utility -> First Aid на системном диске. Битые сектора могут вызывать crash любых приложений.
- Обновите macOS до актуальной версии. Системные настройки -> Общие -> Обновление ПО.
- Альтернативный терминал. Скачайте iTerm2 - бесплатный, стабильный, популярный. Он не зависит от Terminal.app и чаще всего запустится даже если родной сломан.
- Переустановка macOS поверх. Режим восстановления (удержание кнопки питания на Apple Silicon /
Cmd+Rна Intel) -> «Переустановить macOS». Данные и программы сохраняются. - Обращение в Apple Support - если Mac на гарантии и проблема появилась без видимой причины.
Профилактика
- Всегда делайте бэкап
.zshrcперед крупной правкой. Простоcp ~/.zshrc ~/.zshrc.backup- одна секунда, экономит часы. - Не копируйте dotfiles с чужих Mac вслепую. Особенно опасно, если у них Intel, а у вас Apple Silicon - пути к Homebrew разные (
/opt/homebrewvs/usr/local). - После крупного обновления macOS проверяйте плагины Oh My Zsh. Разработчики обычно быстро выпускают патчи.
- Не запускайте неизвестные скрипты в Terminal. Команды вроде
curl ... | shмогут испортить конфиг или установить вредонос. - Периодически чистите кэши - OnyX в разделе Maintenance умеет это автоматически.
- Для сложных .zshrc используйте git - храните конфиг в приватном репозитории, легко откатываться к рабочей версии.
Terminal почти всегда чинится без переустановки системы. Главный принцип - изолировать проблему: отдельно пробовать оболочку, отдельно приложение, отдельно профиль пользователя.
Комментарии (0)