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
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.