Ubuntu: Can't make ZSH the default shell



Question:

I am trying to set ZSH as my default shell, however it keeps reverting back to bash.

I have tried this code:

sudo chsh -s $(which zsh)  

I've also tried:

sudo chsh -s /bin/zsh   

Also tried these commands without sudo. Any ideas on what else I need to do. When running ZSH from within bash it loads up and works fine but I'd like to set it as the default shell.


Solution:1

If you use sudo it will change the shell not for your working user but for root. Just using

chsh -s $(which zsh)  

without sudo should work (but you need to login again to see the change).


Solution:2

I found this on superuser forum

Open /etc/passwd:

sudo vi /etc/passwd  

Find the line with your username:

username:x:1634231:100:Your Name:/home/username:/bin/bash  

and replace bash with zsh:

username:x:1634231:100:Your Name:/home/username:/bin/zsh  

Log out and log in back for the changes to take effect.


Solution:3

If zsh is not /bin/zsh then chsh won't work. On Ubuntu it is /usr/bin/zsh. so doing chsh -s /usr/bin/zsh or chsh -s `which zsh` should work. Also need to re-login to desktop session.


Solution:4

Strange, the "accepted" answer didn't work for me as I got

chsh: PAM: Authentication failure  

To solve this issue edit your /etc/passwd and make sure it points to the zsh location. (You can find this by running "which zsh") In my case my user called "webmaster" looked like this: enter image description here


Solution:5

You may also do this:

open your bashrc file in your favourite editor

sudo nano ~/.bashrc  

then add the line below top of the file

exec zsh  

It will execute the command every time you load the terminal and run your zsh shell.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »