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

Как изменить стандартную оболочку в Linux

7 min read Linux Обновлено 01 Jan 2026
Как изменить стандартную оболочку в Linux
Как изменить стандартную оболочку в Linux

Изменение стандартной оболочки в Linux

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

Оболочка (shell) — это программа, которая обеспечивает интерфейс между вами и ядром операционной системы. Она принимает команды, запускает программы, обрабатывает ввод/вывод и может выполнять сценарии (скрипты). В Linux самые распространённые оболочки: bash, zsh, fish, ksh, csh. Простая дефиниция: оболочка — это интерпретатор команд.

Ключевые отличия между оболочками обычно касаются интерактивных функций: автодополнение, автокоррекция, плагины, удобство кастомизации и совместимость с POSIX-скриптами.

Почему стоит сменить стандартную оболочку

По умолчанию многие дистрибутивы используют bash. Он надёжен и совместим с POSIX. Но другие оболочки добавляют удобства:

  • zsh: мощное автодополнение, автокоррекция, плагины и темы;
  • fish: современный интерактивный набор функций «из коробки» и удобный синтаксис подсказок;
  • ksh/csh: полезны для определённых сценариев совместимости и старых скриптов.

Если вы проводите много времени в терминале, смена оболочки позволяет повысить производительность и комфорт работы.

Подготовка: какие компоненты задействованы

Короткие определения:

  • /etc/shells — файл, в котором перечислены допустимые логин-оболочки;
  • логин-оболочка — оболочка, которая запускается при входе в систему;
  • интерактивная оболочка — оболочка, доступная после входа и при запуске терминала;
  • chsh — утилита для смены оболочки;
  • usermod — системная утилита для изменения свойств пользователя, включая оболочку.

Пошаговая инструкция: смена оболочки через chsh

Ниже — подробная проверенная методика, подходящая для большинства систем.

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

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

cat /etc/shells

Вы увидите список путей, например /bin/bash, /usr/bin/zsh и т.п. Если желаемой оболочки нет в списке, установите её и добавьте путь в /etc/shells (см. дальше).

Проверка установленных оболочек в Linux

Шаг 2 — установить новую оболочку (пример: zsh)

На Debian/Ubuntu:

sudo apt update
sudo apt install zsh

На Arch Linux:

sudo pacman -Syu zsh

На Fedora/CentOS/RHEL:

sudo dnf install zsh

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

cat /etc/shells

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

zsh
# Для выхода:
exit

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

Шаг 3 — сделать оболочку стандартной с помощью chsh

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

chsh

Команда спросит путь к оболочке. Укажите полный путь, например /usr/bin/zsh. Альтернативно, используйте опцию -s:

chsh -s /usr/bin/zsh

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

sudo chsh -s /usr/bin/zsh sam

Подсказка: читайте echo $SHELL, чтобы убедиться в результате.

echo $SHELL

Обратите внимание: для применения изменений часто требуется выйти из сессии и войти заново.

Альтернативные методы: usermod и правка /etc/passwd

Если chsh недоступен или вы предпочитаете системный подход, используйте usermod:

sudo usermod -s /usr/bin/zsh $USER

Если система использует централизованную аутентификацию (LDAP, NIS), смена может требовать исправления в каталоге пользователей.

В экстренных случаях администратор может изменить поле оболочки напрямую в /etc/passwd, но безопаснее делать это через vipw:

sudo vipw

vipw откроет /etc/passwd в редакторе. Найдите запись пользователя и замените последний раздел на путь к новой оболочке.

Важно: путь должен присутствовать в /etc/shells для корректной работы логин-оболочки.

Когда оболочка не применяется или возникает ошибка

Частые причины и решения:

  • Оболочка отсутствует в /etc/shells: добавьте её путь, например:
echo "/usr/local/bin/fish" | sudo tee -a /etc/shells
  • У вас нет прав на изменение другого пользователя: используйте sudo.
  • Сессия не обновилась: разлогиньтесь и войдите снова.
  • Сетевой профиль (LDAP/NIS) перезаписывает настройки: изменяйте запись в централизованном каталоге.

Настройка новой оболочки: быстрый старт для zsh и fish

После смены оболочки полезно выполнить базовую настройку:

  • zsh: популярные фреймворки — Oh My Zsh, Prezto, zplug. Они добавляют плагины и темы.
  • fish: имеет собственную конфигурацию и автоконфиг GUI. Преимущество — много функций включено сразу.

Пример быстрой установки Oh My Zsh (опционально):

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Важно: установочные скрипты подключаются к интернет-репозиториям. Проверьте их содержание перед запуском в продакшн-системах.

Практические советы по безопасности и совместимости

  • Не ставьте неизвестную оболочку в качестве системной оболочки для root без тестирования.
  • Для автоматизированных задач (скрипты) используйте POSIX-совместимые интерпретаторы (/bin/sh или /bin/bash), чтобы избежать несовместимости синтаксиса.
  • Если вы администратор, документируйте изменения оболочки пользователей, особенно при переходе в централизованные среды.

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

Проверьте следующие пункты, чтобы удостовериться, что задача выполнена успешно:

  • echo $SHELL выводит путь к новой оболочке;
  • при входе пользователь видит ожидаемую оболочку и её приглашение (prompt);
  • интерактивные функции, которые вы ожидаете (например, автодополнение), работают;
  • если вы меняли оболочку для другого пользователя, проверьте его сессию или попросите пользователя подтвердить.

