fish-shell / fish-shell

fish è una shell a riga di comando intelligente e facile da usare per macOS, Linux e il resto della famiglia. fish include caratteristiche come l’evidenziazione della sintassi, l’autosuggest-as-you-type e fantasiosi complementi di tabulazione che funzionano e basta, senza alcuna configurazione richiesta.

Per maggiori informazioni sulla filosofia di progettazione di fish, si veda il documento di progettazione.

Avvio rapido

fish generalmente funziona come altre shell, come bash o zsh. Alcune differenze importanti possono essere trovate su https://fishshell.com/docs/current/tutorial.html cercando la frase magica “diversamente dalle altre shell”.

Documentazione dettagliata per l’utente è disponibile eseguendo help all’interno di fish, e anche a https://fishshell.com/docs/current/index.html

Puoi giocare velocemente con fish direttamente nel tuo browser cliccando il pulsante qui sotto:

Ottenere fish

macOS

fish può essere installato:

  • usando Homebrew: brew install fish
  • utilizzando MacPorts:sudo port install fish
  • utilizzando il programma di installazione da fishshell.com
  • come applicazione indipendente da fishshell.com

Pacchetti per Linux

Pacchetti per Debian, Fedora, openSUSE e Red Hat EnterpriseLinux/CentOS sono disponibili da openSUSE BuildService.

I pacchetti per Ubuntu sono disponibili da fishPPA e possono essere installati utilizzando i seguenti comandi:

sudo apt-add-repository ppa:fish-shell/release-3sudo apt-get updatesudo apt-get install fish

Le istruzioni per altre distribuzioni possono essere trovate su fishshell.com.

Windows

  • Su Windows 10, fish può essere installato sotto il WSL Windows Subsystem for Linux con le istruzioni per la distribuzione appropriata elencata sopra sotto “Pacchetti per Linux”, o da sorgente con le istruzioni sottostanti.
  • Fish può anche essere installato su tutte le versioni di Windows usando Cygwin (dalla categoria Shells).

Costruire da sorgente

Se i pacchetti non sono disponibili per la vostra piattaforma, i tarball con firma GPG sono disponibili da fishshell.com efish-shell su GitHub. Vedi la sezione Costruzione per le istruzioni.

Eseguire fish

Una volta installato, esegui fish dalla tua shell attuale per provare fish!

Dipendenze

Eseguire fish richiede:

  • curses o ncurses (preinstallati sulla maggior parte dei sistemi *nix)
  • alcune comuni utilità di sistema *nix (attualmente mktemp), oltre alle utilità POSIX di base (cat, cut, dirname,ls, mkdir, mkfifo, rm, sort, tee, tr,uname e sed almeno, ma è preferibile l’intero coreutils più find eawk)
  • La libreria gettext, se compilata con supporto alla traduzione

Le seguenti caratteristiche opzionali hanno anche requisiti specifici:

  • i comandi di compilazione che hanno l’opzione --help o stampano messaggi d’uso richiedono ul e o nroff o mandoc per la visualizzazione
  • la generazione automatica di completamento dalle pagine manuali richiede Python 3.5+
  • lo strumento di configurazione web fish_config richiede Python 3.5+ e un browser web
  • l’integrazione degli appunti di sistema (con i collegamenti predefiniti Ctrl-V e Ctrl-X) richiede le versioni xsel, xclip,wl-copy/wl-paste o pbcopy/pbpaste utility
  • Il completamento di yarn e npm richiede il moduloall-the-package-names NPM

Passare a fish

Se vuoi usare fish come shell predefinita, usa il seguente comando:

chsh -s /usr/local/bin/fish

chsh vi chiederà la vostra password e cambierà la vostra shell di default. (Sostituire /usr/local/bin/fish con il percorso in cui è stato installato fish, se è diverso.) Esci, poi accedi di nuovo per far sì che le modifiche abbiano effetto.

Usa il seguente comando se fish non è già aggiunto a /etc/shellsper permettere a fish di essere la tua shell di login:

echo /usr/local/bin/fish | sudo tee -a /etc/shells

Per cambiare la tua shell di default, puoi eseguire chsh -s /bin/bash(sostituendo /bin/bash con /bin/tcsh o /bin/zsh a seconda dei casi).

Costruire

Dipendenze

La compilazione di fish richiede:

  • un compilatore C++11 (g++ 4.8 o successivo, o clang 3.3 o successivo)
  • CMake (versione 3..2 o successivo)
  • un’implementazione di curses come ncurses (intestazioni e librerie)
  • PCRE2 (intestazioni e librerie) – una copia è inclusa in fish
  • gettext (intestazioni e librerie) – opzionale, per il supporto alla traduzione

Sphinx è anche facoltativamente richiesto per costruire la documentazione dal repository git clonato.

Inoltre, l’esecuzione della suite di test richiede Python 3.5+ e il pacchetto pexpect.

Costruire dai sorgenti (tutte le piattaforme) – Generatore di Makefile

Per installare in /usr/local, eseguire:

mkdir build; cd buildcmake ..makesudo make install

La directory di installazione può essere modificata usando il parametro-DCMAKE_INSTALL_PREFIX per cmake.

Costruire da sorgente (macOS) – Xcode

mkdir build; cd buildcmake .. -G Xcode

Un progetto Xcode sarà ora disponibile nella sottodirectory build.Puoi aprirlo con Xcode, o eseguire il seguente per costruire e installare in/usr/local:

xcodebuildxcodebuild -scheme install

La directory di installazione può essere modificata usando il parametro-DCMAKE_INSTALL_PREFIX per cmake.

Aiuto, non ha costruito!

Se fish riporta che non è riuscito a trovare curses, prova a installare un pacchetto cursesdevelopment e a costruire di nuovo.

Su Debian o Ubuntu vuoi:

sudo apt-get install build-essential cmake ncurses-dev libncurses5-dev libpcre2-dev gettext

Su RedHat, CentOS, o Amazon EC2:

sudo yum install ncurses-devel

Contribuire alle modifiche del codice

Vedi la Guida per sviluppatori.

Contattateci

Domande, commenti, sproloqui e sfoghi possono essere inviati alla lista ufficiale di fishmailing a https://lists.sourceforge.net/lists/listinfo/fish-usersor unisciti a noi sul nostro gitter.imchannel. Oppure usa il fishtag onStackoverflow per le domande relative allo script fish e il fish tag onSuperuser per tutte le altre domande (per esempio, personalizzare i colori, cambiare i key bindings).

Hai trovato un bug? Hai un’idea fantastica? Per favore, apri un problema.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.