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

Как изменить shell по умолчанию в Linux

8 min read Linux Обновлено 23 Apr 2026
Сменить shell по умолчанию в Linux
Сменить shell по умолчанию в Linux

Изменение оболочки по умолчанию в Linux — терминал с командами

О чём эта статья

В этой статье вы найдёте краткое объяснение, что такое shell, зачем менять оболочку по умолчанию, подробную пошаговую инструкцию по установке и настройке (на примере zsh), рекомендации по тестированию, откату и совместимости, а также чек-листы для разных ролей — разработчика, администратора и обычного пользователя.

Важно: статья ориентирована на современные дистрибутивы Linux (Debian/Ubuntu, Fedora, Arch и производные). Команды работают в терминале; для выполнения команд требуются права sudo там, где это указано.

Что такое shell и зачем он нужен

Shell — это программа, которая служит интерфейсом между вами и ядром/утилитами операционной системы. Это «оболочка», принимающая команды, исполняющая программы и возвращающая результат. Кратко:

  • Shell (оболочка) предоставляет командную строку (CLI) и синтаксис команд.
  • Она интерпретирует ввод, ищет исполняемые файлы в PATH и запускает их.
  • Shell также управляет скриптами, переменными окружения и сессиями.

Определение в одну строку: shell — программа для взаимодействия с ОС через команды.

Популярные оболочки и их особенности

  • bash — стандартная оболочка для большинства дистрибутивов; стабильна, совместима со скриптами POSIX.
  • zsh — расширенные возможности автодополнения, автокоррекции, плагины, удобные темы; часто используется с oh-my-zsh.
  • fish — современная, удобный синтаксис автодополнения и конфигурации, но несовместима с POSIX-скриптами по умолчанию.
  • ksh — историческая оболочка с некоторыми расширениями для корпоративных систем.
  • csh/tcsh — старые оболочки, иногда используются в специализированных окружениях.

Короткая эвристика: если нужна максимальная совместимость со скриптами — оставайтесь на bash; если нужна удобная интерактивная работа и богатая экосистема плагинов — попробуйте zsh или fish.

Почему менять shell по умолчанию

  • Лучший интерактивный опыт: автодополнение, подсказки, история команд с удобным поиском.
  • Плагины и темы ускоряют работу и визуально улучшают терминал.
  • Персонализация окружения: алиасы, функции, автозапуск задач при старте сессии.

Противопоказания — когда система или критические скрипты завязаны на конкретный shell (см. раздел Совместимость и предупреждения).

Шаги: как изменить shell по умолчанию (подробно)

Ниже — надёжный рабочий процесс. Мы используем утилиту chsh (change shell). Она присутствует практически во всех Unix-подобных системах.

Шаг 1 — посмотреть установленные оболочки

Откройте терминал и выполните:

cat /etc/shells

Этот файл содержит допустимые пути к оболочкам. Если вы видите /usr/bin/zsh или /bin/zsh — оболочка установлена и её можно назначить по умолчанию.

Вывод /etc/shells — список доступных оболочек

Примечание: если нужного пути в /etc/shells нет, добавлять его вручную можно только после установки бинарника оболочки и с учётом безопасности.

Шаг 2 — установить новую оболочку

Пример для zsh. Замените имя пакета, если выбираете другую оболочку.

Debian/Ubuntu:

sudo apt update
sudo apt install zsh

Arch/Manjaro:

sudo pacman -Syu zsh

Fedora/CentOS/RHEL:

sudo dnf install zsh

После установки снова проверьте /etc/shells:

cat /etc/shells

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

Затем можно запустить оболочку напрямую, чтобы протестировать её работу:

zsh

Чтобы выйти в предыдущую оболочку, выполните:

exit

Важно: убедитесь, что оболочка запускается интерактивно и не падает при старте (проверьте конфигурационные файлы, если они есть).

Шаг 3 — назначить оболочку по умолчанию

Чтобы изменить оболочку для текущего пользователя (логин-оболочку), выполните:

chsh

Вас попросят ввести пароль; затем введите полный путь к оболочке, например:

/usr/bin/zsh

Альтернативный (однострочный) вариант для смены интерактивной или логин-оболочки:

