Как переключиться с Zsh на Bash в macOS
Быстрые ссылки
- Включить Bash в macOS через Terminal
- Переключить Zsh на Bash через System Settings
- Почему Bash в macOS устарел
Краткое содержание
- Apple использует Zsh по умолчанию в новых аккаунтах, но Bash всё ещё установлен и им можно пользоваться.
- Чтобы поменять оболочку на Bash, выполните в Terminal:
chsh -s /bin/bash, затем перезапустите окно Terminal. - Графический способ: Apple → System Settings → Users & Groups, Ctrl‑клик по профилю → “Advanced Options” → выбрать “Login Shell” → /bin/bash или /bin/zsh.

Зачем это нужно
Zsh стал стандартом начиная с macOS Catalina. Если вы привыкли к Bash (например, у вас есть скрипты или привычки, основанные на баше), удобнее поставить Bash как оболочку по умолчанию. При этом учитывайте, что системная версия Bash в macOS часто старая по сравнению с актуальной версией в сообществе.
Включение Bash через Terminal
Чтобы сменить оболочку для текущего пользователя через Terminal, выполните команду:
chsh -s /bin/bashСистема запросит пароль пользователя. После успешного ввода закройте окно Terminal и откройте его снова — теперь будет запускаться Bash.
Чтобы вернуть Zsh, используйте:
chsh -s /bin/zshКоманда cat /etc/shells покажет список оболочек, которые система считает допустимыми для входа:
cat /etc/shells
Графический способ через System Settings
- Нажмите на логотип Apple в левом верхнем углу экрана.
- Откройте System Settings → Users & Groups.
- Удерживая клавишу Ctrl, кликните по имени вашего пользователя в левой колонке и выберите “Advanced Options”.
- В поле “Login Shell” выберите “/bin/bash” для Bash или “/bin/zsh” для Zsh.
- Нажмите “OK” и перезапустите Terminal.


Как проверить, какая оболочка используется сейчас
- Посмотрите заголовок окна Terminal — там часто отображается имя оболочки.
- Введите команду:
echo $SHELLили
ps -p $$Эти команды вернут путь к текущей оболочке (например, /bin/bash или /bin/zsh).
Почему Bash на macOS может быть устаревшим
Apple по историческим причинам распространяет более старую версию Bash (например, Bash 3.2.57 в macOS Ventura), которая лицензирована под GPLv2. Современные версии Bash (например, 5.x) обычно распространяются под GPLv3 и не включены в систему по умолчанию. Zsh на момент выпуска Ventura имел версию 5.8.1.

Если вам нужна актуальная версия Bash, установите её через Homebrew:
brew install bashПосле установки добавьте новый путь в /etc/shells (требуется sudo) и затем выполните chsh -s /usr/local/bin/bash или chsh -s /opt/homebrew/bin/bash в зависимости от места установки Homebrew на вашем Mac.
Важно: изменение /etc/shells требует прав администратора и должно выполняться осторожно.
Когда лучше не переключаться на Bash
- Если вы используете плагины, темы или конфигурации, написанные специально для Zsh (например, Oh My Zsh), переключение может сломать привычную среду.
- Если вы работаете в окружении, где системные скрипты ожидают Zsh, лучше оставить Zsh по умолчанию.
- Если вам критична поддержка новых возможностей Bash (например, ассоциативных массивов в новых версиях), но вы не готовы устанавливать и настраивать отдельную версию Bash — подумайте об установке новой версии через Homebrew вместо замены системной оболочки.
Короткая методология принятия решения
- Проверьте текущую оболочку:
echo $SHELL. - Оцените зависимости: есть ли у вас Zsh‑специфичные конфиги или плагины.
- Если нужна только привычная работа с Bash — используйте
chsh -s /bin/bash. - Если нужна свежая версия Bash — установите через Homebrew и добавьте путь в
/etc/shells, затемchshна новый путь. - Тестируйте профиль и скрипты в новом окружении до массового развёртывания.
Шпаргалка команд (cheat sheet)
- Посмотреть текущую оболочку:
echo $SHELL - Сменить оболочку на Bash:
chsh -s /bin/bash - Вернуть Zsh:
chsh -s /bin/zsh - Список доступных оболочек:
cat /etc/shells - Установить актуальный Bash через Homebrew:
brew install bash - Добавить Homebrew‑bash в /etc/shells (пример):
sudo sh -c 'echo /opt/homebrew/bin/bash >> /etc/shells' - Сменить оболочку на установленный Homebrew‑bash:
chsh -s /opt/homebrew/bin/bash
Критерии приёмки
- После смены оболочки при новом запуске Terminal при выполнении
echo $SHELLвыводится выбранный путь (/bin/bash или /usr/local/bin/bash и т.д.). - Сценарии и профили запускаются как ожидается; отсутствуют критические ошибки при стартовой инициализации.
- Если была установлена новая версия Bash, она отображается в
bash --versionи путь совпадает с тем, что указан вecho $SHELL.
Риски и рекомендации по откату
- Риск: сломанные настройки окружения (например, несовместимые .bash_profile или .zshrc). Рекомендации: перед сменой сделайте резервную копию конфигурационных файлов (
cp ~/.zshrc ~/.zshrc.backup,cp ~/.bash_profile ~/.bash_profile.backup). - Откат: выполните
chsh -s /bin/zshили восстановите конфиги из резервных копий.
Краткий чеклист для администратора
- [ ] Проверить текущую оболочку у пользователей (
fingerилиdsclдля массовой проверки). - Оповестить пользователей о предстоящем изменении.
- Выполнить установку новой версии Bash (если требуется) через Homebrew.
- [ ] Добавить путь нового bash в
/etc/shellsи применитьchsh. - Проверить работоспособность ключевых скриптов и сервисов.
Когда полезна Zsh, а когда Bash
- Zsh удобна для интерактивной работы: автодополнение, тема и плагины, улучшенные подсказки.
- Bash остаётся стандартом для многих скриптов и совместим с большим количеством POSIX‑совместных сценариев.
Выбор зависит от ваших задач: интерактив — Zsh; совместимость скриптов и привычки — Bash.
Резюме
Переключение между Zsh и Bash в macOS простое и может быть выполнено как через Terminal командой chsh, так и через графические настройки System Settings → Users & Groups → Advanced Options. Учтите, что системный Bash может быть старой версии; для обновления используйте Homebrew и не забудьте добавить новый путь в /etc/shells перед сменой оболочки.
Важно: заранее сделайте резервные копии конфигураций и проверьте критические скрипты после смены.
Короткая памятка: проверьте echo $SHELL, используйте chsh для смены, и если нужна свежая версия Bash — установите её через Homebrew.