About Posts Notes Reading
Posts

Zsh is your friend

· 2 min read

If Bash is the kid who gets picked last in gym class, Zsh is the athletic all-rounder everyone wants on their team. I switched to Zsh a while back and haven’t looked back.

Why Zsh?

Zsh is largely compatible with Bash, so your existing knowledge transfers over. But it adds some genuinely useful features on top.

Better Auto-completion

This is the killer feature. Zsh’s tab completion is context-aware in ways Bash isn’t.

Try typing kill and hitting tab. Instead of showing you files in the current directory (useless), Zsh shows you running processes with their PIDs. That’s actually helpful.

The same intelligence applies to command options, git branches, ssh hosts from your config, and much more.

Shared History

Open multiple terminal windows? Zsh can share command history across all of them. No more “I know I ran that command, but it was in a different tab.”

Typo Correction

Mistype a command? Zsh will ask if you meant something else:

$ gti status
zsh: correct 'gti' to 'git' [nyae]?

Editing Modes

Prefer vi keybindings? Emacs? Zsh supports both for command-line editing.

Oh My Zsh

If you want to supercharge your Zsh setup, check out oh-my-zsh. It’s a community-driven framework for managing your Zsh configuration with:

  • 40+ plugins for things like git, docker, npm, and more
  • 80+ themes
  • Auto-updates

It makes getting started with Zsh much easier.

Try It

If you’re comfortable with Bash, give Zsh a try. On macOS, it’s now the default shell. On Linux, install it with your package manager and run chsh -s $(which zsh) to make it your default.

For a deeper dive, check out From Bash to Z Shell: Conquering the Command Line by Kiddle, Peek, and Stephenson.