Sono finiti i giorni dei comandi criptici e della sintassi rigida. Perché passare più tempo a decifrare le pagine di manuale che a scrivere script o a navigare nel tuo sistema? Abbraccia il potere e la semplicità della shell fish, il tuo biglietto per un’esperienza Linux più fluida e intuitiva.
Impara a trasformare il tuo viaggio Linux con la shell fish, dalla sua interfaccia utente amichevole alle sue estese opzioni di personalizzazione.
Dì addio ai flussi di lavoro ottimizzati e a una nuova fiducia nelle tue competenze Linux!
Prerequisiti
Prima di iniziare, assicurati di avere coperti i seguenti requisiti essenziali per seguire questo tutorial:
- Shell fish è installata sul tuo computer – Questo tutorial utilizza fish-3.7.0, l’ultima versione disponibile al momento della stesura.
- A Linux system – This tutorial uses an Ubuntu 22.04 LTS for demonstrations, but other distributions will work.
Esplorazione delle Validazioni dei Comandi, Autocompletamento e Suggerimenti
Con la shell fish installata, immergiti nella shell fish per eseguire comandi senza interruzioni. La shell fish offre un feedback in tempo reale e suggerimenti consapevoli del contesto per comandi, nomi di file e argomenti.
Ma prima, dovrai accedere alla shell fish prima di esaminare le validazioni dei comandi, l’autocompletamento e i suggerimenti.
Per esplorare questa funzione che ti consente di identificare e correggere gli errori prima ancora di eseguirli, esegui quanto segue:
1. Apri un terminale e esegui il comando fish
di seguito per accedere alla shell fish.

2. Successivamente, digita la prima lettera del comando ls
per cercare di elencare tutti i file nella tua directory corrente.
Come mostrato di seguito, la lettera ‘l‘ diventa rossa poiché la shell fish non la riconosce come un comando valido. Questo immediato segnale visivo indica che c’è qualcosa che non va con il comando.
Ma non preoccuparti! Grazie all’autosuggestione, la lettera ‘s‘ appare smorzata, suggerendo il comando corretto.

3. Ora, premi la freccia destra o i tasti Ctrl+F per accettare il comando ls
suggerito automaticamente.
Nota che la lettera ‘l’ è passata da rossa a blu perché la shell fish riconosce ora il tuo comando come ls
.

Definizione degli Alias dei Comandi nel File di Configurazione di Fish
Oltre al feedback in tempo reale e ai suggerimenti contestuali, fish offre un modo potente e flessibile per personalizzare l’ambiente della tua riga di comando – il file di configurazione di fish. A differenza di altre shell che possono utilizzare più file di configurazione, fish utilizza principalmente un unico file chiamato config.fish situato nella directory ~/.config/fish/.
Per vedere come le configurazioni influenzano la shell fish, inizia definendo gli alias dei comandi come segue:
1. Apri il file di configurazione di fish utilizzando il tuo editor di codice o di testo preferito, come nano
o vim
, ma questo tutorial utilizza il primo.
Una volta aperto, vedrai il contenuto iniziale del file di configurazione della shell fish, che potrebbe contenere configurazioni predefinite o essere relativamente vuoto. Questo stato iniziale dipende dal fatto che tu o il processo di configurazione del sistema abbiate precedentemente aggiunto configurazioni.
Il file potrebbe includere solo commenti o blocchi condizionali di base per le nuove installazioni, come quello riportato di seguito.

2. All’interno del blocco if
, aggiungi la seguente funzione
, salva le modifiche e chiudi l’editor.
A questo punto, stai creando impostazioni personalizzate nel file di configurazione di fish, e questa funzione definisce un alias (c
) per il comando clear
.
? Nota: Ogni funzione definita ha un file .fish corrispondente nella directory ~/.config/fish/functions/ (es. c.fish).

clear
command3. Esegui il seguente comando per sorgere
il file di configurazione (config.fish
).
Questo comando non produce output sul terminale ma applica le modifiche alla configurazione della sessione corrente.
? Questo file di configurazione di fish viene eseguito automaticamente ogni volta che viene avviata una nuova sessione di fish ed è il luogo perfetto per definire personalizzazioni della shell.
4. Successivamente, digita c
nel prompt per verificare le tue modifiche.
Nota come la lettera ‘c‘ diventa blu poiché il shell fish la riconosce come il comando clear
. Questo comportamento indica una modifica riuscita nella configurazione di fish.
Osserva come la lettera ‘c’ diventa blu? Questo cambiamento avviene perché il shell fish riconosce la lettera ‘c’ come il comando clear
. Questo comportamento segnala un aggiornamento riuscito nella configurazione di fish.
Ora, perché non impostare alcuni alias in più per quei comandi affidabili a cui continui a tornare ogni volta che ti colpisce l’ispirazione?

clear
command worksPersonalizzazione del Prompt di Fish Shell
Oltre a impostare alias per operazioni più fluide, fish ti dà il potere di personalizzare il tuo prompt, aggiungendo un tocco personale alla tua shell. Invece di percorsi di directory lunghi, goditi un prompt più pulito e organizzato.
Per personalizzare il prompt della shell fish, esegui le seguenti azioni:
1. Apri il file di configurazione di fish (~/.config/fish/config.fish), e aggiungi la seguente funzione.
Questa funzione personalizza il prompt della tua shell fish per visualizzare (echo
) un segno di dollaro ($
) seguito da uno spazio.

2. Salva le modifiche al file di configurazione di fish ed esci dall’editor.
3. Ora, esegui il comando source
sul file di configurazione per applicare le tue modifiche.
Una volta eseguito il comando, vedrai le modifiche al prompt come nello screenshot seguente.

Per Persistere le Modifiche tra le Sessioni
Hai visto come personalizzare la shell fish. Ma una cosa da notare: queste impostazioni sono disponibili solo nella sessione corrente.
Cosa succede una volta che chiudi la sessione corrente e ne apri una nuova? Puff! Le tue configurazioni meticolosamente realizzate scompaiono tutte – che seccatura, vero? Ma non temere, c’è ancora speranza. Lascia che il comando funcsave
salvi le tue configurazioni dall’oblio!
Per persistere le tue configurazioni tra le sessioni, procedi come segue:
1. Apri il file di configurazione di fish e aggiungi il comando funcsave
a ogni function
insieme al nome della funzione, così:

funcsave
command to persist functions across sessions2. Salva le modifiche, chiudi l’editor e il terminale.
3. Apri una nuova sessione terminale e esegui il comando fish
qui sotto per accedere alla shell fish
Se i comandi funcsave
che hai aggiunto funzionano nel persistere le tue configurazioni, vedrai messaggi come quelli di seguito.

Impostazione e Persistenza delle Variabili d’Ambiente
Anche se le funzioni di persistenza sono ottime, gestire valori globalmente accessibili porta lo scripting della shell a un livello superiore: impostare le variabili d’ambiente. A differenza delle shell tradizionali che si basano su export
, fish utilizza set
con opzioni per controllare lo scope della variabile e il comportamento di esportazione.
Ma c’è una fregatura, lo sai? Ah, hai indovinato giusto! Una variabile impostata tramite il comando set
sul terminale è accessibile solo nella sessione corrente.
Per impostare e persistere le variabili d’ambiente, il flag -gx
sarà utile come segue:
1. Aggiungi il seguente comando per set
la variabile MY_VARIABLE
nel file di configurazione di fish come globale. Di seguito è illustrato come funziona il flag -gx
:
-g
– Rende la variabile globale, accessibile da qualsiasi scope all’interno dello stesso ambiente utente.-x
– Esporta la variabile, rendendola disponibile a qualsiasi comando esterno o programmi avviati da fish.

2. Salva le modifiche alla configurazione, quindi chiudi l’editor e il terminale.
3. Apri una nuova sessione del terminale, accedi alla shell di fish ed esegui il seguente comando per confermare le modifiche.
L’output qui sotto conferma che le modifiche hanno avuto effetto in tutte le sessioni.

4. Una volta confermato, aggiungi il seguente comando set
al file di configurazione di fish, salva le modifiche e chiudi l’editor.
Questo comando rende la variabile MY_UNIVERSAL_VARIABLE
globale in tutte le sessioni, anche dopo i riavvii.
Vedi come funziona il flag -Ux
qui sotto:
-U
– Rende la variabileMY_UNIVERSAL_VARIABLE
universale, garantendo che sia condivisa in tutte le sessioni terminali correnti e future, inclusi quelli di utenti diversi.-x
– La variabile viene esportata ai processi figlio, rendendola accessibile a qualsiasi comando o script invocato dalla sessione corrente.

5. Apri una nuova sessione terminale, accedi alla shell fish e esegui il comando echo
qui sotto per verificare le modifiche.
Se tutto va bene, avrai l’output seguente, che indica che le modifiche hanno avuto effetto in tutte le sessioni.

