DEV Community

Cover image for Set zsh as the default shell in your terminal.
Ismael Garcia
Ismael Garcia

Posted on • Updated on

Set zsh as the default shell in your terminal.

How to set ZSH as the default shell in your terminal.

ZSH also called the Z shell, is an extended version of the Bourne Shell (sh), with plenty of new features, and support for plugins and themes. Since it’s based on the same shell as Bash that makes it easy for use and switching over is a breeze.

Open vim or your favorite code editor

sudo vim ~/.bashrc
Enter fullscreen mode Exit fullscreen mode

Now we need to edit the file and add the following line to the end of the file remember to add a comment just to remember, what is that line of code task.

exec zsh
Enter fullscreen mode Exit fullscreen mode

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

This is not the only way that you can get to the goal of setting zsh as the default shell but for me, this is the best and easy way to do the job.

Please if you have a better solution let me know I'm willing to learn new ways and do it in a better way.


The best solution is just use the fallowing command to switch

chsh -s $(which zsh)
Enter fullscreen mode Exit fullscreen mode

Top comments (5)

ihorvorotnov profile image
Ihor Vorotnov • Edited

You aren't actually making it a default shell, your shell is still /usr/bin/bash. You are just executing a ZSH framework on top of bash shell and the only environment where it makes sense is Cygwin on Windows. On all other operating systems you'd be better off by actually making it your default login shell with a standard chsh command chsh -s $(which zsh). It's even easier, isn't it? And won't bite you back if you're developing shell scripts.

leamsigc profile image
Ismael Garcia • Edited

Thank you for the information and for the better solution I really appreciated.
Yeah, you are right it is better to make it the default login shell.

I'm not developing scripts for now, but like you said you never know in the future right.

calvez profile image

Could be good if @leamsigc update this post because google ranks it on pretty good place. It's very bad solution and nonsense.
@ihorvorotnov said the correct way.

mehehehehe82 profile image

Why would you ever want to edit your bashrc as root?

dananee profile image

thank you bro it workes fine