Не удается изменить оболочку с zsh на bash?

Я только что установил zsh на Ubuntu 20.04 и решил снова поменять его на bash. Я пробовал обычный способ chsh , но он не работает.

Ссылка: изменение оболочки с zsh на bash

Текущая оболочка

wolf@linux:/home/wolf $ echo $SHELL 
/bin/zsh
wolf@linux:/home/wolf $ 

1-я попытка

wolf@linux:/home/wolf $ sudo chsh -s /bin/bash
wolf@linux:/home/wolf $ echo $SHELL           
/bin/zsh
wolf@linux:/home/wolf $

2-я попытка

wolf@linux:~$ sudo chsh --shell=/bin/bash $USER
wolf@linux:~$ echo $SHELL
/bin/zsh
wolf@linux:~$ 

3-я попытка

wolf@linux:~$ chsh -s $(which bash)
Password: 
wolf@linux:~$ echo $SHELL
/bin/zsh
wolf@linux:~$ 

Даже bash и exec bash не работают

wolf@linux:/home/wolf $ bash
wolf@linux:~$ echo $SHELL
/bin/zsh
wolf@linux:~$ exec bash
wolf@linux:~$ echo $SHELL
/bin/zsh
wolf@linux:~$ 
0
задан 2 January 2021 в 05:58

2 ответа

Перезагрузка должна решить проблему

3
ответ дан 3 January 2021 в 22:43

chsh изменяет поле оболочки в базе данных паролей, которое читается при входе в систему. Чтобы увидеть эффект изменения, вам нужно начать новый сеанс входа в систему - например, с su - :

Пример. подтвердите, что текущая оболочка входа - bash:

steeldriver@DESKTOP:~$ getent passwd steeldriver
steeldriver:x:1000:1000:,,,:/home/steeldriver:/bin/bash
steeldriver@DESKTOP:~$ echo $SHELL
/bin/bash

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

steeldriver@DESKTOP:~$ chsh -s /usr/bin/zsh
Password:

steeldriver@DESKTOP:~$ getent passwd steeldriver
steeldriver:x:1000:1000:,,,:/home/steeldriver:/usr/bin/zsh
steeldriver@DESKTOP:~$ echo $SHELL
/bin/bash

Теперь начните новый сеанс входа в систему:

steeldriver@DESKTOP:~$ su - steeldriver
Password:
steeldriver@DESKTOP-SPDO14V ~ % echo $SHELL
/usr/bin/zsh
1
ответ дан 3 January 2021 в 22:43

Другие вопросы по тегам:

Похожие вопросы: