Os dias de comandos crípticos e sintaxe rígida ficaram para trás. Por que gastar mais tempo decifrando páginas de manual do que escrevendo scripts ou navegando pelo seu sistema? Adote o poder e a simplicidade do shell fish, seu ingresso 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 nova confiança em suas habilidades no Linux!
Pré-requisitos
Antes de começar, reserve um momento para garantir que você tenha coberto 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 comandos sem problemas. O shell fish oferece feedback em tempo real e sugestões contextualmente conscientes para comandos, nomes de arquivos e argumentos.
Mas primeiro, você precisa acessar o shell fish antes de investigar as validações de comandos, autocompletar e sugestões.
Para explorar esse recurso que permite identificar e corrigir erros antes mesmo de executá-los, siga os passos abaixo:
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 porque o shell fish não a reconhece como um comando válido. Esta indicação visual imediata indica que algo está errado com o comando.
Mas não se preocupe! Graças à sugestão automática, a letra ‘s‘ aparece em mute, sugerindo o comando correto.

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

Definindo Aliases de Comando no Arquivo de Configuração do Fish
Além do feedback em tempo real e sugestões contextualizadas, 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 usa 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 nano
ou vim
, mas este tutorial usa o primeiro.
Depois de 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 adicionaram configurações anteriormente.
O arquivo pode incluir apenas comentários ou blocos condicionais básicos para novas instalações, como o 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 tem saída para o 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 a 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ê continua retornando sempre que necessário?

clear
command worksPersonalizando o Prompt do Shell Fish
Além de configurar aliases para operações mais suaves, o fish lhe dá 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 de 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.
Depois de fonteado, você verá as mudanças no prompt como na captura de tela a seguir.

Conservando Alterações entre Sessões
Você viu como criar personalizações no shell fish. Mas uma coisa a notar: 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 é mesmo? Mas não tema, pois ainda há esperança. Deixe o comando funcsave
resgatar suas configurações do esquecimento!
Para manter suas configurações entre sessões, siga os passos abaixo:
1. Abra o arquivo de configuração do fish e acrescente o comando funcsave
a cada function
juntamente 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 do terminal e execute o comando fish
abaixo para acessar o shell fish.
Se os comandos funcsave
que você adicionou funcionarem 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 globalmente acessíveis leva a criação de scripts de shell a um nível superior — 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á um porém, sabe? Ah, você adivinhou certo! Uma variável definida via comando set
no terminal só é acessível na sessão atual.
Para definir 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 a partir 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 lançados a partir do fish.

2. Salve as alterações de configuração, em seguida, feche o editor e o terminal.
3. Abra uma nova sessão de terminal, acesse o shell 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. Após confirmar, 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 terminais atuais e futuras, incluindo as 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 terminal, acesse o shell 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 inicia uma interface web em seu navegador, permitindo ajustes rápidos, configurações e gerenciamento de funções e variáveis de forma amigável ao usuário.
Gerenciando Plugins do Fish com o Gerenciador de Pacotes Fisher
O shell Fish é impressionante por si só, certo? Mas sabe o que é ainda melhor? 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 aprimorar 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.
? Fisher é leve na gestão de plugins para o 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 seguindo as etapas abaixo:
Abra seu terminal, acesse o shell Fish e execute o seguinte comando para baixar e instalar o Fisher. Este comando obtém o script de instalação do Fisher e o redireciona para source
, que executa o script na sessão atual do shell Fish via curl
.
Depois de 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ê tem o Fisher em funcionamento, qual é o próximo passo? Que tal fortalecer seu shell de peixe com alguns plugins legais? GitNow, por exemplo, é um conjunto de ferramentas que potencializa seu fluxo de trabalho Git dentro do shell de peixe – tentador.
O GitNow oferece comandos simplificados para tarefas Git rotineiras, aumentando a produtividade e simplificando sua rotina de comandos Git.
Para instalar o GitNow usando o gerenciador de pacotes Fisher, siga estas etapas:
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 peixe, tornando sua gama de atalhos Git imediatamente disponíveis.

2. Uma vez instalado, execute o comando gitnow
abaixo para confirmar que 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 último, 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á afogado em plugins? Como se você estivesse deixando de lado para encontrar o que precisa? Limpe seu ambiente do 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 diz ao Fisher para desinstalar o plugin GitNow do seu ambiente do shell fish.

3. Agora, execute o mesmo 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ê se sentir insatisfeito ou tiver 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 já está a navegar com o Fisher, por que considerar Oh My Fish? Você já experimentou o poder dos plugins do shell fish com o Fisher. Mas aqui está a questão: este framework abre um novo mundo de personalização para o shell fish, oferecendo uma extensa coleção de temas e plugins.
Para ver o que o Oh My Fish tem reservado 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 for bem-sucedido, 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
Cansado da mesma aparência do shell fish? Por que não adicionar um toque de personalidade? Dê um makeover ao seu ambiente do shell fish com temas frescos e personalizados do Oh My Fish.
Para personalizar o ambiente do seu shell fish, você deve instalar temas com os seguintes passos:
1. Abra o arquivo de configuração do fish 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 ou substitua os temas fornecidos pelo Oh My Fish.
? Os temas vêm com prompts exclusivos cruciais para sua aparência e função. Desativar seu prompt personalizado (
fish_prompt
) garante que seu 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 tem saída, mas 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 do 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 escolhido no passo quatro (cbjohnson
).
Uma vez instalado, seu prompt muda imediatamente, como no exemplo a seguir.

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

2. Em seguida, execute cada comando 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 seguinte comando omf
para verificar a exclusão.
Você verá um erro como o seguinte, dizendo que o comando omf
não foi encontrado e que Oh My Fish foi completamente desinstalado.

Configurando Fish como o Shell Padrão
Se você adorou usar o shell Fish para aprimorar sua experiência no Linux, por que não configurá-lo como seu shell padrão? Dessa forma, você economiza o trabalho de alternar sempre que abrir um novo terminal.
Para definir o fish como seu shell padrão, siga os seguintes passos:
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 seu shell padrão para o fish (/usr/bin/fish
).
Quando reiniciar sua máquina, o fish será seu shell padrão.

? Dica: Altere de volta do fish para outro shell como o Bash como padrão repetindo todos os passos nesta seção. Certifique-se de especificar o caminho para o Bash nos passos dois e três, e então reinicie sua máquina para que as alterações sejam aplicadas.
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 a definição de aliases até a personalização de prompts e persistência de variáveis de ambiente até o gerenciamento de plugins, o shell fish tem sido seu fiel escudeiro.
Você adquiriu 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, expandindo a funcionalidade e a estética do seu ambiente shell fish de forma fácil e eficaz.
Agora que você explorou o básico do shell fish, mergulhe mais fundo e desbloqueie seu potencial completo. Por que não experimentar com prompts personalizados como Powerline ou Starship para dar um toque personalizado ao seu shell?