Как изменить оболочку по умолчанию на ZSH - chsh говорит «недопустимая оболочка»


36

Я установил ZSH на мою виртуальную машину, где я скомпилировал ее из исходного кода. Расположение ZSH - это /usr/local/bin/zshкогда я запускаю chsh -s /usr/local/bin/zshего вывод chsh: /usr/local/bin/zsh is an invalid shell. Я тоже попробовал это с sudo. Как я могу изменить это?



6
@Mikel, нет, этот вопрос «я не знаю chsh», а не « chshне работает для меня».
CJM

Ответы:




3

Во-первых, проверьте, zshуказан ли в качестве допустимой оболочки

cat /etc/shells

Если zshего нет в списке, установите его. Например, если вы используетеapt

sudo apt-get install zsh

Сделайте шаг 1 снова и увидите путь zsh. В моем случае оба /usr/bin/zshи /usr/zshуказаны. Как отметил в комментарии @ Stéphane Chazelas, если вы хотите скомпилировать и установить оболочку с нуля, обязательно добавьте путь в /etc/shells.

Изменить оболочку, используя

chsh -s /usr/bin/zsh

С man-страницы :

-s, --shell SHELLИмя новой оболочки входа пользователя. Установка этого поля в пустое заставляет систему выбирать оболочку входа по умолчанию.

Выйдите из системы и войдите снова.


Да, если вы устанавливаете оболочку как часть пакета ОС, упаковка ОС обычно добавляет оболочку /etc/shells. Суть в том, что если вы компилируете и устанавливаете оболочку вручную, вам также необходимо добавить путь к /etc/shellsсебе вручную.
Стефан

Хорошая точка зрения. Я думал о менеджере пакетов, как «apt». Я отредактировал ответ, чтобы включить вашу точку зрения.
Сб Ям

По сути, это то, что уже два других ответа уже сказали.
Джефф Шаллер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.