If you’re a Mac user, you may already know that the default shell on macOS was bash
. But starting from macOS Catalina, bash
was replaced by zsh
(Z-shell). For those of you who don’t know, the shell is the underlying engine of Terminal.app, where commands are translated into system call.
You may notice a message whenever you open the Terminal that says
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`
For more details, please visit https://support.apple.com/kb/HT208050.
Update the system to use zsh as default shell
In order to update the system and use the default new shell, simply run the chsh -s /bin/zsh
command as instructed above
chsh -s /bin/zsh
In case you’re wondering, chsh
stands for change shell
.
Alternatively, you can configure the default shell using the graphical interface.
- Choose Apple > System Preferences > Users & Groups.
- Click the lock icon, then input your account name and password.
- Control-click your user name in the list of users on the left, then choose Advanced Options.
- Select
/bin/zsh
from the Login shell menu, then click OK to save the changes.
As long as you keep zsh
as the default shell, the "The default interactive shell is now zsh" will be hidden. More information about this behavior can be found at https://support.apple.com/en-us/HT208050.
Hide "The default interactive shell is now zsh" and use bash
If you already know that zsh
is the default shell and integrates better with the new macOS versions, but for some reason prefer bash
, this section is for you.
In order to hide "The default interactive shell is now zsh" and keep using bash
, you need to edit $HOME/.bash_profile
, $HOME/.profile
or $HOME/.bashrc
and add the following line.
export BASH_SILENCE_DEPRECATION_WARNING=1
This can be quickly done with a single-line command.
touch ~/.bash_profile && echo "export BASH_SILENCE_DEPRECATION_WARNING=1" >> ~/.bash_profile
Usually the BASH_SILENCE_DEPRECATION_WARNING
setting in bash_profile
alone would do the trick, but a few users reported mixed results, where the "The default interactive shell is now zsh" randomly pops up every once in a while.
In this case, edit /etc/profile
as root and add the same line into it to enable the setting system-wide.
# /etc/profile
export BASH_SILENCE_DEPRECATION_WARNING=1
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
if [ "${BASH-no}" != "no" ]; then
[ -r /etc/bashrc ] && . /etc/bashrc
fi
Hide "The default interactive shell is now zsh" by upgrading bash
The reason behind the move from bash
to zsh
is as newer versions of bash
are licensed under GPLv3 since version 3.3. Apple has kept clear of using GPLv3 packages in macOS as the license is generally more restrictive to companies like Apple that sign their own code and it includes explicit patent grants, too. Apple is stuck using version 3.2 of bash, which was released way back in 2006.
If you want to keep using bash
as well as get rid of the warning message, just switch to use the bash shipped by homebrew (currently v5.0.18), which does not include the piece of code Apple added to show the "The default interactive shell is now zsh" warning
First of all, install homebrew if you haven’t already. Detailed instruction is available at https://docs.brew.sh/Installation. Related : brew: command not found – possible fixes
Once homebrew is installed, run the following one-liner to update bash
:
brew update && brew install bash && sudo chsh -s /usr/local/bin/bash $(whoami)
We hope that this guide has helped those of you who want to hide "The default interactive shell is now zsh" in Terminal on macOS, as well as troubleshooting problems with the default bash
shell. If you do have questions, feel free to leave a commen below, we would love to hear about your experience. ❤
So zsh is more secure?
I am asking because I was going to join a (medical) webinar, but when I downloaded zoom I was disgusted by the amount of scientists who would be infiltrating my computer – the usual big guys and more. So I did not allow full access and deleted the app from my Mac., which I believe to be sufficient to uninstall it, however, I have been experiencing a few problems with performance, since.
Many thanks for your advice and this post.
Anne
Okay, I watched a few videos and comments in various places incl. Apple and better understand that this instruction from Apple is really for those who use Terminal. As recommended by Apple, I have managed to update to zsh in any event. I changed my pw before and after, being of nursery grade in this department. Cheers and all the best to everyone who is confused.
Type Terminal in finder and copy in the instruction without these ‘ ‘. I managed to get my password accepted at one point, though it is not printed out and I am not even sure it is necessary when one sees a locked key. It is locked. Anyway, it says the shell is changed to zsh, so as far as I know, job done.
*Type the command in and press enter.
Be not afraid : ).
But if you do not use Terminal, it is not essential (at the moment),
so one need not bother tbh.
Ooh, I believe, however, that my Mac is working much better.
It had become a wee bit difficult. : )
Thumbs up to Apple as always.
https://www.youtube.com/watch?v=-15v9iworAU
Hello the Netherlands, hello Daan! : )
From the sick and frail, everywhere.
Eyes to The Heavens.
Have a great day. : )