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.
Recursos
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.
Variáveis Universais
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
Outros recursos
- Preenchimento avançado de tabulação (com suporte para escrever preenchimentos personalizados).
- Destaque de sintaxe com verificação de erros extensiva.
- Suporte para a área de transferência do X Window System.
- Manipulação inteligente de terminal com base na biblioteca e banco de dados terminfo.
- Histórico de comandos pesquisável.
- Configuração baseada na Web (fish_config).
