Home
» LINUX
»
Come passare da Bash a Fish Shell su Linux
Come passare da Bash a Fish Shell su Linux
Installa Fish, verifica che il suo percorso completo sia presente nell'elenco /etc/shells, quindi eseguilo chsh -s "$(command -v fish)"per il tuo account. Disconnettiti e accedi di nuovo per utilizzare Fish nelle nuove sessioni di accesso. Per provarlo prima, digita fish; digita exitper tornare a Bash.
Fish ha una sintassi e una configurazione proprie; non legge i file di avvio di Bash. Gli script con uno shebang di Bash possono continuare a essere eseguiti con Bash.
1. Installa Fish
Utilizza il gestore di pacchetti della tua distribuzione. Questi sono i comandi standard per i pacchetti Fish; consulta la pagina di installazione ufficiale di Fish per le fonti dei pacchetti:
Ubuntu o Debian:sudo apt install fish
Fedora:sudo dnf install fish
Arch Linux:sudo pacman -S fish
openSUSE:sudo zypper install fish
Per un'altra distribuzione, cerca nei repository ufficiali fish; il gestore di pacchetti mantiene l'installazione e gli aggiornamenti in un unico posto.
Scegli il comando per la tua distribuzione; le versioni dei pacchetti e l'output del programma di installazione variano a seconda del repository.
2. Controlla il percorso del pesce e l'ingresso consentito nel guscio
Nel terminale Bash corrente, trova l'eseguibile e verifica se il suo percorso esatto appare in /etc/shells:
command -v fish
grep -Fx "$(command -v fish)" /etc/shells
Il percorso è spesso /usr/bin/fish, ma usa quello visualizzato sul tuo computer. Il secondo comando dovrebbe restituire lo stesso percorso. Molte chshconfigurazioni accettano solo shell elencate in /etc/shells, come spiegato nel manuale di chsh . Se non c'è corrispondenza, chiedi al tuo amministratore di registrare il percorso di installazione di Fish.
Il percorso mostrato è solo un esempio. Utilizza il percorso esatto indicato dalla tua installazione.
3. Prova Fish prima di impostarlo come predefinito
Avvia una sessione Fish interattiva da Bash inserendo:
fish
Prova alcuni comandi di uso comune e nota l'evidenziazione della sintassi, il completamento automatico tramite tabulazione e i suggerimenti automatici. Premi Invio exitper tornare a Bash. Il tutorial ufficiale di Fish illustra queste funzionalità interattive.
L'avvio fishverifica la validità del test solo per il terminale corrente; non modifica la shell di accesso del tuo account.
4. Imposta Fish come shell di login
Quando il controllo del percorso ha esito positivo, esegui questo comando da Bash come il tuo account normale:
chsh -s "$(command -v fish)"
Inserisci la tua password se richiesto. Non usare sudo, che può cambiare la shell di root invece della tua. chshregistra la tua shell di login ma non modifica le schede del terminale esistenti. Disconnettiti dalla sessione desktop e accedi di nuovo, oppure riconnettiti tramite SSH. Se un nuovo terminale avvia ancora Bash, verifica se il suo profilo impone un comando personalizzato.
Esegui l'operazione chshsenza sudospecificare che la modifica si applichi al tuo account.
5. Aggiungi le impostazioni di Fish nel suo file di configurazione separato
Fish legge le impostazioni utente da ~/.config/fish/config.fish, non da ~/.bashrc. Crea la cartella e apri il file nel tuo editor preferito; questo esempio utilizza Nano:
La cartella di configurazione standard di Fish per utente è ~/.config/fish.
Ad esempio, per nascondere il saluto di Fish, aggiungi questo comando Fish al file:
set -g fish_greeting
Salva il file, quindi avvia una nuova shell Fish per caricarlo. Puoi anche impostare variabili d'ambiente esportate nella sintassi Fish, come set -gx EDITOR nano. Le FAQ di Fish documentano l'impostazione del saluto e spiegano in che modo i file di avvio di Fish differiscono dai file Bash.
Utilizzare la sintassi Fish in config.fish; le assegnazioni Bash come EDITOR=nanonon sono comandi di configurazione Fish.
6. Personalizza il prompt o i colori
Esegui il comando fish_configper aprire lo strumento di configurazione locale di Fish basato sul web, dove puoi sfogliare le opzioni di prompt e colore. Puoi anche lavorare nel terminale. Ad esempio, elenca i temi con fish_config theme list. Per visualizzare in anteprima e salvare un prompt di esempio, esegui:
fish_config prompt show
fish_config prompt choose disco
fish_config prompt save
Il comando choose applica il prompt alla sessione corrente; save lo salva per le sessioni future. Consultare la documentazione di riferimento di fish_config per l'interfaccia web e le opzioni dei comandi.
Fish offre strumenti da riga di comando e per la personalizzazione dei temi, oltre al configuratore basato su browser.
7. Utilizzare suggerimenti e completamenti automatici
Mentre digiti, Fish potrebbe mostrare un suggerimento in grigio basato sulla cronologia dei comandi, sui percorsi validi e sui completamenti. Premi la freccia destra o Ctrl+Fper accettare il suggerimento; accettandolo, la riga di comando verrà solo riempita, quindi premi Invio separatamente per eseguirlo. Premi Tabper completare un comando, un argomento o un percorso, oppure per visualizzare le opzioni disponibili.
I suggerimenti di Fish e il completamento automatico tramite tasto Tab aiutano a completare i comandi senza eseguirli automaticamente.
Cosa cambia quando si passa da Bash?
Fish non è un sostituto di Bash compatibile con POSIX. Le variabili e i blocchi di controllo utilizzano una sintassi diversa:
Compito
Bash
Pesce
Imposta una variabile
name=value
set name value
Esporta una variabile
export EDITOR=nano
set -gx EDITOR nano
ifBlocco Endan
fi
end
Fish non carica .bashrcalias o funzioni Bash. Mantieni uno shebang Bash, ad esempio, #!/usr/bin/env bashsugli script che devono essere eseguiti con Bash. Consulta la documentazione di Fish relativa al linguaggio e alla configurazione per ulteriori dettagli.
Torna a Bash o risolvi i problemi
Per ripristinare Bash, esegui questo comando da Fish. Fish supporta la familiare $(...)sostituzione di comandi:
chsh -s "$(command -v bash)"
Disconnettiti e accedi di nuovo. Se chshFish viene rifiutato, ricontrolla il suo percorso e /etc/shells. Per problemi con SSH o SCP, rimuovi i comandi che producono output da config.fish; Fish lo legge anche nelle shell non interattive. Proteggi la configurazione solo interattiva in questo modo:
if status is-interactive
# interactive-only setup
end