“The default interactive shell is now zsh” message – Everything you need to know

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.

"The default interactive shell is now zsh" message - Everything you need to know

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.

  1. Choose Apple > System Preferences > Users & Groups.
  2. Click the lock icon, then input your account name and password.
  3. Control-click your user name in the list of users on the left, then choose Advanced Options.
  4. Select /bin/zsh from the Login shell menu, then click OK to save the changes.

user advanced options with highlighted login shell pointing to /bin/zsh

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. ❤

5 thoughts on ““The default interactive shell is now zsh” message – Everything you need to know”

  1. 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

    Reply
    • 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.

      Reply
  2. *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.

    Reply
  3. Ooh, I believe, however, that my Mac is working much better.
    It had become a wee bit difficult. : )
    Thumbs up to Apple as always.

    Reply

Leave a Comment