Правильна відповідь мала б вирішити вашу проблему:
chsh: / usr / bin / zsh: нестандартна оболонка
Причиною цього є те, що chsh
прийматимуть лише оболонки, визначені у файлі / etc / shell, як ви можете переконатися, прочитавши посібник для chsh
:
chsh прийме повне ім'я шляху до будь-якого виконуваного файлу в системі. Однак він видасть попередження, якщо оболонка не вказана у файлі / etc / shells.
Щоб вирішити цю проблему та зробити zsh типовою оболонкою, вам слід:
$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)
Очевидно, я припускаю це zsh
це на вашому шляху тут. Це рішення також буде працювати , якщо ви, наприклад, вирішили встановити останню версію zsh
з brew install zsh
.
EDIT (дякую за ThisIsFlorianK за коментар) :
Залежно від налаштування оболонки ви можете отримати повідомлення із повідомленням /etc/shells: Permission denied
. Ви можете знайти інформацію про це питання тут.
Щоб обійти це, використовуйте замість цього:
$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
chsh -l
вихід? (Якщо це не спрацьовує, у чому полягає вміст/etc/shells
?) Ви впевнені, що це не вдається, а не лише попередження? Чи додавання/usr/bin/zsh
туди робить цю роботу?