Ripasso dei comandi da terminale Linux per il 2026
Stessa filosofia, meno intoppi. Aggiornamenti “drop-in” che puoi installare già questo pomeriggio
tl;dr
Le prime quattro righe della tabella riportano i classici comandi Unix insieme alle loro moderne alternative, pronte all’uso. I nuovi strumenti sono più veloci, più efficienti e più gradevoli alla vista. Tuttavia, le righe che spiccano sono le ultime due, in cui compaiono fzf e zoxide. Queste colmano delle lacune di cui il toolkit originale non si è mai dovuto preoccupare.
Quando Unix fece la sua comparsa nel 1970, nessuno aveva megabyte di cronologia dei comandi da esplorare, né una directory home con dieci livelli di sottodirectory.
Sia fzf che zoxide modificano le due operazioni che si eseguono più spesso nel terminale: la ricerca nella cronologia e lo spostamento tra le directory. Una volta che li si è utilizzati abbastanza da farli diventare un riflesso condizionato, il vecchio metodo sembra ormai obsoleto.
“
: Scrivete programmi che facciano una sola cosa e la facciano bene.
: Scrivete programmi che funzionino insieme.
: Scrivete programmi in grado di gestire flussi di testo, perché quella è un’interfaccia universale.”
zoxide - cd più intelligente
Le limitazioni di cd iniziano a manifestarsi quando ci si trova a gestire una struttura di directory di grandi dimensioni. Ci si ritrova con un albero enorme e ingombrante, di cui in genere si visitano solo alcune parti alla volta. La realtà è che disponiamo di strutture di file complesse all’interno delle quali ci muoviamo in modo semplice. Per gestire questa situazione, lo strumento utilizza il concetto di «Frecency», un termine che unisce «Frequency» (frequenza) e «Recency» (attualità). In altre parole, con quale frequenza si accede a una directory e quando vi si è acceduto l’ultima volta. È possibile trovare alcuni buoni esempi di come utilizzarlo nel repository GitHub di zoxide.
Nel caso in cui si desideri qualcosa di più interattivo (ad esempio, quando sono presenti più directory con lo stesso nome), è disponibile il comando interattivo `zi`, che elenca tutte le opzioni in una finestra fzf,
fzf - un motore di ricerca fuzzy
Questo strumento è la mia risposta standard alla domanda che mi viene spesso posta: “"Di quale strumento del Terminale non potresti fare a meno?». Non fa nulla di particolarmente rivoluzionario, si limita a ricevere alcuni dati in ingresso e ti permette di selezionare uno o più elementi al loro interno. Avere un modo veloce ed efficiente per setacciare grandi quantità di dati è sempre utile.
Il caso d'uso più comune è semplicemente quello di recuperare rapidamente alcuni file; ad esempio, se pensi: «…c'è un file FreeCAD su cui mi sembra di aver lavorato, ma che non ricordo bene, e che dovrebbe trovarsi da qualche parte in questa directory», basta usare il comando:
> fd -e FCStd | fzf
che si limita a individuare tutti i file presenti nella directory corrente (e nelle sottodirectory) con estensione FCStd e poi mette a disposizione uno strumento di ricerca approssimativa per aiutarti a individuarli con maggiore precisione.
Una volta compreso il concetto, ovvero che è necessario inserire una grande quantità di testo per poi selezionarne una parte, le applicazioni possibili non finiscono più. Per fare un esempio estremo, ecco la singola riga (suddivisa per chiarezza) che mi permette di prendere tutta la musica presente nella mia libreria e selezionare gli album che voglio includere in una playlist, al ritmo della quale posso muovere la testa mentre digito (utilizzando ncmpcpp).
alias newmusic=' fd . "/data/nfs/shared/music/" \ -t d \ --min-depth 2 -d 2 |
rg -v "@" | sed "s|/data/nfs/shared/music/||" |
fzf --multi --bind "ctrl-a:seleziona-tutto" |
while IFS= read -r dir; do fd -t f -e mp3 -e flac -e m4a . "/data/nfs/shared/music/$dir" done |
ordina > $HOME/.mpd/playlists/newmusic.m3u '
Ecco un video che mostra quel comando in azione e l'apertura del brano musicale in nmpcpp. Un problema risolto con un solo comando e una serie di "mattoncini" efficienti già esistenti, senza quella sgradevole sensazione di "vibe-coding".
Post-it
Se siete un po’ come me, c’è un po’ di distanza tra il pensare “Devo usare questo utile strumento da riga di comando” e il ricordarsi la formula magica che lo fa funzionare (mi vengono in mente i parametri di tar ). Ecco quindi alcune semplici sintesi di alcuni comandi utili per entrambi gli strumenti (trovati eseguendo il comando tldr ):
zoxide - cd più intelligente
# Jump to highest ranked directory matching "foo"
z foo
# Match multiple keywords
z foo bar
# Interactive selection (requires fzf)
zi foo
# cd to a subdirectory starting with foo
z foo/
# cd one level up
z ..
# cd to previous directory
z -
# Tab completion for interactive selection
z foo<SPACE><TAB>
fzf - fuzzy finder
# Find files in a directory
find path/to/dir -type f | fzf
# Search running processes
ps aux | fzf
# Select multiple files (<Shift Tab>)
find path/to/dir -type f | fzf --multi > file
# Start with a query
fzf --query "query"
# Pattern: start with core, end with go|rb|py
fzf --query "^core go$ | rb$ | py$"
# Exclude pyc and require travis
fzf --query '!pyc travis'