chsh -s /usr/bin/zsh

Если вы хотите изменить оболочку для другого пользователя (требуются права root):

sudo chsh -s /usr/bin/zsh sam

После изменения выйдите из сессии и войдите снова, чтобы увидеть эффект. При первом запуске zsh часто запускает конфигуратор — выберите опции под свои нужды.

Проверка текущей оболочки:

echo $SHELL

Если всё прошло успешно, вы увидите путь выбранной оболочки.

Типичные сценарии настройки и кастомизации

  • oh-my-zsh: популярный фреймворк для zsh с темами и плагинами. Устанавливайте только из доверенных источников и проверяйте плагины.
  • prezto, antigen, zplug — альтернативные менеджеры плагинов для zsh.
  • fish использует собственную систему конфигурации; экспортировать конфиги из bash/zsh придётся вручную.
  • Алиасы и функции: добавляйте в ~/.bashrc, ~/.zshrc или соответствующий файл вашей оболочки.

Пример простого алиаса в ~/.zshrc:

alias ll='ls -la'

Совместимость и когда менять не стоит

Важно:

  • Скрипты с хэштегом #!/bin/bash или #!/bin/sh будут по-прежнему работать, если shebang указывает конкретную оболочку. Но системные скрипты могут ожидать POSIX-совместного поведения.
  • Не меняйте shell по умолчанию на системных аккаунтах (root, service-аккаунты) без тщательной проверки — это может нарушить работу автозапуска и сервисов.
  • Если вы используете корпоративные скрипты, CI-пайплайны или инструменты, полагающиеся на конкретную оболочку, тестируйте изменения в тестовой среде.

Когда не менять:

  • На серверах с критичными задачами без возможности быстро откатиться.
  • Если у команды нет навыков восстановления в консоли (рекомендуется подготовить инструкции отката).

Тестирование, приёмка и откат изменений

Мини-методология для безопасного перехода:

  1. Установите и протестируйте оболочку локально в своей учётной записи, не меняя по умолчанию.
  2. Прогоните наиболее важные скрипты и команды вручную в новой оболочке.
  3. Настройте окружение (алиасы, PATH, переменные) и сохраните резервные копии конфигов (~/.bashrc, ~/.profile).
  4. Измените оболочку через chsh; выполните выход и вход.
  5. Выполните проверочный список (ниже).

Критерии приёмки:

  • echo $SHELL показывает путь новой оболочки.
  • Вход в систему корректен, нет падений сессии.
  • Ключевые скрипты работают (тестовые прогоны CI, если применимо).
  • Пользовательское окружение ( алиасы, PATH ) корректно загружается.

Откат (rollback):

sudo chsh -s /bin/bash <пользователь>

Затем снова выполните выход/вход.

Чек-листы по ролям

Чек-лист для разработчика:

  • Установить оболочку локально и протестировать интерактивные функции.
  • Проверить работу git, сборок, линтеров в новой оболочке.
  • Сохранить и перенести алиасы и функции.
  • Настроить плагины/темы по потребности.

Чек-лист для системного администратора:

  • Проверить /etc/shells и системные политики PAM/SSHD.
  • Не менять оболочку для root без тестирования.
  • Обновить документацию и инструкции для команды.
  • Подготовить план отката и доступ к консоли восстановления.

Чек-лист для обычного пользователя:

  • Попробовать новую оболочку без установки по умолчанию (ввести её имя в терминале).
  • Протестировать привычные команды и алиасы.
  • Выполнить смену через chsh и убедиться в результате.

Трудности и отладка (troubleshooting)

Симптом: после входа система возвращает на логин или сессия падает. Решения:

  • Войдите через другой TTY (Ctrl+Alt+F2) или через SSH, если доступен, и выполните откат chsh.
  • Проверьте права и целостность файла /etc/shells; если путь не указан, вы можете временно указать shell при входе.
  • Запустите оболочку вручную и просмотрите вывод ошибок при инициализации, например:
/usr/bin/zsh -xv

