Rilasciata Fish Shell 4: Riscritta in Rust per Migliorare Prestazioni e Sicurezza

La comunità di sviluppatori di Fish Shell ha appena rilasciato la versione Fish Shell 4 di questo popolare progetto, che introduce miglioramenti significativi sia a livello tecnico che utente. La novità più importante è che Fish Shell 4 è stata completamente riscritta dal linguaggio C++ in Rust, un linguaggio di programmazione noto per la sua sicurezza e prestazioni recentemente introdotto anche nel kernel Linux dove sta facendo molto rumore. Tuttavia, per gli utenti comuni, questo cambiamento dovrebbe essere quasi impercettibile, poiché i comandi, le impostazioni e le interazioni quotidiane sono state progettate per rimanere invariate.
Fish Shell, nota anche come Friendly Interactive Shell, è una shell moderna e intelligente progettata per essere facile da usare e interattiva. Il suo nome è un acronimo che sta per Friendly Interactive SHell. Fish è disponibile per diverse piattaforme, tra cui GNU/Linux, BSD, MacOS e Windows, ed è distribuita come software open source.
Miglioramenti dell’Interfaccia Utente
Tra le novità più evidenti in Fish Shell 4, c’è l’introduzione di un sistema di notazione delle associazioni di tasti aggiornato, che consente di sostituire sequenze di tasti opache con comandi più intuitivi, come ad esempio bind ctrl-right
. Grazie alla funzionalità modifyOtherKey
e al protocollo di tastiera Kitty, Fish può ora distinguere sequenze di controllo che in passato sembravano identiche. Questo miglioramento aumenta la compatibilità con i terminali, rendendo l’esperienza utente più coerente e personalizzabile.
Tra le novità più significative in Fish Shell 4, c’è l’introduzione di un sistema di notazione delle associazioni di tasti aggiornato. Questo nuovo sistema consente di sostituire sequenze di tasti opache e complesse con comandi più intuitivi e facili da ricordare, come ad esempio: bind ctrl-right
. In passato, per associare una funzione a una combinazione di tasti come Ctrl+→, era necessario conoscere la sequenza di escape corrispondente, ad esempio \e[1;5C
, che è il codice che molti terminali inviano quando si preme Ctrl+→
Grazie alla funzionalità modifyOtherKey
e al protocollo di tastiera Kitty, Fish può ora distinguere sequenze di controllo che in passato sembravano identiche. Questo miglioramento aumenta notevolmente la compatibilità con i terminali, rendendo l’esperienza utente più coerente e personalizzabile. In pratica, gli utenti possono ora personalizzare meglio le associazioni di tasti per adattarle alle loro preferenze, migliorando la produttività e la facilità d’uso complessiva della shell.
Miglioramenti della Compatibilità con i Terminali
Un altro punto di forza di Fish Shell 4 è l’integrazione più stretta con le capacità dei terminali. Ad esempio, Fish Shell 4 impiega ora automaticamente le sequenze OSC 133 per i prompt e l’output dei comandi. Queste sequenze, note come Operating System Command, consentono di sincronizzare meglio l’output della shell con i terminali, eliminando la necessità di script di integrazione aggiuntivi che in passato erano spesso richiesti per ottenere un comportamento coerente. Ciò significa che i terminali possono ora gestire meglio i prompt e l’output dei comandi, migliorando la coerenza visiva e funzionale dell’esperienza utente.
Inoltre, Fish Shell 4 standardizza i cambiamenti del cursore in modalità vi su molti terminali. Questo significa che, indipendentemente dal terminale utilizzato, il cursore si comporterà in modo prevedibile quando si passa alla modalità di inserimento o di comando, eliminando la dipendenza dalla rilevazione ambientale, che spesso non funzionava correttamente. In passato, la rilevazione ambientale poteva portare a comportamenti imprevedibili del cursore, poiché dipendeva da variabili ambientali che potevano variare tra i diversi terminali. Grazie a questa standardizzazione, Fish Shell 4 garantisce un’esperienza più coerente e affidabile per gli utenti che utilizzano la modalità vi.
Gestione delle Linee di Comando e Storia
Fish Shell 4 gestisce meglio le linee di comando lunghe, scorrendole invece di renderle male, migliorando così la leggibilità e la gestione delle righe di comando complesse. Inoltre, le modifiche apportate tramite associazioni di tasti sono ora visibili immediatamente, offrendo un’esperienza di scripting e interazione più intuitiva e reattiva.
La funzionalità di paginazione della storia, introdotta in Fish 3.6, è stata ulteriormente migliorata in Fish Shell 4. Questa funzionalità consente di filtrare le voci della storia utilizzando la sintassi glob, che è un modo di specificare pattern per cercare file o stringhe. Ad esempio, utilizzando la sintassi glob, è possibile cercare comandi nella storia che corrispondono a un certo modello, come ad esempio tutti i comandi che iniziano con git
. Questo filtro si applica strettamente al comando corrente, permettendo di costruire ricostruzioni della storia più complesse e multilineari senza dover scorrere interi script. Ciò significa che gli utenti possono facilmente trovare e riutilizzare comandi specifici all’interno della loro storia dei comandi, migliorando la produttività e semplificando la gestione delle sessioni di lavoro.
Tema Predefinito e Installazione
Il tema predefinito ha subito un piccolo ma significativo aggiornamento: i comandi ora appaiono nel colore “normale” del terminale invece del blu, che era difficile da leggere. Gli utenti esistenti manterranno le loro impostazioni attuali a meno che non decidano di ricaricare manualmente il tema tramite fish_config
.
La nuova funzionalità di installazione autonoma è una vera rivoluzione per gli utenti che si connettono frequentemente a server senza privilegi di amministratore. Dopo aver compilato Fish, è possibile eseguire un singolo file binario autocontenuto che estrae direttamente tutte le funzionalità necessarie (funzioni, pagine man e persino lo strumento di configurazione web) nella cartella home
dell’utente. Ciò rende più semplice eseguire Fish in ambienti in cui non è disponibile un gestore di pacchetti o non si hanno i permessi per utilizzarlo. Versioni precompilate sono disponibili per piattaforme GNU/Linux principali come x86_64 e aarch64 sulla pagina GitHub Releases del progetto.
Esclusione dei Comandi dalla Storia
Un’altra funzionalità a lungo richiesta è finalmente disponibile: la possibilità di escludere determinati comandi dalla storia. Definendo una funzione personalizzata chiamata fish_should_add_to_history
, è possibile decidere esattamente quali comandi vengono mantenuti. I comandi contrassegnati per l’esclusione rimangono in una posizione temporanea, quindi è ancora possibile ripeterli premendo la freccia su, ma una volta eseguito un altro comando, vengono cancellati.
Miglioramenti per gli Appassionati di Scripting
Per gli appassionati di scripting, Fish Shell 4 offre numerose migliorie. Tra le principali, c’è il supporto per l’opzione --max-matches
nella funzione string match
, che consente di limitare il numero di corrispondenze elaborate. I cicli for
non ricorderanno più le variabili locali dall’iterazione precedente. Il comando set
guadagna l’opzione --no-event
per sopprimere gli eventi di modifica delle variabili, particolarmente utile negli handler di eventi. Il comando time
inizia a misurare prima, catturando la durata delle sostituzioni dei comandi che si verificano prima dell’esecuzione di un comando. Infine, complete --erase
disabilita completamente il caricamento automatico dei completamenti per comandi specifici, allineandosi con functions --erase
.
Per ulteriori informazioni su tutte le novità di Fish Shell 4, è possibile consultare l’annuncio ufficiale del rilascio.
Fonte: https://fishshell.com/blog/new-in-40/
Fonte: https://www.phoronix.com/news/Fish-Shell-4.0-Released
Fonte: https://linuxiac.com/fish-shell-4-is-here-entirely-rewritten-in-rust/
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. 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.





