Chegaram ao fim os dias de comandos crípticos e sintaxe rígida. Por que gastar mais tempo decifrando páginas de manual do que escrevendo scripts ou navegando pelo seu sistema? Abrace o poder e a simplicidade do shell fish, seu bilhete para uma experiência Linux mais suave e intuitiva.
Aprenda a transformar sua jornada no Linux com o shell fish, desde sua interface amigável até suas extensas opções de personalização.
Diga olá a fluxos de trabalho simplificados e uma confiança recém-descoberta em suas habilidades no Linux!
Pré-requisitos
Antes de começar, reserve um momento para garantir que você tenha os seguintes itens essenciais para acompanhar este tutorial:
- O Shell Fish está instalado em sua máquina – Este tutorial utiliza o fish-3.7.0, a versão mais recente até o momento desta escrita.
- A Linux system – This tutorial uses an Ubuntu 22.04 LTS for demonstrations, but other distributions will work.
Explorando Validações de Comandos, Autocompletar e Sugestões
Com o shell fish instalado, mergulhe no shell fish para execuções de comando sem interrupções. O shell fish oferece feedback em tempo real e sugestões sensíveis ao contexto para comandos, nomes de arquivos e argumentos.
Mas primeiro, você precisará acessar o shell fish antes de explorar validações de comando, autocompletar e sugestões.
Para explorar este recurso que permite identificar e corrigir erros antes mesmo de executá-los, siga as seguintes etapas:
1. Abra um terminal e execute o comando fish
abaixo para acessar o shell fish.

2. Em seguida, digite a primeira letra do comando ls
para tentar listar todos os arquivos no seu diretório atual.
Como mostrado abaixo, a letra ‘l‘ fica vermelha pois o shell fish não reconhece como um comando válido. Este sinal visual imediato indica que algo está errado com o comando.
Mas não se preocupe! Graças à sugestão automática, a letra ‘s‘ aparece em destaque, sugerindo o comando correto.

3. Agora, pressione a seta para a direita ou as teclas Ctrl+F para aceitar a sugestão automática do comando ls
.
Observe que a letra ‘l’ mudou de vermelho para azul porque o shell fish reconhece agora seu comando como ls
.

Definindo Alias de Comando no Arquivo de Configuração do Fish
Além do feedback em tempo real e das sugestões contextuais, o fish oferece uma maneira poderosa e flexível de personalizar seu ambiente de linha de comando — o arquivo de configuração do fish. Ao contrário de outros shells que podem usar vários arquivos de configuração, o fish utiliza principalmente um único arquivo chamado config.fish localizado no diretório ~/.config/fish/.
Para ver como as configurações afetam o shell fish, comece definindo aliases de comando da seguinte forma:
1. Abra o arquivo de configuração do fish usando seu editor de código ou texto preferido, como o nano
ou vim
, mas este tutorial usa o primeiro.
Uma vez aberto, você verá o conteúdo inicial do arquivo de configuração do shell fish, que pode conter configurações padrão ou estar relativamente vazio. Este estado inicial depende se você ou o processo de configuração do seu sistema já adicionaram configurações anteriormente.
O arquivo pode incluir apenas comentários ou blocos condicionais básicos para novas instalações, como o exemplo abaixo.

2. Dentro do bloco if
, adicione a seguinte função
, salve as alterações e feche o editor.
Neste ponto, você está criando configurações personalizadas no arquivo de configuração do fish, e esta função define um alias (c
) para o comando clear
.
? Nota: Cada função definida tem um arquivo .fish correspondente no diretório ~/.config/fish/functions/ (ou seja, c.fish).

clear
command3. Execute o seguinte comando para source
o arquivo de configuração (config.fish
).
Este comando não produz saída no terminal, mas aplica as alterações de configuração à sua sessão atual.
? Este arquivo de configuração do fish é executado automaticamente cada vez que uma nova sessão do fish é iniciada e é o lugar perfeito para definir personalizações do shell.
4. Em seguida, digite c
no prompt para verificar suas alterações.
Observe que a letra ‘c‘ fica azul, pois o shell fish o reconhece como o comando clear
. Esse comportamento indica uma alteração bem-sucedida na configuração do fish.
Veja como a letra ‘c’ fica azul? Essa mudança ocorre porque o shell fish reconhece a letra ‘c’ como o comando clear
. Esse comportamento sinaliza uma atualização bem-sucedida na sua configuração do fish.
Agora, por que não configurar mais alguns aliases para aqueles comandos confiáveis aos quais você sempre retorna quando a vontade bate?