Симптом: некоторые скрипты перестали работать.

  • Убедитесь, что в скриптах указан корректный shebang (#!/bin/bash или #!/usr/bin/env bash).
  • Для совместимости используйте sh-совместимые конструкции или запуск через bash: bash script.sh.

Безопасность и права

  • Никогда не добавляйте в ~/.zshrc или аналогичный файл команды с небезопасными правами без проверки (например, выполнение скачанных скриптов).
  • Не давайте исполняемым конфигурациям более высоких прав, чем необходимо.
  • Проверяйте источники тем и плагинов (особенно для oh-my-zsh). Избегайте произвольного выполнения curl | sh.

Совместимость и миграция конфигураций

  • Большинство алиасов и простых функций можно прямо перенести в ~/.zshrc; некоторые конструкции (особенно в fish) несовместимы и требуют переписывания.
  • Экспорт переменных окружения оставьте в ~/.profile или ~/.bash_profile, если они должны быть доступны вне конкретной оболочки.

Пример переноса простого алиаса:

.bashrc

alias gs='git status'

в ~/.zshrc тот же алиас будет работать без изменений.

Набор тестов для проверки корректности установки (acceptance)

  • Установлена ли оболочка (проверка /etc/shells и which zsh).
  • Работает ли базовая навигация (cd, ls, pwd).
  • Работает ли история команд и автодополнение.
  • Выполняются ли ключевые скрипты с shebang.

Команды для проверки:

which zsh
cat /etc/shells | grep zsh
echo $SHELL

Сравнение: когда выбирать zsh vs fish vs bash (упрощённая матрица)

  • Интероперабельность со скриптами: bash > zsh > fish
  • Интерактивный опыт и подсказки: fish ≈ zsh > bash
  • Экосистема плагинов: zsh > bash > fish

Выбор зависит от приоритетов: совместимость, удобство или скорость настройки.

Короткий глоссарий

  • shell — оболочка, программа для взаимодействия с ОС.
  • chsh — утилита для смены оболочки по умолчанию.
  • shebang — первая строка скрипта (#!/bin/bash), указывающая интерпретатор.
  • PATH — системная переменная, где shell ищет исполняемые файлы.

Частые ошибки и как их избежать

  • Ошибка: указание пути к несуществующей оболочке в chsh. Проверяйте путь через which или /etc/shells.
  • Ошибка: менять shell для root без тестирования. Не повторяйте на продакшн-сервере без плана восстановления.
  • Ошибка: доверять неизвестным плагинам. Проверяйте исходный код и репутации.

Резюме и лучшие практики

  • Всегда тестируйте новую оболочку без изменения по умолчанию, запуская её вручную.
  • Сначала проверьте /etc/shells и установите оболочку стандартными пакетными инструментами.
  • Для смены используйте chsh, затем выйдите и войдите в сессию.
  • Подготовьте план отката и резервные копии конфигов.
  • Обновите внутреннюю документацию команды, если смена касается нескольких пользователей.

Важно: не меняйте shell на системных аккаунтах без тестирования и одобрения команды.


Краткая памятка по командам:

cat /etc/shells
sudo apt install zsh       # Debian/Ubuntu
sudo pacman -Syu zsh       # Arch
sudo dnf install zsh       # Fedora/RHEL
zsh                        # запустить оболочку напрямую
chsh -s /usr/bin/zsh       # назначить по умолчанию
echo $SHELL                # проверить текущую оболочку
sudo chsh -s /bin/bash   # откат для пользователя

Если вы хотите, я могу подготовить шаблон ~/.zshrc с минимальными настройками, инструкцию по установке oh-my-zsh безопасным способом или пошаговый план миграции конфигурации из bash в zsh для вашей конкретной среды.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Zoom Workplace: AI Companion, вложения и интеграции
Продуктивность

Zoom Workplace: AI Companion, вложения и интеграции

Spring Security — настройка аутентификации и прав
Безопасность

Spring Security — настройка аутентификации и прав

Как менять пароли в Linux
Linux

Как менять пароли в Linux

Удаление резервных копий Time Machine на Mac
Резервное копирование

Удаление резервных копий Time Machine на Mac

Как включить закрытые субтитры SDH на Mac
How-to

Как включить закрытые субтитры SDH на Mac

Как установить Adobe Flash Player на Mac
Mac

Как установить Adobe Flash Player на Mac