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
.zshrcinstead 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:
- Run the command to switch to zsh (recommended)
- Ignore it - bash still works
- 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.