? Oltre al file di configurazione di fish, sfrutta
fish_config
nel terminale per personalizzazioni rapide e automatiche. Questo comando avvia un’interfaccia web nel tuo browser, consentendo aggiustamenti rapidi del prompt, modifiche delle impostazioni e gestione delle funzioni e delle variabili in un ambiente user-friendly.
Gestione dei Plugin di Fish con il Fisher Package Manager
La shell fish è impressionante di per sé, vero? Ma indovina un po’? Quando inizi a integrare plugin, diventa ancora più potente. Questi plugin espandono le capacità della shell fish, portando nuovi comandi, utility e integrazioni per migliorare significativamente la tua esperienza sulla riga di comando.
Un buon esempio è Fisher, un gestore di pacchetti progettato per la shell fish. Questo plugin è costruito con prestazioni e semplicità in mente ed è leggero.
? Fisher è leggero nella gestione dei plugin della shell fish e non è direttamente confrontabile con i gestori di pacchetti a livello di sistema. Questa distinzione è evidente riguardo alle dimensioni e alla complessità dei pacchetti che gestisce.
Per gestire i plugin fish, devi prima installare Fisher seguendo i passaggi indicati:
Apri il tuo terminale, accedi alla shell fish ed esegui il seguente comando per scaricare e installare Fisher. Questo comando recupera lo script di installazione di Fisher e lo indirizza a source
, che esegue lo script all’interno della sessione corrente della shell fish tramite curl
.
Una volta installato, vedrai il seguente output.

Ora, esegui il comando fisher
di seguito per confermare l’installazione visualizzando la --version
attualmente installata di Fisher sul tuo sistema.

Installazione del plugin GitNow
Ora che hai Fisher in esecuzione, qual è il prossimo passo? Cosa ne dici di potenziare il tuo shell fish con alcuni plugin interessanti? GitNow, ad esempio, è un toolkit che potenzia il tuo workflow Git all’interno del shell fish – allettante.
GitNow offre comandi ottimizzati per le attività di routine di Git, migliorando la produttività e semplificando la tua routine di comandi Git.
Per installare GitNow usando il gestore dei pacchetti Fisher, segui questi passaggi:
1. Nel tuo shell fish, esegui il seguente comando fisher
per installare
il plugin GitNow (joseluisq/gitnow
).
Questo comando dice a Fisher di recuperare e integrare GitNow nella tua configurazione fish, rendendo immediatamente disponibili la sua serie di scorciatoie Git.

2. Una volta installato, esegui il comando gitnow
qui sotto per confermare che GitNow sia correttamente installato.
Questo comando visualizza la versione attualmente installata di GitNow, ma solo se i comandi GitNow sono riconosciuti nel tuo shell.

3. Infine, esegui questo comando fisher
per elencare
tutti i plugin gestiti da Fisher, inclusi GitNow.
In basso, puoi vedere il plugin GitNow e il plugin Fisher stesso.

Rimozione dei Plugin di Fish Shell
Il tuo shell fish è sommerso di plugin? Come se fossi costretto a cercare nel caos per trovare ciò di cui hai bisogno? Sistemare l’ambiente del tuo shell fish rimuovendo i plugin non necessari.
Per rimuovere un plugin gestito da Fisher nella tua shell fish, procedi con questi passaggi:
1. Esegui il seguente comando per elencare
tutti i plugin attualmente installati.
Scegli uno dalla lista che desideri rimuovere.

2. Successivamente, esegui il comando fisher remove
qui sotto, seguito dal nome del plugin (joseluisq/gitnow
) da rimuovere.
Questo comando dice a Fisher di disinstallare il plugin GitNow dal tuo ambiente shell fish.

3. Ora, esegui lo stesso comando fisher list
per confermare che il plugin GitNow sia stato rimosso con successo.
Il plugin GitNow non dovrebbe più apparire nell’elenco dei plugin installati.

Disinstallazione del Gestore di Pacchetti Fisher
Come hai visto, il gestore di pacchetti Fisher è veramente utile. Ma disinstallarlo può essere la scelta migliore se ti ritrovi insoddisfatto o con problemi con Fisher.
Per disinstallare Fisher in modo completo dalla tua shell fish, completa quanto segue:
Esegui il comando qui sotto per elencare
e rimuovere
fisher
e tutti i plugin installati tramite Fisher.

In alternativa, esegui il seguente comando per rimuovere
solo fisher
stesso.

Esplorando il Gestore di Pacchetti Oh My Fish
Quando sei già in viaggio con Fisher, perché considerare Oh My Fish? Hai già sperimentato il potere dei plugin della shell dei pesci con Fisher. Ma ecco il colpo di scena: questo framework apre un nuovo regno di personalizzazione per la shell dei pesci, offrendo una vasta collezione di temi e plugin.
Per vedere cosa Oh My Fish ha in serbo per te, installa prima questo gestore di pacchetti con il seguente:
Esegui il seguente comando curl
per scaricare ed eseguire lo script di installazione di Oh My Fish (https://get.oh-my.fish
) all’interno della shell fish
.
Se avrai successo, avrai un output simile al seguente.

Una volta installato, esegui il seguente comando omf
per controllare la versione installata di Oh My Fish.
A successful response, as shown below, indicates that Oh My Fish is ready and waiting to transform your fish shell experience.

