From Bash to Zsh: My Terminal Setup in 2025
From Bash to Zsh: My Terminal Setup in 2025
I used to live in Bash. For years, it was my trusty companion: the first thing I configured on a new system and the shell I used for automation, deployment, and daily development. But somewhere along the way — sometime in late 2024 — I made the jump to Zsh.
And I haven’t looked back.
In this post, I’ll walk through my terminal setup as it stands in 2025: the shell, the plugins, the tools, and the reasons why I think every developer should at least try Zsh this year.
Why I Switched from Bash to Zsh
Let’s be clear — Bash isn’t broken. It’s fast, it’s everywhere, and it’s battle-tested. But over time, I started to crave features I just couldn’t get easily without a mountain of config files:
- Smarter autocompletion
- Better history searching
- Themes and prompt customization
- Plugin support that didn’t feel like a hack
Zsh offered all that out of the box — and with frameworks like Oh My Zsh or zinit, it turned into something powerful and actually fun to use.
My 2025 Terminal Stack
Here’s what my terminal setup looks like today.
🐚 Shell: zsh
I run Zsh as my default shell on macOS and Fedora. Switching was as easy as:
``` chsh -s $(which zsh) ```
Zsh brings built-in improvements to tab completion, globbing, and history. But the real magic comes from…
⚙️ Framework: Oh My Zsh
I use Oh My Zsh for plugin and theme management. It’s simple, stable, and does what I need without much fuss.
To install:
``` sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" ```
🧩 Plugins I Use
I keep my setup lean, but these are my must-haves:
zsh-autosuggestions
: Suggests commands based on history as you typezsh-syntax-highlighting
: Colors commands and flags based on correctnessgit
: Adds helpful Git info to the promptcolored-man-pages
: Makes man pages easier to readfzf-tab
: Adds fuzzy search to tab completion
Installation via Oh My Zsh is easy — just clone them into the plugin folder and add to your .zshrc
.
🎨 Theme: powerlevel10k
This theme is fast, flexible, and beautifully informative. It supports git status, node versions, docker context — all visible at a glance.
Install with:
```
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
```
Then update your .zshrc
:
``` ZSH_THEME="powerlevel10k/powerlevel10k" ```
Run p10k configure
on first run to customize.
💻 Terminal Emulator: Warp
and Kitty
- On macOS, I use Warp: GPU-accelerated, modern, and actually understands what a command is. Excellent for AI-assisted workflows.
- On Linux, I run Kitty: fast, minimal, supports ligatures and tabs.
🛠 Other Tools I Rely On
fzf
– Fuzzy finder for everything: history, files, Git branchesbat
– A bettercat
with syntax highlightingexa
– A modern replacement forls
tldr
– Simplified man pagesgh
– GitHub CLI for managing PRs and issuesstarship
– Lightweight prompt alternative to Powerlevel10k (for minimal setups)
My .zshrc
Highlights
Here are some useful lines from my config:
``` export ZSH="$HOME/.oh-my-zsh" ZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(git zsh-autosuggestions zsh-syntax-highlighting fzf colored-man-pages)
source $ZSH/oh-my-zsh.sh
Faster CLI tools
alias cat="bat" alias ls="exa --icons" alias ..="cd .." alias ...="cd ../.." alias gco="git checkout" alias gst="git status" ```
I also set up fzf
keybindings and history search:
``` [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh ```
Conclusion: The Little Things Add Up
Zsh didn’t revolutionize my workflow overnight — but it made everything smoother. Commands are easier to recall, my prompt tells me what’s going on, and small quality-of-life upgrades make the terminal more enjoyable.
For someone who spends hours every day in the terminal, that’s not nothing.
If you’ve been stuck in Bash for years, consider this your sign: try Zsh in 2025. You might find that the shell can be both powerful and pleasant.
What’s your terminal setup like in 2025? Anything you swear by that I missed? Let’s swap dotfiles in the comments.