Resources for Adapting to zsh in Catalina

Originally published at:

One of the big changes in macOS 10.15 Catalina is that Apple has replaced the default bash shell in Terminal with zsh, a move that is sure to cause headaches for system administrators. Josh Centers offers some resources to help you adapt to the change.

1 Like

One additional very important (IMO) resource if you are thinking about switching to zsh is The Zsh Mailing List aka “zsh-users”.

I have been a member of that email list since at least 1995 and have found it to be invaluable, and the people are extremely helpful and friendly, unlike some corners of the Internet. It’s a small group, but if you need help with a zsh-specific question, it’s probably the best place to turn.

Thanks. This was a super-helpful article. I know not a ton of people were interested in Terminal in the survey, but it interests me a ton. I’m a programmer and I spend a fair amount of time in the terminal. I was aware that macOS’ bash and some other command-line tools are archaic because of the GPL license. I’m not switching to Catalina any time soon, but now I’m excited to switch to zsh. This article gave me pointers to what look to be great tools to give me a good start.

1 Like

Like Steve, I also spend a lot of time in shells so I definitely appreciate articles like these. Thank you, Josh and TidBITS team. :slight_smile:

Hold off on installing a plug-in system like the aforementioned Oh My Zsh until you have a good grasp on how zsh and what you need from Oh My Zsh. No need to make things overly complicated from the start.

I would disagree with this, install oh_my_Zsh right away because that gives you an idea of just how powerful zsh is. The configuration is very simple for anyone who is familiar with using a shell.

1 Like

Thanks, Steve and Simon, I’m glad you guys enjoyed the article. I’d love to write more about the command line, and I will whenever I get an excuse :slight_smile:

OH, and here is the most useful zsh function I have found, it turns ^Z into a toggle. It’s like magic.

ctrlz() {
  if [[ $#BUFFER == 0 ]]; then
    fg >/dev/null 2>&1 && zle redisplay
    zle push-input
zle -N ctrlz
bindkey '^Z’ ctrlz

Editting in vim, hit ^Z to get to the shall, do some stuff, hit ^Z and you’re right back in vim!