Команда chsh -s $(which zsh), введённая без предварительной установки самого пакета Zsh, — самая частая причина ошибки «shell not found» при попытке сменить командную оболочку на ноутбуке. Прежде чем менять shell по умолчанию, необходимо убедиться, что нужная оболочка вообще присутствует в системе, а путь к её исполняемому файлу прописан в файле /etc/shells.

Под словом «shell» пользователи обычно понимают командную оболочку — программу, которая принимает текстовые команды и передаёт их операционной системе. На ноутбуке с Linux это чаще всего Bash, Zsh или Fish, на WindowsPowerShell или Linux-окружение через WSL, на macOS — Zsh, который там установлен по умолчанию начиная с версии Catalina. Ниже разберём установку и настройку shell для каждой из этих платформ отдельно, потому что процедуры принципиально различаются.

Проверка текущей оболочки перед установкой

Первый шаг — выяснить, какой shell уже используется и какие оболочки доступны в системе. Откройте терминал и выполните команду echo $SHELL — она покажет путь к оболочке, назначенной вашему пользователю. Команда echo $0 покажет, какой shell запущен прямо сейчас, и эти значения могут различаться.

Список всех оболочек, зарегистрированных в системе, хранится в файле /etc/shells. Просмотреть его можно командой cat /etc/shells. Если нужной оболочки в этом списке нет — менять shell по умолчанию пока рано.

  • 🔍 echo $SHELL — оболочка, назначенная пользователю при входе
  • 📋 cat /etc/shells — перечень разрешённых оболочек в системе
  • 🧭 which zsh или which fish — проверка, установлен ли конкретный shell
  • 🖥️ $PSVersionTable.PSVersion — версия PowerShell в Windows
💡

Перед любыми изменениях запишите текущее значение $SHELL — если новая оболочка окажется нерабочей, вы сможете быстро вернуться к исходной командой chsh -s со старым путём.

Установка shell на ноутбук с Linux

В дистрибутивах на базе Debian и Ubuntu установка выполняется через пакетный менеджер APT. Для Zsh достаточно одной команды:

sudo apt update && sudo apt install zsh

Для Fish команда аналогична: sudo apt install fish. В Fedora используется sudo dnf install zsh, в Arch Linux — sudo pacman -S zsh. Точные названия пакетов в конкретном дистрибутиве стоит сверить с официальным репозиторием, но для перечисленных оболочек они обычно совпадают с именем самой оболочки.

После установки оболочка становится доступной, но не активной. Чтобы назначить её shell по умолчанию, выполните:

chsh -s $(which zsh)

Изменение вступит в силу только после повторного входа в систему — простое закрытие окна терминала недостаточно. Выйдите из сессии пользователя и войдите снова, затем проверьте результат командой echo $SHELL.

☑️ Установка нового shell в Linux

Выполнено: 0 / 5
⚠️ Внимание: не устанавливайте в качестве shell по умолчанию оболочку, работоспособность которой не проверена. Если путь указан неверно или оболочка повреждена, при следующем входе вы можете получить неработающую сессию. Сначала запустите новый shell вручную (просто введите zsh) и убедитесь, что он стартует без ошибок.

Установка shell на ноутбук с Windows

В Windows понятие «установить shell» чаще всего означает одно из двух: поставить актуальную версию PowerShell или развернуть Linux-окружение через подсистему WSL (Windows Subsystem for Linux). Оба сценария официально поддерживаются Microsoft.

Для установки WSL откройте PowerShell от имени администратора и выполните команду wsl --install. После перезагрузки ноутбука будет установлен дистрибутив Ubuntu (по умолчанию) с оболочкой Bash. Список доступных дистрибутивов можно посмотреть командой wsl --list --online, а установить конкретный — указав его имя через параметр -d.

Оболочка PowerShell 7 распространяется отдельно от встроенного Windows PowerShell 5.1. Установить её можно через пакетный менеджер winget:

winget install Microsoft.PowerShell

После установки новая версия запускается командой pwsh, а старая остаётся доступной как powershell — они не конфликтуют между собой.

📊 Какой shell вы используете на ноутбуке?
Bash
Zsh
Fish
PowerShell / WSL

Установка и смена shell в macOS

Начиная с macOS Catalina, оболочкой по умолчанию является Zsh, поэтому отдельная установка обычно не требуется. Если на ноутбуке стоит более старая версия системы с Bash, переключиться на Zsh можно командой chsh -s /bin/zsh.

Для установки альтернативных оболочек вроде Fish удобнее всего использовать пакетный менеджер Homebrew. После его установки выполните brew install fish. Затем путь к новой оболочке нужно вручную добавить в файл /etc/shells, иначе команда chsh откажется её принимать — это частая причина ошибки «non-standard shell».

Почему chsh выдаёт ошибку «non-standard shell»

macOS и Linux разрешают назначать shell по умолчанию только те оболочки, чьи пути перечислены в файле /etc/shells. Оболочки, установленные через Homebrew, туда автоматически не попадают. Откройте файл с правами администратора (например, sudo nano /etc/shells) и добавьте строку с полным путём к оболочке, который показывает команда which fish. После сохранения файла повторите chsh -s с этим же путём.

Сравнение популярных оболочек