clear
command worksPersonalizando o Prompt do Shell Fish
Além de configurar aliases para operações mais suaves, o fish oferece o poder de personalizar seu prompt, adicionando um toque pessoal ao seu shell. Em vez de caminhos de diretório longos, aproveite um prompt mais limpo e organizado.
Para personalizar o prompt do shell fish, execute as seguintes ações:
1. Abra o arquivo de configuração do fish (~/.config/fish/config.fish) e adicione a seguinte função.
Esta função personaliza o prompt do seu shell fish para exibir (echo
) um cifrão ($
) seguido por um espaço.

2. Salve as alterações no arquivo de configuração do fish e saia do editor.
3. Agora, source
o arquivo de configuração para aplicar suas alterações.
Uma vez fonteado, você verá as alterações no prompt como na captura de tela a seguir.

Persistindo Alterações Entre Sessões
Você viu como criar personalizações no shell fish. Mas uma coisa a observar: essas configurações estão disponíveis apenas na sessão atual.
O que acontece quando você fecha a sessão atual e abre uma nova? Puf! Suas configurações meticulosamente elaboradas desaparecem – que chato, não é? Mas não tema, ainda há esperança. Deixe o comando funcsave
resgatar suas configurações do esquecimento!
Para persistir suas configurações entre sessões, prossiga com o seguinte:
1. Abra o arquivo de configuração do fish e adicione o comando funcsave
a cada function
junto com o nome da função, assim:

funcsave
command to persist functions across sessions2. Salve suas alterações e feche o editor e o terminal.
3. Abra uma nova sessão de terminal e execute o comando fish
abaixo para acessar o shell fish.
Se os comandos funcsave
que você adicionou funcionam para persistir suas configurações, você verá mensagens como as abaixo.

Configuração e Persistência de Variáveis de Ambiente
Embora as funções de persistência sejam ótimas, gerenciar valores de acesso global eleva a programação de shell a um novo patamar—configurando variáveis de ambiente. Ao contrário dos shells tradicionais que dependem do export
, o fish usa o set
com opções para controlar o escopo da variável e o comportamento de exportação.
Mas há uma pegadinha, sabe? Ah, você adivinhou! Uma variável configurada via comando set
no terminal só é acessível na sessão atual.
Para configurar e persistir variáveis de ambiente, a opção -gx
será útil da seguinte forma:
1. Adicione o seguinte comando para set
a variável MY_VARIABLE
no arquivo de configuração do fish como global. Abaixo está como a opção -gx
funciona:
-g
– Torna a variável global, acessível de qualquer escopo dentro do mesmo ambiente de usuário.-x
– Exporta a variável, tornando-a disponível para quaisquer comandos externos ou programas iniciados a partir do fish.

2. Salve as alterações na configuração, então feche o editor e o terminal.
3. Abra uma nova sessão de terminal, acesse o shell do fish e execute o seguinte comando para confirmar as alterações.
A saída abaixo confirma que as alterações foram aplicadas em todas as sessões.

4. Uma vez confirmado, adicione o seguinte comando set
ao arquivo de configuração do fish, salve as alterações e feche o editor.
Este comando torna a variável MY_UNIVERSAL_VARIABLE
global em todas as sessões, mesmo após reinicializações.
Veja como a bandeira -Ux
funciona abaixo:
-U
– Torna a variávelMY_UNIVERSAL_VARIABLE
universal, garantindo que seja compartilhada em todas as sessões de terminal atuais e futuras, incluindo aquelas de diferentes usuários.-x
– A variável é exportada para processos filhos, tornando-a acessível a quaisquer comandos ou scripts invocados a partir da sessão atual.

5. Abra uma nova sessão de terminal, acesse o shell do fish e execute o comando echo
abaixo para verificar as alterações.
Se tudo correr bem, você terá a seguinte saída, indicando que as alterações foram aplicadas em todas as sessões.

? Além do arquivo de configuração do fish, aproveite o
fish_config
no terminal para personalizações rápidas e automáticas. Este comando lança uma interface web em seu navegador, permitindo ajustes rápidos, configurações e gerenciamento de funções e variáveis de forma amigável para o usuário.
Gerenciando Plugins do Fish com o Gerenciador de Pacotes Fisher
O shell fish é impressionante por si só, certo? Mas adivinha só? Quando você começa a integrar plugins, ele se torna ainda mais poderoso. Esses plugins expandem as capacidades do shell fish, trazendo novos comandos, utilitários e integrações para melhorar significativamente sua experiência na linha de comando.
Um bom exemplo é o Fisher, um gerenciador de pacotes projetado para o shell fish. Este plugin é construído com desempenho e simplicidade em mente, e é leve.
? O Fisher é leve na gestão de plugins do shell fish e não é diretamente comparável aos gerenciadores de pacotes em nível de sistema. Essa distinção é evidente em relação ao tamanho e complexidade dos pacotes que ele gerencia.
Para gerenciar plugins do fish, você deve primeiro instalar o Fisher com as etapas delineadas a seguir:
Abra seu terminal, acesse o shell fish e execute o seguinte comando para baixar e instalar o Fisher. Este comando busca o script de instalação do Fisher e o redireciona para o source
, que executa o script dentro da sessão atual do shell fish via curl
.
Uma vez instalado, você verá a seguinte saída.

