chsh -s / usr / bin / zsh не работает

24

Я пытаюсь навсегда изменить мою оболочку на zsh с помощью chshкоманды, но она не работает.

zsh установлен (через apt) и работает нормально, когда я вызываю его непосредственно из терминала bash. Но я не могу заставить zsh загружаться в терминалы по умолчанию, а chsh делает что-то странное:

$ echo $SHELL
/bin/bash
$ which zsh
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
Password: 
$ echo $SHELL
/bin/bash
$ grep kurtosis /etc/passwd
kurtosis:x:1000:1000:kurtosis,,,:/home/kurtosis:/usr/bin/zsh

Похоже, что chsh удалось правильно изменить / etc / passwd, но не переменную $ SHELL env. Таким образом, новые терминалы всегда начинаются в bash, а не в zsh.

Я не уверен, где искать, чтобы устранить это. .bashrc, даже если он не вызывается, пока не указана оболочка? Любая помощь приветствуется.

эксцесс
источник
1
Вы не можете изменить оболочку после того, как вы снова вошли в систему?
vine_user
Проверьте этот ответ .
Пабло А

Ответы:

34

Вам нужно снова выйти из системы, чтобы эти изменения вступили в силу. Оболочка, определенная в файле / etc / passwd, является вашей оболочкой для входа в систему :-) Так что для этого вам нужно войти в систему.

январь
источник
2
Спасибо. Я так привык, что могу вносить изменения в Linux без перезагрузки, мне просто не пришло в голову.
Куртоз
Я должен был на самом деле сделать перезагрузку, чтобы она вступила в силу - я думаю, это каким-то образом заново подключило меня к существующему сеансу оболочки.
Крис Кимптон
При использовании соединения ssh, даже если вы завершите работу, сервер может не закрыть соединение и оболочку до конца. Таким образом, вам может потребоваться убить процессы (ssh и sh), которые принадлежат вашему пользователю. (У меня была эта проблема, и было легко найти решение, но все же я должен был прийти на этот пост, чтобы увидеть, что я должен выйти из системы.)
Джон Гамильтон