Выбор shell зависит от задач: для скриптов важна совместимость, для ежедневной работы в терминале — удобство автодополнения и подсветки. Ниже — сравнение основных характеристик без привязки к конкретным версиям.

ОболочкаГде предустановленаСильные стороныКому подходит
BashБольшинство дистрибутивов Linux, WSLМаксимальная совместимость скриптовАдминистраторам, для серверных скриптов
ZshmacOS, часть дистрибутивов LinuxГибкая настройка, плагины (Oh My Zsh)Разработчикам и опытным пользователям
FishТребует установкиАвтодополнение и подсветка «из коробки»Новичкам в командной строке
PowerShellWindows (версия 7 ставится отдельно)Работа с объектами, интеграция с WindowsАдминистраторам Windows-систем

Обратите внимание: скрипты, написанные под Bash, не всегда корректно выполняются в Fish из-за отличий в синтаксисе. Если вы запускаете чужие скрипты из интернета, проверяйте, под какую оболочку они написаны — обычно это указано в первой строке файла (shebang, например #!/bin/bash).

💡

Смена shell по умолчанию не удаляет старую оболочку — Bash остаётся в системе, и любой скрипт с shebang #!/bin/bash продолжит работать независимо от того, какой shell у вас активен.

Настройка оболочки после установки

Голый shell после установки выглядит минималистично, поэтому следующий шаг — базовая конфигурация. Настройки Zsh хранятся в файле ~/.zshrc, Bash — в ~/.bashrc, Fish — в каталоге ~/.config/fish/. Именно в этих файлах задаются алиасы, переменные окружения и внешний вид приглашения командной строки.

Для Zsh популярен фреймворк конфигурации Oh My Zsh, который добавляет темы оформления и плагины. Для Fish аналогичную роль играет Oh My Fish. Установка таких фреймворков необязательна — оболочка полностью работоспособна и без них, а любые сторонние скрипты установки стоит запускать только после ознакомления с их содержимым.

⚠️ Внимание: команды установки фреймворков часто предлагают выполнить в формате «скачать скрипт и сразу передать его в shell». Такой способ удобен, но небезопасен: сначала скачайте скрипт, откройте его в текстовом редакторе и убедитесь, что понимаете, что он делает.
  • 🎨 Настройте приглашение командной строки и тему под свои задачи
  • ⚡ Добавьте алиасы для часто используемых команд в конфигурационный файл
  • 🔌 Подключайте плагины постепенно — каждый замедляет запуск оболочки
  • 💾 Сохраните резервную копию конфига перед масштабными правками

Типичные проблемы и их решение

Если после смены shell терминал открывается с ошибкой или сессия сразу закрывается, вероятная причина — неверный путь, переданный команде chsh. Войдите в систему через другого пользователя или через режим восстановления и верните прежнюю оболочку, указав корректный путь из файла /etc/shells.

Вторая распространённая ситуация — оболочка запускается, но не подхватывает настройки. Проверьте, что конфигурационный файл находится именно в домашнем каталоге и называется правильно: ~/.zshrc для Zsh, а не, например, ~/.zsh_rc. Также убедитесь, что терминал запускает оболочку как login shell или interactive shell — от этого зависит, какие файлы конфигурации читаются.

⚠️ Внимание: на корпоративных ноутбуках смена оболочки и установка WSL могут быть заблокированы групповыми политиками. Если команды требуют прав администратора, которых у вас нет, обратитесь к системному администратору организации — обход ограничений может нарушать внутренние регламенты.
💡

Если эксперименты с shell идут на рабочем ноутбуке, настройте новую оболочку параллельно: запускайте её вручную командой zsh или fish, не меняя shell по умолчанию. Переходите на chsh только когда конфигурация полностью проверена.

Часто задаваемые вопросы

Можно ли установить несколько shell одновременно?

Да, оболочки не конфликтуют между собой. Можно держать в системе Bash, Zsh и Fish одновременно и переключаться между ними, просто вводя имя нужной оболочки в терминале. Командой chsh при этом задаётся лишь та, что запускается по умолчанию при входе.

Удалит ли смена shell мои файлы и настройки?

Нет. Смена оболочки затрагивает только то, какая программа обрабатывает ваши команды в терминале. Файлы, программы и настройки системы остаются нетронутыми. Единственное, что может «пропасть», — привычные алиасы, если они были прописаны в конфиге старой оболочки и не перенесены в новую.

Что делать, если после смены shell не могу войти в систему?

В Linux можно войти через другой виртуальный терминал (сочетание клавиш вроде Ctrl+Alt+F2 зависит от дистрибутива) или загрузиться с Live-носителя, а затем исправить shell пользователя в файле /etc/passwd на рабочий путь из /etc/shells. Если опыта таких операций нет, безопаснее обратиться к специалисту.

Нужен ли WSL, если я просто хочу Linux-shell в Windows?

WSL — самый прямой официальный способ получить Bash и другие Linux-оболочки в Windows. Альтернативы существуют (например, эмуляторы терминала с портированными утилитами), но они не дают полноценного Linux-окружения. Для разработки и запуска Linux-инструментов предпочтителен именно WSL.

Как вернуть оболочку по умолчанию обратно на Bash?

Выполните chsh -s /bin/bash (или тот путь к Bash, который указан в вашем файле /etc/shells) и повторно войдите в сессию. Проверить результат можно командой echo $SHELL после входа.