Terminal says 'default is ZSH' AND "update your account for ZSH"

Previous explanation does not resolve question. ZSH is default on Ventura (all updated).Every time I open terminal, I get:

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.



running the update gets me "no change"

visiting the apple support reference adds no useful information.


The problem persists


iMac 21.5″, OS X 10.11

Posted on Aug 5, 2023 11:10 AM

Reply
Question marked as Best reply

Posted on Aug 5, 2023 11:36 AM

If you do not wish to switch to the Zsh shell, and just want to suppress that Terminal message about Zsh being the default shell, then add this entry to your /Users/yourname/.bash_profile and then save it:


export BASH_SILENCE_DEPRECATION_WARNING=1


The next time you launch the Terminal, your shell will still be Bash and no Zsh gibberish will appear in the Terminal window.


If you decide that you do want a modern, Apple supported Terminal Shell in Zsh, then do the following which switches your default shell to Zsh:


/usr/bin/sudo /usr/bin/chsh -s /bin/zsh


Your administrator password will not echo when entered at the sudo password prompt. Since the Zsh shell does not read any prior Bash shell startup files, you need to create a basic file for it. Copy/paste the following into the Terminal and press return:


<<"EOF" > ~/.zshrc
export PATH=".:/usr/local/bin:${PATH}"
PS1="%m: %~ %% "
EOF


This will create a .zshrc file in your home directory that the Zsh shell reads each time you launch the Terminal. It sets your PATH and PS1 (prompt) environment variables. You can add to the .zshrc file as needed, but do not put shell commands in it.


At this point, any new Terminal launch will no longer have any message about Zsh, and you should have a normal Terminal invocation when launched.





15 replies
Question marked as Best reply

Aug 5, 2023 11:36 AM in response to Jay Gamel

If you do not wish to switch to the Zsh shell, and just want to suppress that Terminal message about Zsh being the default shell, then add this entry to your /Users/yourname/.bash_profile and then save it:


export BASH_SILENCE_DEPRECATION_WARNING=1


The next time you launch the Terminal, your shell will still be Bash and no Zsh gibberish will appear in the Terminal window.


If you decide that you do want a modern, Apple supported Terminal Shell in Zsh, then do the following which switches your default shell to Zsh:


/usr/bin/sudo /usr/bin/chsh -s /bin/zsh


Your administrator password will not echo when entered at the sudo password prompt. Since the Zsh shell does not read any prior Bash shell startup files, you need to create a basic file for it. Copy/paste the following into the Terminal and press return:


<<"EOF" > ~/.zshrc
export PATH=".:/usr/local/bin:${PATH}"
PS1="%m: %~ %% "
EOF


This will create a .zshrc file in your home directory that the Zsh shell reads each time you launch the Terminal. It sets your PATH and PS1 (prompt) environment variables. You can add to the .zshrc file as needed, but do not put shell commands in it.


At this point, any new Terminal launch will no longer have any message about Zsh, and you should have a normal Terminal invocation when launched.





Aug 5, 2023 3:45 PM in response to VikingOSX

Last login: Sat Aug  5 15:40:06 on ttys000




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.


HomeJay:~ jaygamel$ 


HomeJay:~ jaygamel$ 


HomeJay:~ jaygamel$ 


HomeJay:~ jaygamel$ <<"EOF" > ~/.zshrc


> export PATH=".:/usr/local/bin:${PATH}"


> PS1="%m: %~ %% "


> EOF


HomeJay:~ jaygamel$ `chsh -s /bin/zsh`


Changing shell for jaygamel.


Password for jaygamel: 


chsh: no changes made


HomeJay:~ jaygamel$ 


Next opening of terminal:


rinse and repeat. no change to issue. I'm probably not understanding something here.

Aug 5, 2023 4:28 PM in response to Jay Gamel

Once you run the change shell (chsh) command specifying Zsh, then it is done and running it again will not change anything.


That Terminal prompt is not the format that I placed in the HERE script that you copied, pasted into Terminal, and then were asked to press return to execute it. If you had done that, quit, and relaunched Terminal, the prompt would look like this, allowing for your hostname and my custom coloration where tilde (~) represents your home directory:



In the Terminal, enter the following command:


echo $SHELL


It should be /bin/zsh at this point.

Aug 5, 2023 1:23 PM in response to 6x6

