| Fish | |
|---|---|
Versão 4.3.2 do fish | |
| Autor | Axel Liljencrantz |
| Desenvolvedor | desenvolvedores fish-shell |
| Lançamento inicial | 13 de fevereiro de 2005 |
| Lançamento estável | 4.5.0
/ 17 de fevereiro de 2026 |
| Repositório | github |
| Escrito em | Rust |
| Sistema operacional | Unix-like |
| Tipo | shell Unix |
| Licença | GPL-2.0 |
| Website | fishshell |
Fish (ou friendly interactive shell - estilizado em letras minúsculas) é um shell semelhante ao Unix com foco em interatividade e usabilidade. O fish foi projetado para ser rico em recursos por padrão, em vez de altamente configurável. O fish é considerado um shell "exótico" já que não adere aos padrões de shell POSIX, por critério de seus mantenedores.
O fish exibe sugestões incrementais conforme o usuário digita, com base no histórico de comandos e no diretório atual. Isso funciona de forma semelhante à pesquisa de histórico Ctrl + R do Bash, mas está sempre ligado, dando ao usuário um feedback contínuo enquanto digita comandos. O Fish também inclui complementação de tabulação rico em recursos, com suporte para expansão de caminhos de arquivo (com curingas e expansão de chaves), variáveis de ambiente e complementações específicas de comando. Completamentos específicos de comando, incluindo opções com descrições, podem ser gerados até certo ponto a partir das páginas de manual dos comandos, mas completamentos personalizados também podem ser incluídos com software ou escritos por usuários do shell.
O criador do Fish preferiu adicionar novos recursos como comandos em vez de sintaxe. Isso tornou os recursos mais "descobríveis", pois os recursos integrados permitem a busca de comandos com opções e textos de ajuda. Funções também podem incluir descrições legíveis por humanos. Um comando especial help dá acesso a toda a documentação do fish no navegador da web do usuário.
O Fish tem um recurso conhecido como variáveis universais, que permite que um usuário atribua permanentemente um valor a uma variável em todos os shells fish em execução pelo usuário. O valor da variável é lembrado em logouts e reinicializações, e as atualizações são imediatamente propagadas para todos os shells em execução.
# Isso fará do emacs o editor de texto padrão. O '--universal' (ou '-U')
# diz ao fish para fazer disso uma variável universal.
> set --universal EDITOR emacs
# Este comando fará com que a parte atual do diretório de trabalho do
# prompt do fish fique azul em todas as instâncias do fish em execução.
> set --universal fish_color_cwd blue