Fish Shell 4.8: miglioramenti e novità per un’esperienza terminale più moderna

Fish Shell, (acronimo di Friendly Interactive Shell) spesso indicata semplicemente come fish, è una shell a riga di comando moderna, progettata per offrire un’esperienza d’uso più intuitiva rispetto alle shell tradizionali come Bash (Bourne Again SHell), Zsh (Z Shell) o Ksh (Korn Shell). Si tratta di un progetto open source, completamente libero, pensato per semplificare la vita sia agli utenti alle prime armi sia a chi utilizza quotidianamente il terminale per lavoro.
Uno degli aspetti che rendono Fish Shell particolarmente interessante è la sua sintassi chiara, accompagnata da un completamento automatico avanzato, una gestione intelligente della cronologia dei comandi e un sistema di configurazione accessibile anche a chi non ha familiarità con script complessi. A differenza di molte altre shell, Fish Shell non richiede la conoscenza di linguaggi di scripting articolati per essere personalizzata, caratteristica che la rende una scelta ideale per chi desidera un ambiente potente ma privo di complicazioni inutili.
Il progetto fish nasce nel 2004 grazie a Axel Liljencrantz, con l’obiettivo di creare una shell che fosse allo stesso tempo potente, semplice da usare e coerente nel comportamento e il 13 febbraio 2005 viene rilasciata la prima versione stabile Fish Shell 1.0. Nel corso degli anni, Fish Shell ha conquistato una comunità sempre più ampia grazie alla sua attenzione all’usabilità e alla produttività, diventando una delle alternative più apprezzate nel panorama delle shell moderne.
La shell era storicamente sviluppata in C++, ma con l’arrivo della versione Fish Shell 4.0 il progetto ha completato una riscrittura totale in Rust. Questa transizione, iniziata con i primi moduli sperimentali e culminata nella piena adozione di Rust con la versione Fish Shell 4.0, ha permesso di ottenere un codice più sicuro, più stabile e più semplice da mantenere. Rust, grazie alla sua gestione rigorosa della memoria e alla sua architettura moderna, rappresenta oggi la base tecnologica dell’intera shell, su cui si fondano tutte le versioni successive della serie 4.x.
Fish Shell è compatibile con la maggior parte delle distribuzioni GNU/Linux, con macOS e con altri sistemi Unix-like, ed è distribuita sotto licenza GNU General Public License versione 2 (GPLv2), come indicato nel repository software ufficiale, una licenza libera che garantisce agli utenti il diritto di utilizzare, modificare e ridistribuire il software.
Il pubblico ideale di Fish Shell è composto da utenti che cercano una shell moderna, veloce e dotata di funzionalità avanzate. È particolarmente apprezzata da sviluppatori, amministratori di sistema e da chi trascorre molte ore al terminale, ma rappresenta anche un’ottima scelta per chi si avvicina per la prima volta al mondo delle shell e desidera un’esperienza più guidata e meno ostica.
La nuova versione Fish Shell 4.8 è stata rilasciata ufficialmente ieri 24 giugno 2026, mentre la versione stabile precedente, Fish Shell 4.7, risale al 6 maggio 2026. Questo aggiornamento rappresenta una versione di manutenzione che introduce anche miglioramenti significativi.
Novità in Fish Shell 4.8
Fish Shell 4.8 introduce numerosi miglioramenti che rendono l’utilizzo quotidiano della shell più coerente, prevedibile e adatto a scenari avanzati di scripting. Gli interventi riguardano la gestione della cronologia, i completamenti automatici, il sistema di localizzazione, il comportamento interattivo e vari aspetti legati allo scripting.
Introduzione al nuovo sistema di localizzazione
Una delle modifiche più significative è l’adozione di Fluent, un moderno sistema di localizzazione sviluppato da Mozilla, che sostituisce il precedente GNU gettext. Fluent permette una gestione più flessibile dei testi tradotti, soprattutto quando integrati in codice scritto in Rust.
Il progetto utilizza ora strumenti basati sulla libreria fluent‑ftl‑tools, che offrono ai traduttori un ambiente più aggiornato e coerente. Questo passaggio semplifica la manutenzione delle traduzioni e migliora la qualità dei messaggi mostrati all’utente.
Miglioramenti ai completamenti automatici
Fish Shell 4.8 introduce una modifica importante per chi sviluppa completamenti personalizzati. Le opzioni –command e –path del comando integrato complete non eseguono più l’operazione di unescape, cioè la rimozione dei caratteri di escape dagli argomenti.
Questo cambiamento aumenta la prevedibilità del comportamento dei completamenti, ma può richiedere un aggiornamento degli script esistenti che si basavano sul comportamento precedente.
Le abbreviazioni configurate con –position=anywhere possono ora essere completate non solo nella posizione del comando, ma anche negli argomenti. Questo rende l’esperienza interattiva più flessibile, soprattutto per chi utilizza abbreviazioni estese o complesse.
Ricerca nella cronologia più affidabile
La gestione della cronologia dei comandi è stata migliorata per risolvere un problema che si manifestava in presenza di sessioni concorrenti. In precedenza, alcuni comandi rieseguiti in sessioni parallele potevano andare persi.
Ora, Fish registra correttamente i comandi provenienti da più sessioni simultanee, garantendo una cronologia completa, coerente e recuperabile in ogni contesto.
Miglioramenti all’interazione da tastiera
La nuova versione introduce diverse correzioni che migliorano l’esperienza interattiva:
- La combinazione Ctrl+W, utilizzata per spostarsi tra i componenti del percorso, ora ignora correttamente i caratteri di escape, rendendo la navigazione più intuitiva.
- Il completamento dei gruppi di opzioni brevi gestisce correttamente l’opzione –condition, evitando comportamenti imprevisti.
- La combinazione Ctrl+C interrompe correttamente alcune funzioni che in precedenza potevano rimanere attive, prevenendo inserimenti indesiderati nella riga di comando.
Novità per lo scripting
Il comando cd supporta ora le opzioni -L e -P, già presenti in altre shell come Bash e Zsh. Queste opzioni permettono di controllare la risoluzione dei collegamenti simbolici:
- -L segue i collegamenti simbolici.
- -P utilizza il percorso fisico reale, ignorando i collegamenti.
Inoltre, se la variabile $PWD (che rappresenta la cartella di lavoro corrente) è stata modificata manualmente, il comando cd con un percorso relativo ritenta l’operazione utilizzando la cartella effettiva, garantendo un comportamento più prevedibile e coerente.
Le espansioni annidate con parentesi graffe {} ora rimuovono in modo coerente gli spazi iniziali e finali non citati, migliorando l’affidabilità dei comandi complessi.
Il comando bind, utilizzato per associare tasti a funzioni, mostra ora anche i file in cui tali associazioni sono definite. Questo facilita la manutenzione e la personalizzazione dei binding, soprattutto in configurazioni avanzate.
Correzioni di regressioni e miglioramenti generali
La nuova versione risolve diverse regressioni presenti nelle versioni precedenti. Tra le più rilevanti:
- Correzioni nella modalità vi, in particolare per i comandi c e W, che ora funzionano come previsto.
- Eliminazione della duplicazione dei completamenti smartcase quando si preme ripetutamente il tasto Tab. Lo smartcase è un sistema che distingue automaticamente tra maiuscole e minuscole durante la ricerca.
- Risoluzione di un bug che inseriva testo indesiderato nella riga di comando quando si premeva il tasto Escape durante l’esecuzione di un comando.
Download e Riferimenti
Fish Shell 4.8 può essere installata tramite i repository software ufficiali delle principali distribuzioni GNU/Linux, che forniscono pacchetti software già pronti e integrati nei rispettivi sistemi di gestione. Per chi preferisce non utilizzare i repository software, sono disponibili binari autonomi per GNU/Linux direttamente nella pagina del repository software GitHub, utili per chi desidera eseguire il programma senza installarlo in modo tradizionale o compilare il codice sorgente.
Le istruzioni dettagliate per l’installazione e la configurazione sono disponibili sul sito ufficiale di Fish Shell. La documentazione completa, inclusi tutorial e guide per la configurazione avanzata, è accessibile alla pagina fishshell.com/docs.
Per approfondire tutte le novità introdotte in Fish Shell 4.7, è possibile consultare il changelog (registro delle modifiche) ufficiale.
Fonte: https://github.com/fish-shell/fish-shell/releases/tag/4.8.0
Fonte: https://linuxiac.com/fish-shell-4-8-improves-history-search-scripting-and-completions/
Se vuoi sostenermi, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che ho nel mio sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul mio negozio online, quelle mancanti possono essere comunque richieste.
Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
