I don't have anything with a fresh install on it, but if I recall correctly, I had a Bash shell active until I ran the change shell command pointing it at Zsh and configured the .zshrc dot file to support it. I don't have the time (or inclination on this lazy Saturday afternoon) to forfeit the Catalina install on my Air and test this… 😉


I still believe this is Apple's way of informing you that they want you to use the supported Zsh shell, and don't automatically change the existing shell out from under you without your direct chsh involvement. And if one just used that BASH_SILENCE… environment variable in their Bash dot file, without running chsh, then one could blissfully ignore anything about Zsh.

Oct 2, 2023 5:11 PM in response to VikingOSX

I'm having the same problem. I ran 'chsh -s /bin/zsh', entered my password. Then when I enter 'echo $SHELL', it shows as /bin/bash. If I enter 'chsh -s /bin/zsh' again, then it says 'chsh: no changes made'


I don't know why the Terminal popped up with this message to begin with and it's all beyond my user skills. According to System Settings-Software Update, my MAC is up to date with the latest OS.


Any harm in leaving it as is?

Oct 2, 2023 5:25 PM in response to dpfinch

I'm having the same problem. I ran 'chsh -s /bin/zsh', entered my password. Then when I enter 'echo $SHELL', it shows as /bin/bash. If I enter 'chsh -s /bin/zsh' again, then it says 'chsh: no changes made'

You will still be in a bash shell after running it. You have to open a new shell window in order to have it switch to zsh. Maybe quit and restart Terminal.

If you have done that and you are still in Bash, you can try to manually set it in Users & Groups System Settings.

Ctrl-click on your user and select Advanced Options…

Change the default shell to zsh. I don't know if you would need to log out and log back in, perhaps.

Oct 22, 2023 10:53 AM in response to Spaghettidon

Barney-15E wrote:

Spaghettidon wrote:

How to update zsh in terminal on iMac to computer illiterate person.
Please help or direct to a source that speaks very elementary.

You just copy and paste the command it shows you in the message.


Or do nothing at all. There is no reason to be using Terminal. Quit the app.


If you have a reason to be using Terminal, explain.

Oct 24, 2023 2:40 PM in response to Jay Gamel

For people who are not able to make the change, perhaps some third party software is interfering with the normal operation of macOS, or the Mac is being managed by an MDM profile by a school or business (or previous owner of the Mac). If you are not the main user of this Mac, then perhaps the owner/admin of this Mac has configured the other user accounts not to be able to modify certain settings...even if the secondary users have an admin account (managed systems can even have admin user privileges restricted).


It should also be possible to change the shell presented when launching Terminal by modifying the setting within the Terminal Preferences/Settings within the GUI interface itself. Change the "Shells open with:" option and select "Command (complete path)" and entering "/bin/zsh" without the double-quotes (located on the "General tab section). By default it should show "/bin/bash" for people who have upgraded from older versions and have not been successful in using the command line utility to modify the default shell setting (again assuming macOS has not been configured to prevent modification of these settings). This will allow the Terminal app to launch new sessions with zsh, however, if you later toggle back to the "Default Login shell" option, then it will revert back to the bash shell and you will continue to get the notice about zsh being the new default interactive shell.


Unless you use the command line all the time, there is no need to make any changes whatsoever. Just ignore the message.....it quickly scrolls off the screen anyway after issuing a few commands so why the big deal? If you are familiar with the command line, then most likely you already have a shell you are comfortable using...so just use that shell.


FYI, for people who are copying & pasting the command, make sure you are only copying & pasting the following text...do not include the "run" part and not including the trailing period (aka dot):

chsh  -s  /bin/zsh


or it can include the back ticks as shown in the notification:

`chsh  -s  /bin/zsh`


Copying & pasting either of these two lines I just posted should just work unless your macOS has been modified by some custom configuration, management profile, or third party software. These commands should also work even if your user account is a Standard account (again assuming no customizations which have limited the ability to customize the user account).

An unmodified macOS will have these commands work every time. If they are not working, then you need to look at your system to find out what apps, settings, or custom configuration or management is being performed on your computer. You may even need to take your computer to Apple or an AASP for assistance since it may require a hands on experience to figure out why a simple command is failing to work.

Terminal says 'default is ZSH' AND "update your account for ZSH"

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.