Personalizzazione dell’ambiente con i temi di Oh My Fish
Sei stanco dello stesso vecchio aspetto della shell dei pesci? Perché non aggiungere un tocco di personalità? Dà al tuo ambiente della shell dei pesci un restyling con temi freschi e personalizzati da Oh My Fish.
Per personalizzare il tuo ambiente della shell dei pesci, devi installare i temi con questi passaggi:
1. Apri il file di configurazione della shell dei pesci e rimuovi la funzione fish_prompt
che definisce come viene visualizzato il tuo prompt. In questo modo assicuri che il prompt personalizzato che hai impostato non entri in conflitto o sovrascriva i temi forniti da Oh My Fish.
? I temi sono dotati di prompt unici cruciali per il loro aspetto e la loro funzione. Disabilitare il prompt personalizzato (
fish_prompt
) assicura che il tema Oh My Fish scelto si integri completamente nel design e nelle funzionalità della tua shell fish.
2. Successivamente, elimina (rm
) il file ~/.config/fish/functions/fish_prompt.fish
. Questo comando non ha output, ma eliminando questo file la shell fish torna al suo prompt predefinito.
3. Esegui questo comando source
affinché le modifiche nel file di configurazione di fish abbiano effetto.

4. Ora, esegui il seguente comando omf
per scoprire il tema perfetto per la tua shell fish.
Scegli un tema che desideri integrare nella shell fish (ad esempio, cbjohnson).
? Visita il repository GitHub ufficiale per i temi di Oh My Shell per vedere come appare ciascun tema prima di installarli.

? Migliora la tua shell fish con plugin eseguendo il seguente comando per installare i plugin. Visita il repository GitHub di OMF per una lista di plugin da installare.
omf install <nome_plugin>
5. In seguito, esegui il comando seguente per installare
il tema che hai scelto al passo quattro (cbjohnson
).
Una volta installato, il tuo prompt cambierà immediatamente, come segue.

? Suggerimento: Passa rapidamente tra i temi quando ne hai due o più eseguendo il seguente comando.
omf theme <nome_tema>
Disinstallare Oh My Fish
Oh My Fish è una gemma per ravvivare l’atmosfera della tua shell. Ma se desideri mai un cambio di scenario o provare qualcosa di nuovo, disinstallare Oh My Fish darà alla tua shell fish un nuovo inizio.
Per disinstallare Oh My Fish, seguire i seguenti passaggi:
1. Eseguire i seguenti comandi rm
per eliminare tutti i file correlati a Oh My Fish.
Una volta rimossi, vedrai scomparire il tema inizialmente installato.

2. Successivamente, eseguire ciascun comando di seguito per eliminare ulteriori file correlati a Oh My Fish.
Questi comandi non producono output, ma eliminando questi file si assicura che tutti i resti di Oh My Fish vengano rimossi dal sistema.
3. Ora, eseguire il seguente comando omf
per verificare la cancellazione.
Vedrai un errore simile al seguente, che indica che il comando omf
non è stato trovato e che Oh My Fish è stato completamente disinstallato.

Impostare Fish come Shell Predefinita
Se hai apprezzato l’esperienza con la shell fish che migliora la tua esperienza Linux, perché non impostarla come tua shell predefinita? In questo modo, ti risparmi il fastidio di cambiarla ogni volta che apri un nuovo terminale.
Per impostare fish come tua shell predefinita, segui i seguenti passaggi:
1. Esegui il comando qui sotto per trovare il percorso in cui si trova la shell fish
.
Copia il percorso negli appunti, poiché ne avrai bisogno nei passaggi successivi.

2. Successivamente, esegui il seguente comando per aggiungere fish all’elenco delle shell accettabili in /etc/shells
.

3. Infine, esegui il comando chsh
qui sotto per cambiare la tua shell predefinita in fish (/usr/bin/fish
).
Quando riavvii il tuo computer, avrai fish come tua shell predefinita.

? Suggerimento: Torna da fish a un’altra shell come Bash come predefinita ripetendo tutti i passaggi di questa sezione. Assicurati di specificare il percorso di Bash nei passaggi due e tre, quindi riavvia il computer affinché le modifiche siano applicate..
Conclusione
In questo tutorial, hai approfondito l’essenza della shell fish, scoprendo le sue potenti funzionalità e opzioni personalizzabili. Dalla definizione di alias alla personalizzazione dei prompt e alla persistenza delle variabili d’ambiente alla gestione dei plugin, la shell fish è stata il tuo fidato compagno.
Hai acquisito conoscenze su come trasformare la tua esperienza Linux con il gestore di pacchetti Oh My Fish. Inoltre, hai imparato come scoprire e installare facilmente nuovi plugin e temi, ampliando la funzionalità e l’estetica del tuo ambiente di shell fish.
Ora che hai esplorato le basi della shell fish, approfondisci e sblocca il suo pieno potenziale. Perché non sperimentare con prompt personalizzati come Powerline o Starship per dare alla tua shell un tocco personalizzato?