Agora, execute o comando fisher
abaixo para confirmar a instalação visualizando a --version
atualmente instalada do Fisher em seu sistema.

Instalando o Plugin GitNow
Agora que você já está com o Fisher funcionando, o que vem depois? Que tal reforçar o seu shell de peixe com alguns plugins legais? GitNow, por exemplo, é um conjunto de ferramentas que potencializa o seu fluxo de trabalho Git dentro do shell de peixe — tentador.
O GitNow oferece comandos simplificados para tarefas rotineiras do Git, aumentando a produtividade e simplificando a sua rotina de comandos Git.
Para instalar o GitNow usando o gerenciador de pacotes Fisher, siga estes passos:
1. No seu shell de peixe, execute o seguinte comando fisher
para instalar
o plugin GitNow (joseluisq/gitnow
).
Este comando instrui o Fisher a buscar e integrar o GitNow na sua configuração do fish, tornando sua variedade de atalhos Git imediatamente disponíveis.

2. Uma vez instalado, execute o comando gitnow
abaixo para confirmar se o GitNow está corretamente instalado.
Este comando exibe a versão atualmente instalada do GitNow, mas apenas se os comandos do GitNow forem reconhecidos no seu shell.

3. Por fim, execute este comando fisher
para listar
todos os plugins que o Fisher gerencia, incluindo o GitNow.
Abaixo, você pode ver o plugin GitNow e o próprio plugin Fisher.

Removendo Plugins do Shell de Peixe
O seu shell de peixe está afundando em plugins? Como se você estivesse deixando de arrumar a bagunça para encontrar o que precisa? Arrume o ambiente do seu shell de peixe removendo plugins desnecessários.
Para remover um plugin gerenciado pelo Fisher no seu shell fish, siga estes passos:
1. Execute o seguinte comando para listar
todos os plugins atualmente instalados.
Escolha um da lista que deseja remover.

2. Em seguida, execute o comando fisher remove
abaixo, seguido pelo nome do plugin (joseluisq/gitnow
) a ser removido.
Este comando indica ao Fisher para desinstalar o plugin GitNow do seu ambiente shell fish.

3. Agora, execute novamente o comando fisher list
para confirmar que o plugin GitNow foi removido com sucesso.
O plugin GitNow não deve mais aparecer na lista de plugins instalados.

Desinstalando o Gerenciador de Pacotes Fisher
Como você viu, o gerenciador de pacotes Fisher é realmente útil. Mas desinstalá-lo pode ser a melhor escolha se você estiver insatisfeito ou enfrentando problemas com o Fisher.
Para desinstalar completamente o Fisher do seu shell fish, siga o seguinte:
Execute o comando abaixo para listar
e remover
o fisher
e todos os plugins instalados via Fisher.

Alternativamente, execute o seguinte comando para remover
apenas o fisher
em si.

Explorando o Gerenciador de Pacotes Oh My Fish
Quando você já está navegando com Fisher, por que considerar Oh My Fish? Você já experimentou o poder dos plugins do shell de peixe com o Fisher. Mas aqui está o detalhe: este framework abre um novo reino de personalização para o shell de peixe, oferecendo uma extensa coleção de temas e plugins.
Para ver o que o Oh My Fish tem guardado para você, instale primeiro este gerenciador de pacotes com o seguinte:
Execute o seguinte comando curl
para baixar e executar o script de instalação do Oh My Fish (https://get.oh-my.fish
) dentro do shell fish
.
Se bem-sucedido, você terá uma saída semelhante à seguinte.

Uma vez instalado, execute o seguinte comando omf
para verificar a versão instalada do Oh My Fish.
A successful response, as shown below, indicates that Oh My Fish is ready and waiting to transform your fish shell experience.

