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.088 ]

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


Trocando o shell padrão



Usando vários shells

Vimos na página 2, que para você usar ou testar o shell fish (ou outros shells), mantendo bash como padrão, é fácil.

1. Basta executar o nome do shell como comando (como usuário comum):

fish  # Ou o nome do shell que se quer: dash, zsh, etc.
Ou:
/bin/fish

Assim já está usando fish, mas seu prompt principal é bash.

Para voltar para bash, feche o terminal e reabra. Ou execute:

bash
Ou:
/bin/bash

Eu uso assim, porque é mais simples, seguro e porque estou testando vários shells.

** Se for deletar o pacote fish, porque já testou e não gostou, lembre de voltar para o bash, antes!

Na imagem abaixo, três terminais GNOME com meus três shells. O de cima é zsh, o do meio é bash, e o de baixo, é fish:
Linux: Fish - Um shell fácil de usar

2. Para ver qual o seu shell padrão e quais os shells instalados no seu sistema, execute os comandos:

echo $SHELL
Ou:
env | grep $SHELL

chsh -l

Trocando o shell do sistema

3. Mas, você resolveu mesmo trocar definitivamente o shell padrão para fish, não quer mais usar bash. Não é aconselhável, mas pode ser feito.

Primeiro, não desinstale o pacote bash de sua distribuição, mesmo que não o use mais. Também não altere o shell geral do sistema, o global, nem o shell do root.

A razão para isso: seu sistema usa, e você também pode querer usar scripts.

A maioria dos Shell Scripts são feitos em bash. Teoricamente, os shells são compatíveis, mas nada é garantido.

Só com muita prática em fish, você pode afirmar que seu script vai ser interpretado corretamente. Lembre que o bash é o interpretador de comandos padrão no seu sistema, e ele precisa de interpretador de comandos!

Para trocar, tente os comandos abaixo, um por um na ordem certa. Isso é necessário, pois dependendo do seu GNU/Linux e configuração, podem ocorrer problemas nas variáveis de ambiente.

4. Por isso, primeiro tente apenas trocar com o simples comando abaixo, executado como usuário comum:

chsh -s fish
Ou:
chsh /bin/fish

Se tiver um terminal aberto, feche-o e abra-o novamente. Deverá ver o prompt do fish e não mais do bash. Senão, não funcionou!

5. Supondo que não funcionou, repita o comando, modificando-o desta maneira:

chsh -s fish usuário

Onde usuário, é o seu nome de usuário, aquele que usa para logar no GNU/Linux.

6. Não funcionou de novo, continua em bash. Tente assim:

chsh -s $(which fish) usuário

7. Você está com sorte! (rs!) Nada funcionou até agora, continua bash! (rs...!)

Provavelmente, seu sistema deve ter o bash em variáveis globais, ou em outras pastas, PATHs, não padronizados. Tente como abaixo:

Veja se o fish está entre os shells instalados:

cat /etc/shells
Ou:
more /etc/shells

Está, sim! Então, veja se seu usuário está configurado para usar bash. Tente com o comando abaixo e deverá ver uma linha assim:

cat /etc/passwd | grep usuário
usuário:x:1000:1001:Nome Completo do Usuário:/home/usuário:/bin/bash


Onde usuário é o seu nome de usuário.

Com um editor de texto em modo root, edite esse arquivo e troque bash por fish e salve o arquivo.

Depois, tente reexecutar os comandos dados em 4-6.

Se até agora não trocou, pode tentar como descrito em 8-11. Contudo seria mais seguro deixar em bash o shell padrão mesmo.

Os procedimentos não são recomendados, pois podem alterar as variáveis de ambiente e as configurações globais.

* Se quiser continuar, vá por sua conta e risco!

8. Tente executar os comandos dos itens 4-6, mas como root e não como usuário comum.

9. Ainda não deu! (rsrsrs!)

Procure, olhe dentro, e edite o arquivo "/home/usuário/.bash_profile" como root, colocando uma linha:

export SHELL=/bin/fish

Que equivale a converter seu arquivo de bash em um ".fish_profile", mas é relativamente seguro:

cat ~/.bash_profile
Ou:
more ~/.bash_profile

sudo echo 'export SHELL=/bin/fish' >> ~/.bash_profile

10. Mais coisas a testar, se nada funcionou. Cuidado, está para alterar as variáveis de ambiente:

chsh -s /usr/local/bin/fish
Ou:
chsh -s /usr/local/bin/fish

11. Solução radical, trocar tudo. Cuidado, último recurso, se realmente quer trocar.

Coloque a linha:

set-option -g default-shell "/bin/fish"

...no arquivo "~/.bash_profile" (veja item 9).

Troque para fish direto no seu terminal (Konsole, GNOME Terminal, etc) na interface gráfica ("Configurações") ou com os comandos:

sudo Terminal -e fish
Ou:
sudo SHELL=/bin/fish Terminal

Onde Terminal, é o nome do executável do seu terminal, isto é: konsole, gnome-terminal, mate-terminal, etc.

Depois, troque nos arquivos, como root:

# grep -q '^/bin/fish$' /etc/shells
Ou:
# echo '/bin/fish' | tee -a /etc/shells

# chsh -s /bin/fish

Detalhes do procedimento 11, é uma modificação de:
12. Fazendo os procedimentos acima, se seu shell foi trocado para fish, ajuste todas as variáveis de ambiente.

Usando um tutorial como este, exporte as variáveis do sistema.

Observação: em Sabayon e Gentoo, isso pode ser feito direto com um comando sudo env-update, mas não sei se isso funcionaria em distribuições não-Gentoo.

Feche o terminal e reabra. Se estiver em fish, finalize executando o comando, abaixo, como usuário normal:

source /etc/profile


Pronto, você trocou seu shell padrão para fish.

Página anterior    

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

Instalando, gerenciando e mantendo pacotes no Gentoo Linux e derivados

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

ATI Catalyst Radeon Graphics no Sabayon Linux - Instalando e configurando drivers proprietários

Sabayon 5.0 - Transformando Sabayon 4.0r1 em Sabayon 5.0 "Full" (parte 2)

Regulando o desktop para trabalhar em máxima performance

Leitura recomendada

Experiência de pós-instalação do openSuSE 11.1 Linux

Software Livre... e um passo além

UNIX - Definição e História

Instalando o Dynebolic sem instalador

Instalando e deixando o Torsmo mais bonito

  
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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts