💻 Linux: The Power Shell & CLI Essentials
::: info L’ambiente di comando è lo strumento più utilizzato da un ingegnere. In questa pagina configuriamo uno stack basato su Zsh per la produttività, Tmux per la persistenza delle sessioni e una suite di utility moderne che sostituiscono i vecchi comandi Unix degli anni ‘70. :::
1. Zsh & Oh My Zsh: Produttività Aumentata
Zsh offre funzionalità di globbing, correzione e auto-completamento superiori a Bash. Oh My Zsh è il framework che ne semplifica la gestione tramite plugin.
Installazione e Configurazione
# 1. Installazione Zsh
sudo nala install zsh -y
# 2. Imposta Zsh come shell predefinita
chsh -s $(which zsh)
# 3. Installazione Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Plugin Indispensabili
Modifica il file ~/.zshrc e abilita i plugin per il risparmio di tempo:
# Plugin da scaricare (richiedono git clone)
# zsh-autosuggestions: Suggerisce comandi basandosi sulla cronologia
# zsh-syntax-highlighting: Evidenzia errori di sintassi in tempo reale
plugins=(
git
docker
python
extract
zsh-autosuggestions
zsh-syntax-highlighting
)
2. Tmux: Terminal Multiplexer
Tmux permette di dividere il terminale in più pannelli e di mantenere i processi attivi anche se chiudi la finestra o perdi la connessione SSH.
Perché è critico per il tuo workflow:
- Persistenza: Avvii una compilazione C++ lunga sul Mac Pro, ti scolleghi, e torni dopo un’ora riprendendo la sessione con
tmux attach. - Layout: Puoi avere il codice in un pannello, i log in un altro e il monitoraggio risorse in un terzo.
Comandi Rapidi (Prefix: Ctrl+b):
%: Dividi verticalmente.": Dividi orizzontalmente.d: Scollegati dalla sessione (lasciandola attiva).s: Elenca sessioni attive.
3. CLI Essentials: La Nuova Generazione
Sostituiamo i vecchi comandi con alternative scritte in Rust o C++ moderno, ottimizzate per la velocità e la visualizzazione.
| Vecchio Comando | Alternativa Moderna | Perché? |
|---|---|---|
cat | bat | Syntax highlighting e integrazione Git. |
find | fd | Molto più veloce e sintassi semplificata. |
grep | rg (ripgrep) | Performance estreme (cerca in interi repo in ms). |
ls | eza | Colori, icone e visualizzazione ad albero integrata. |
top / htop | btop | Interfaccia grafica ricca e supporto GPU. |
📈 Terminal Stack Architecture (Mermaid)
🛠️ Aliases Suggeriti per il Wiki
Aggiungi queste scorciatoie al tuo ~/.zshrc per standardizzare il workflow:
# Navigazione e Visione
alias ls='eza --icons --group-directories-first'
alias cat='bat --paging=never'
alias grep='rg'
# Scorciatoie per il sistema
alias update='sudo nala upgrade'
alias venv='python3 -m venv .venv && source .venv/bin/activate'
# Proxmox / SSH
alias pve-ssh='ssh root@192.168.1.100'
alias ha-ssh='ssh root@192.168.1.101'
💡 Note dell’Ingegnere (Critical Thinking)
- Plugin Bloat: Oh My Zsh può diventare lento se installi troppi plugin. Se la shell impiega più di 200ms per aprirsi, valuta l’uso di un manager di plugin più leggero come Zinit.
- FZF (Fuzzy Finder): Installa
fzf(sudo nala install fzf). È un’utility che ti permette di cercare nella cronologia o tra i file con una ricerca “fuzzy” (approssimativa). Una volta provata, non potrai più farne a meno. - Nerd Fonts: Per vedere correttamente le icone di
ezae dei temi Zsh, devi installare un “Nerd Font” (es. JetBrainsMono Nerd Font) sul PC da cui ti colleghi.
Ultimo aggiornamento: {{UPDATE_DATE}} | Tags: #Linux #Zsh #Tmux #CLI #RustTools #Productivity