Zsh + Oh My Zsh + Powerlevel10k: shell produttiva in 5 minuti

Pubblicato il 14/05/2026 Linux

Bash e' storico e universale, ma zsh e' oggettivamente piu' comodo per uso quotidiano: autocomplete migliore, ricerca history intelligente, migliaia di plugin.

1. Installazione zsh

sudo apt install zsh                  # Debian/Ubuntu
sudo dnf install zsh                  # Fedora
sudo pacman -S zsh                    # Arch
chsh -s $(which zsh)                  # rendilo shell di default

Logout e login. Al primo avvio ti chiede setup base: premi q per skippare (poi mettiamo Oh My Zsh sopra).

2. Oh My Zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

~30 secondi. Ora hai un ~/.zshrc configurato con 300+ plugin disponibili (non tutti attivi).

3. Powerlevel10k

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Nel ~/.zshrc cambia:

ZSH_THEME="powerlevel10k/powerlevel10k"

Ricarica: source ~/.zshrc. Parte un wizard che ti chiede stile prompt (icone, colori, layout). Segui: 2 minuti.

4. Font Nerd Font (per icone del prompt)

sudo apt install fonts-firacode fonts-jetbrains-mono
# per Nerd variants complete:
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/JetBrainsMono.zip
unzip JetBrainsMono.zip
fc-cache -fv

Poi imposta il font del tuo terminale (GNOME Terminal, Konsole, iTerm, ecc.) a JetBrainsMono Nerd Font.

5. Plugin utili (Oh My Zsh)

Nel ~/.zshrc:

plugins=(
  git
  docker
  docker-compose
  kubectl
  history-substring-search
  colored-man-pages
  extract
  z
  zsh-autosuggestions
  zsh-syntax-highlighting
)

6. Plugin extra da installare

# zsh-autosuggestions (suggerisce comandi dalla history mentre digiti, in grigio)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# zsh-syntax-highlighting (colora comandi verdi=validi rossi=errore)
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Ricarica: source ~/.zshrc. La differenza si sente subito.

7. Alias comodi

# In ~/.zshrc:
alias ll='ls -alh --color=auto'
alias ..='cd ..'
alias ...='cd ../..'
alias gs='git status'
alias gp='git pull'
alias ga='git add'
alias gc='git commit -m'
alias gpush='git push'
alias ports='sudo lsof -i -P -n | grep LISTEN'
alias serve='python3 -m http.server 8000'

8. Fuzzy finder fzf

sudo apt install fzf

Poi Ctrl+R nella history diventa una ricerca fuzzy interattiva (invece della vecchia bash reverse-i-search). Enorme upgrade.

9. Personalizzare Powerlevel10k dopo

p10k configure       # rilancia il wizard
nano ~/.p10k.zsh     # tweak manuale (colori, segmenti, spacing)

10. Sync della config tra macchine

Metti in un git repo privato: ~/.zshrc, ~/.p10k.zsh, ~/.oh-my-zsh/custom/. Su una nuova macchina cloni, sistemi symlink, e sei operativo in 30 secondi.

mkdir ~/dotfiles && cd ~/dotfiles
git init
ln -sf ~/dotfiles/.zshrc ~/.zshrc
Attenzione: sui server di produzione (specie amministrati da piu' persone) evita di cambiare la shell dell'utente root. Se zsh crasha per un problema di dipendenze, potresti chiuderti fuori. Meglio installare zsh per il tuo utente personale, e mantenere root su bash puro.