Personalizando o Ambiente com Temas do Oh My Fish
Você está cansado da mesma aparência antiga do shell de peixe? Por que não adicionar um toque de personalidade? Dê ao seu ambiente do shell de peixe uma reforma com temas frescos e personalizados do Oh My Fish.
Para personalizar o ambiente do seu shell de peixe, você deve instalar temas com estes passos:
1. Abra o arquivo de configuração do peixe e remova a função fish_prompt
que define como o seu prompt é exibido. Fazê-lo garante que o prompt personalizado que você definiu não entre em conflito com ou substitua os temas fornecidos pelo Oh My Fish.
? Os temas vêm com prompts únicos essenciais para sua aparência e função. Desativar seu prompt personalizado (
fish_prompt
) garante que o tema Oh My Fish escolhido integre totalmente seu design e recursos ao seu shell fish.
2. Em seguida, exclua (rm
) o arquivo ~/.config/fish/functions/fish_prompt.fish
. Este comando não possui saída, mas ao excluir este arquivo, garante que o shell fish reverta para seu prompt padrão.
3. Execute este comando source
para que as alterações no arquivo de configuração do fish tenham efeito.

4. Agora, execute o seguinte comando omf
para descobrir o tema perfeito para o seu shell fish.
Escolha um tema que deseja integrar ao shell fish (ou seja, cbjohnson).
? Visite o repositório oficial do GitHub para temas do Oh My Shell para ver como cada tema se parece antes de instalá-los.

? Aprimore seu shell fish com plugins executando o seguinte comando para instalar plugins. Visite o repositório GitHub do OMF para ver uma lista de plugins para instalar.
omf install <nome_do_plugin>
5. Em seguida, execute o comando abaixo para instalar
o tema que você escolheu no passo quatro (cbjohnson
).
Depois de instalado, seu prompt muda imediatamente, como no exemplo a seguir.

? Dica: Alterne rapidamente entre temas quando você tiver dois ou mais executando o seguinte comando.
omf theme <nome_do_tema>
Desinstalando o Oh My Fish
Oh My Fish é uma joia para dar uma animada na vibe do seu shell. Mas se você quiser uma mudança de cenário ou experimentar algo novo, desinstalar o Oh My Fish dará ao seu shell do fish um novo começo.
Para desinstalar o Oh My Fish, siga os passos abaixo:
1. Execute os seguintes comandos rm
para excluir todos os arquivos relacionados ao Oh My Fish.
Depois de removidos, você verá seu tema inicialmente instalado desaparecer.

2. Em seguida, execute cada um dos comandos abaixo para excluir mais arquivos relacionados ao Oh My Fish.
Esses comandos não têm saída, mas a exclusão desses arquivos garante que todos os vestígios do Oh My Fish sejam removidos do seu sistema.
3. Agora, execute o comando omf
abaixo para verificar a exclusão.
Você verá um erro como o seguinte, informando que o comando omf
não foi encontrado e que o Oh My Fish foi completamente desinstalado.

Configurando o Fish como o Shell Padrão
Se você curtiu a experiência com o shell do fish aprimorando sua experiência no Linux, por que não defini-lo como seu shell padrão? Dessa forma, você economiza o trabalho de alternar sempre que iniciar um novo terminal.
Para definir o fish como seu shell padrão, siga as etapas abaixo:
1. Execute o comando abaixo para encontrar o caminho onde o shell fish
está localizado.
Copie o caminho para a área de transferência, pois você precisará dele nos próximos passos.

2. Em seguida, execute o seguinte comando para adicionar o fish à lista de shells aceitáveis em /etc/shells
.

3. Por fim, execute o comando chsh
abaixo para alterar o seu shell padrão para fish (/usr/bin/fish
).
Ao reiniciar sua máquina, você terá o fish como seu shell padrão.

? Dica: Volte do fish para outro shell como o Bash como padrão repetindo todos os passos desta seção. Certifique-se de especificar o caminho para o Bash nos passos dois e três, em seguida, reinicie sua máquina para aplicar as alterações.
Conclusão
Ao longo deste tutorial, você mergulhou fundo na essência do shell fish, descobrindo seus recursos poderosos e opções personalizáveis. Desde definir aliases até personalizar prompts e persistir variáveis de ambiente até gerenciar plugins, o shell fish tem sido seu fiel escudeiro.
Você obteve insights para transformar sua experiência no Linux com o gerenciador de pacotes Oh My Fish. Além disso, aprendeu como descobrir e instalar novos plugins e temas facilmente, expandindo a funcionalidade e estética do seu ambiente shell fish.
Agora que você explorou os conceitos básicos do shell fish, mergulhe mais fundo e desbloqueie todo o seu potencial. Que tal experimentar com prompts personalizados como Powerline ou Starship para dar ao seu shell um toque personalizado?