Откат и восстановление

Если нужно вернуть прежнюю оболочку:

chsh -s /bin/bash
# или для другого пользователя
sudo chsh -s /bin/bash sam

Если система перестала позволять входить в систему из-за ошибки оболочки, зайдите из режима восстановления или используйте root и выполните vipw для правки /etc/passwd.

Руководства по ролям (кто что должен сделать)

  • Новичок (beginner): установите оболочку через пакетный менеджер, запустите её вручную, затем используйте chsh -s <путь> и перезайдите.
  • Разработчик: протестируйте совместимость ваших скриптов с новой оболочкой; при необходимости используйте интерпретатор #!/usr/bin/env bash в скриптах.
  • Системный администратор: централизуйте политики (LDAP/NIS), документируйте изменения, поддерживайте список допустимых оболочек в /etc/shells.

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

ОболочкаИнтерактивностьPOSIX-совместимостьПлагины/темыПодходит для скриптов
bashвысокаядабазовые возможностида (широко используем)
zshочень высокаяда (с некоторыми отличиями)богатые фреймворкида (некоторые отличия синтаксиса)
fishочень высокая (интерактив)частично (не POSIX)встроенные функциинет (не рекомендуют для POSIX-скриптов)
kshсредняядаограниченнода
csh/tcshсредняячастичноограниченоосторожно — синтаксис отличается

Примечание: матрица даёт качественные оценки. Для скриптов ориентируйтесь на совместимость с POSIX.

Частые сценарии и когда не стоит менять оболочку

  • Серверы с критичными автоматическими задачами: не меняйте оболочку по умолчанию без тестирования совместимости скриптов.
  • Обучающие и учебные системы: возможно лучше оставить bash, чтобы следовать учебным материалам.
  • Когда администрирование централизовано (LDAP): сначала согласуйте изменения с командой админов.

Тесты и критерии приёмки (короткий чеклист)

  • Выполнена установка оболочки через пакетный менеджер;
  • Путь оболочки присутствует в /etc/shells;
  • Выполнена команда chsh -s <путь> и введён пароль при необходимости;
  • Пользователь перезашёл и проверил echo $SHELL;
  • Тестовые скрипты запускаются корректно.

Полезные сниппеты и шпаргалка

Команды быстрого доступа:

# Показать доступные оболочки
cat /etc/shells

# Сменить оболочку текущего пользователя
chsh -s /usr/bin/zsh

# Сменить оболочку другого пользователя (root)
sudo chsh -s /usr/bin/zsh user

# Через usermod
sudo usermod -s /usr/bin/zsh user

# Добавить путь оболочки в /etc/shells
echo "/usr/local/bin/fish" | sudo tee -a /etc/shells

# Проверить текущую оболочку
echo $SHELL

# Откат на bash
chsh -s /bin/bash

Edge cases — редкие ситуации и советы

  • Контейнеры: многие контейнерные образы минимальны и не содержат chsh; в контейнере обычно меняют ENTRYPOINT/команду, а не логин-оболочку.
  • Ограниченные аккаунты: системные учётные записи могут использовать /sbin/nologin или /bin/false.
  • Централизованные учётные записи: изменения локально могут быть перезаписаны; в таких средах правку нужно проводить в каталоге LDAP/NIS.

Краткая методика внедрения в организации

  1. Выберите целевые хосты и пользователей.
  2. Тестируйте новую оболочку на тестовой группе.
  3. Обновите /etc/shells централизованно, если требуется.
  4. Примените изменения через автоматизацию (Ansible/Puppet) или вручную, документируйте.
  5. Мониторьте ошибки входа и откатите поле необходимости.

Короткий глоссарий (1 строка)

  • Shell: интерпретатор команд; логин-оболочка: оболочка при входе; chsh: утилита смены оболочки; /etc/shells: список допустимых оболочек; usermod: изменение свойств пользователя.

Заключение

Смена стандартной оболочки в Linux — простой шаг, который может значительно улучшить ваш рабочий процесс в терминале. Сначала установите оболочку, убедитесь, что её путь добавлен в /etc/shells, затем используйте chsh или usermod. Тестируйте совместимость скриптов и документируйте изменения, особенно в корпоративной среде.

Важно: если после смены оболочки возникают проблемы с доступом, используйте режим восстановления или vipw для правки записи в /etc/passwd и отката оболочки.

Краткое резюме ниже.

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

Сводка:

  • Установите желаемую оболочку через пакетный менеджер;
  • Убедитесь, что путь добавлен в /etc/shells;
  • Используйте chsh -s <путь> или sudo usermod -s <путь> ;
  • Перезайдите и проверьте echo $SHELL;
  • При проблемах откатите изменения через chsh или vipw.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Заметки докладчика в Google Slides: как добавлять и показывать
Презентации

Заметки докладчика в Google Slides: как добавлять и показывать

Как создать майнд‑мэп в Microsoft Word
Продуктивность

Как создать майнд‑мэп в Microsoft Word

Google Slides: 10 функций для лучших презентаций
Презентации

Google Slides: 10 функций для лучших презентаций

Как показывать Google Slides в Google Meet
Руководства

Как показывать Google Slides в Google Meet

Instagram как профессиональное портфолио
Маркетинг

Instagram как профессиональное портфолио

Интеграция Google Форм с Google Таблицами
Руководство

Интеграция Google Форм с Google Таблицами