Як змінити оболонку за замовчуванням на ZSH - chsh говорить "недійсна оболонка"


36

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



6
@Mikel, ні, це питання "я не знаю про chsh", а не " chshне працює для мене".
cjm

Відповіді:


48

Додати zsh до /etc/shells:

command -v zsh | sudo tee -a /etc/shells

Тепер ви можете використовувати chsh для встановлення zsh як оболонки:

sudo chsh -s "$(command -v zsh)" "${USER}"

Дивіться цю документацію: Зміна оболонки для входу



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

З чоловічої сторінки :

-s, --shell SHELLІм'я нової оболонки для входу користувача. Якщо встановити це поле порожнім, система вибирає оболонку для входу за замовчуванням.

Вийдіть і увійдіть знову.


Так, якщо ви встановите оболонку як частину пакету ОС, упаковка ОС зазвичай додає оболонку до /etc/shells. Суть у тому, що якщо ви збираєте та встановлюєте оболонку вручну, вам також потрібно додати шлях до /etc/shellsсебе вручну.
Стефан Шазелас

Влучне зауваження. Я думав про менеджера пакунків, як "вдалий". Я відредагував відповідь, щоб включити вашу думку.
Сб Ям

Це, по суті, те, про що вже були сказані два інші відповіді.
Джефф Шаллер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.