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: 31.310 ]

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

Como manter GNOME2 em Sabayon Linux

Instalando, gerenciando e mantendo pacotes no Gentoo Linux e derivados

Symbaloo para uso em Química e Pesquisa Científica

Clonando e Salvando Todos os Linux de um Disco Rígido para um HD Portátil Usando Gparted

Associando teclas a comandos, tarefas ou aplicativos... com toda facilidade

Leitura recomendada

Obtendo Gnome 2.10 de modo prático!

Instalação do XFCE 4.2 no Debian

Acessando os celulares Motorola no Linux

LaTeX, um poderoso diagramador de textos (parte 2)

Certificado Digital para Peticionamento Eletrônico (2018)

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts