Fish - Um shell fácil de usar

Este artigo mostra a instalação e uso do Shell Fish (Friendly Interactive Shell). É uma alternativa configurável e fácil de usar, ao mais conhecido Bash (Bourne-Again Shell), comumente encontrado como padrão nas distribuições GNU/Linux.

[ Hits: 27.130 ]

Por: Alberto Federman Neto. em 18/09/2013 | Blog: https://ciencialivre.blog/


Configuração



Arquivos de configuração

Se você está acostumado com bash ou zsh, sabe que as configurações são feitas respectivamente nos arquivos "~/.bashrc" e "~/.zshrc".

Em fish, não. Segundo a documentação, ficaria em "~/.config/fish/config.fish":

Citação:
"You can add a section to your ~/.config/fish/config.fish file that will set your path correctly on login."
Citado de: Fish - ArchWiki

Mas, notei que, dependendo do seu sistema, e de como foi instalada, haverão vários outros arquivos e pastas que poderão conter as configurações do fish.

Inclusive no meu sistema, nem existe o arquivo "~/.config/fish/config.fish", localizei, em meu Sabayon:

locate config.fish
/etc/fish/config.fish
/usr/share/fish/config.fish
/usr/share/fish/completions/apt-config.fish
/usr/share/fish/completions/ifconfig.fish
/usr/share/fish/functions/fish_config.fish


locate fish_prompt.fish
~/.config/fish/functions/fish_prompt.fish
/usr/share/fish/functions/fish_prompt.fish


Descobri que a maior parte das configurações está em "/usr/share/fish" e alguma coisa em "~/.config/fish". Parece complicado? Não é tanto!

Tutoriais

Neste ponto, comece a ler os tutoriais do fish:

Configurações

Para facilitar para o usuário, o fish tem funções e variáveis internas, compiladas nele, que permitem configurar com facilidade.

Uma dessas funções é chamada fish_prompt. Vejam exemplos de como se usa:

function fish_prompt
echo "Trocar jeitão do Terminal -->"
                         end


Isso retorna o prompt:

Trocar jeitão do Terminal-->

Outro exemplo:

function fish_prompt
                   set_color yellow
                   date +%d-%m-%y
                   set_color red
                   echo (pwd) '>->'
                   set_color normal
                end


06-09-13~ >->


Com um pouco de prática, não é difícil!

Veja que você pode trocar a cor do prompt, datar, etc, sem usar sequências de escape e sem linhas PS1, PS2... isso simplifica, não complica.

Configuração via navegador

Ainda assustado para configurar o fish? Mais moleza! (rs!)

O jeito mais fácil de configurar, é por interface gráfica (disponível nas versões acima da 1.9):
Que abre no seu navegador Web! Execute este comando:

fish_config

Exemplo:

fish_config
Web config started at 'http://localhost:8000/'. Hit enter to stop.


É um configurador gráfico intuitivo e fácil de usar:

Nesta interface, você pode escolher cores, tonalidades (fish trabalha com 256 cores e não apenas com as cores principais). Funções, aspecto geral do prompt, também pode ser modificados.

Nesta interface, escolhi cores para comandos, diretórios, ajuda, autocompletar, etc.

Para o tema de prompt, escolhi o chamado Simple Pythonista (que depois irei reeditar nos parâmetros de configuração, veja item: Modificações, abaixo):

Prompt

* Neste ponto, chamo a atenção: gostaria que vocês observassem não só o prompt, mas também o código à direita. Vejam que é totalmente amigável, fazer um prompt de duas linhas, como este que usei, fica muito mais fácil!

No bash, para fazer um prompt em duas linhas, é preciso não só usar escapes, como também comandos (como eu havia já feito no meu bash).

Vejam também que nesse configurador gráfico, funções, histórico e variáveis, são todos editáveis. Tudo isso sem escapes, sem linhas tipo PS1 etc..., bem fácil.

Modificações

Modificações adicionais podem ser feitas.

Exemplo, editando o meu arquivo "~/.config/fish/functions/fish_prompt.fish" e depois mexendo na cor padrão do perfil do GNOME Terminal, deixei as cores do terminal assim (comparar com a figura "Prompt"):

Outra possibilidade, seria editar diretamente o arquivo local "/usr/share/fish/tools/web_config/sample_prompts", ANTES de abrir o configurador gráfico:

Outras modificações também pode ser feitas, editando nos correspondentes arquivos, as funções (em "/usr/share/fish/functions") ou as variáveis.

Considero esta integração entre o navegador e o shell, uma característica muito útil para tornar o fish mais facilmente configurado.

oh-my-fish

Além de tudo isso, o fish também tem um outro configurador, o oh-my-fish:
Ele é análogo ao usado no zsh, o (oh-my-zsh), e instalado e personalizado de maneira semelhante. Veja meu artigo abaixo:
Considero o fish um bom shell, aperfeiçoado e com comandos que o bash não possui, e mais fácil de configurar e trabalhar.

Experimente fish!

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e uso geral
   3. Configuração
   4. Trocando o shell padrão
Outros artigos deste autor

BOINC - Computação distribuída e aplicações científicas

Comparando desempenho de distros, arquiteturas ou ambientes gráficos - Método universal

Instalando, gerenciando e mantendo pacotes no Gentoo Linux e derivados

As características de personalidade dos usuários de Linux

Sabayon Linux - Novos Repositórios da Comunidade

Leitura recomendada

PNL para Hacking

MPlayer - The Movie Player

Biometria: Processamento de imagens capturadas em leitores de impressão digital

Se você não pode com seus inimigos, compre-os!

LaTeX - Figuras e tabelas

  
Comentários
[1] Comentário enviado por xerxeslins em 18/09/2013 - 18:40h

Creio que não irei usar, mas mesmo assim é muito interessante. Favoritado.

[2] Comentário enviado por eldermarco em 19/09/2013 - 09:53h

Sensacional! Eu acho que já tinha ouvido falar desse fish em algum momento, mas agora vi algo bem mais completo. Deve permanecer com o bash, mas vou dar uma olhada nele para conhecer e ver como anda o desenvolvimento. Nota 10!

[3] Comentário enviado por dimasdaros em 21/09/2013 - 13:06h

Opa, estou testando ele aqui, parece ser bem produtivo.
Uma coisa que não consegui foi usar o auto completar com base no histórico, até que você que comentou que ao digitar `cat` ele já sugeriu o comando, aqui não consegui usar essa função (que no bash é ctrl + r)

Mas estou gostando.
Vlw pela dica.
Abraço.

[4] Comentário enviado por Ang em 22/09/2013 - 17:23h

Olá, bom dia!
Você pode criar uma dica de Shell`s para iniciantes no ´Mundo` Linux?

[5] Comentário enviado por albfneto em 22/09/2013 - 18:42h

Como assim? Uma Dica para iniciante total usar comandos?

Comandos para quem nunca usou? Não vai ficar muito básico?

[6] Comentário enviado por claudiocastelo em 26/09/2013 - 14:27h

Curiosidade, o comando "history" não funciona!

[7] Comentário enviado por albfneto em 27/09/2013 - 00:06h

Claudio e Dimasdaros..

deve ser algo da config de vocês, pq aqui (Dimasdaros) digitei "his" e ele completou!
e o history está funcionando aqui, veja:

[code]
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
albfneto no sabayon dir: ~
↪ history

transmission
amuleadu
amule
sudo equo i --nodeps www-client/chromium
sudo equo i --nodeps www.client/chromium v8 anaconda
sudo equo up
locate mountpoint
sudo equo i util-linux
equo s util-linux
equo s util-linux
sudo equo mask protobuf
sudo equo up sabayonlinux.org
sudo equo up http://sabayon.c3sl.ufpr.br/entropy/
help
exit
ls -a
ls
...........................
/code]

chequem as configs do Fish de vocês, os arquivos citados no artigo

[8] Comentário enviado por juno em 02/10/2013 - 09:38h

Caro albfneto
Muito legal já estou usando ....

[9] Comentário enviado por removido em 06/08/2014 - 01:47h

Um grande shell, sem dúvida, uma pena os devs não darem muita moral para ele.

[10] Comentário enviado por guimaraesrocha em 22/08/2014 - 21:23h

Mais um shell para testar, bom artigo.

[11] Comentário enviado por uberlan em 23/10/2014 - 23:37h

Muito obrigado pela dica. Me salvou de uma...


Contribuir com comentário