If your Mac is running macOS Catalina (2019) or later, your default shell is zsh. Before that, it was bash.

For most people, this changes nothing about how you use Terminal. The basic commands are the same.

Check Which Shell You're Using

echo \$SHELL

You'll see either:

  • /bin/zsh - You're using zsh
  • /bin/bash - You're using bash

What Actually Changed

Apple switched to zsh because newer versions of bash have licensing that Apple didn't want to deal with. The version of bash that ships with Mac is from 2007.

What stayed the same:

  • All your basic commands: cd, ls, cp, mv, rm, mkdir, etc.
  • How you navigate folders
  • How you run programs
  • How you install software

What changed:

  • Your config file is now .zshrc instead of .bash_profile
  • The prompt looks slightly different
  • Some advanced scripting syntax differs

The One Thing You Probably Need to Do

If you have customizations in your old .bash_profile - aliases, PATH additions, functions - you need to move them to .zshrc.

Check if you have a bash profile:

cat ~/.bash_profile

If you see content there, copy it over:

cat ~/.bash_profile >> ~/.zshrc

Then reload:

source ~/.zshrc

Your settings now work in zsh.

Config File Locations

Shell Config file
zsh ~/.zshrc
bash ~/.bash_profile or ~/.bashrc

When you want to add aliases, PATH changes, or other customizations, edit the file that matches your shell.

To edit your zsh config:

nano ~/.zshrc

Should You Switch Back to Bash?

Probably not. Zsh is the future on Mac. New tutorials assume zsh. New tools are tested on zsh first.

But if you have a specific reason - like old scripts that only work in bash - you can switch:

chsh -s /bin/bash

Restart Terminal for it to take effect.

To switch back to zsh:

chsh -s /bin/zsh

That Warning Message

When you open Terminal, you might see:

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.

This means your account is still set to bash, but Apple wants you to switch. You can:

  1. Run the command to switch to zsh (recommended)
  2. Ignore it - bash still works
  3. Silence the warning by adding this to .bash_profile:
export BASH_SILENCE_DEPRECATION_WARNING=1

Zsh Advantages

Zsh has some nice features bash doesn't (or handles less elegantly):

Better tab completion: Zsh can complete command options, git branches, and more. It's also case-insensitive by default.

Spelling correction: Zsh can suggest corrections when you mistype commands.

Better prompts: Easier to customize. Frameworks like Oh My Zsh make it trivial.

Syntax highlighting: With plugins, commands change color as you type - valid commands look different from typos.

For beginners, these differences are minor. For power users, zsh is generally nicer to use.

Bash Advantages

Wider compatibility: Bash is the default on Linux and most servers. Scripts written in bash are more portable.

More documentation: Decades of tutorials and Stack Overflow answers assume bash.

Simpler: If you don't need zsh's extra features, bash is more straightforward.

If you're writing scripts that need to run everywhere (not just your Mac), bash is the safer choice.

Quick Comparison

Feature Bash Zsh
Default on Mac (2019+) No Yes
Config file .bash_profile .zshrc
Tab completion Basic Advanced
Case sensitivity Sensitive Insensitive by default
Spelling correction No Yes
Plugin ecosystem Limited Rich (Oh My Zsh)
Script portability High Medium

The Bottom Line

If you're a beginner, use whatever your Mac gave you. It's probably zsh. Don't overthink it.

If you're following old tutorials that mention .bash_profile, mentally replace it with .zshrc.

The commands you're learning work exactly the same in both shells. The differences only matter when you get into advanced customization or scripting.


Keep Learning

Understanding your shell is one piece of Terminal literacy. The commands, navigation, and concepts apply regardless of which shell you use.

For a complete foundation, check out the free course at Mac Terminal for Humans.