From Bash to Zsh: My Terminal Setup in 2025

4 min read

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 type
  • zsh-syntax-highlighting: Colors commands and flags based on correctness
  • git: Adds helpful Git info to the prompt
  • colored-man-pages: Makes man pages easier to read
  • fzf-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 branches
  • bat – A better cat with syntax highlighting
  • exa – A modern replacement for ls
  • tldr – Simplified man pages
  • gh – GitHub CLI for managing PRs and issues
  • starship – 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.