Como definir peixe como o shell padrão?

110

Existe uma maneira de definir o peixe como o shell padrão no ubuntu netbook remix? Eu coloquei no meu .bashrc para rodar peixes, o que funciona bem, mas o ubuntu o reconhece como peixes rodando dentro do bash, o que significa que quando eu tento fechar o shell, ele me avisa que uma tarefa ainda está em execução.

Ele não aparece como um novo aplicativo, então não posso fixá-lo no meu bar como um aplicativo normal.

Xodarap
fonte

Respostas:

151

Você pode definir o peixe como seu shell padrão executando

chsh -s `which fish`

Para fazer isso para outro usuário, basta adicionar o nome de usuário no final do comando e usar sudo.

Então saia e entre novamente.

(Para configurá-lo novamente bash, é necessário usar a sintaxe Fish, é claro chsh -s (which bash))

ajmitch
fonte
3
Isso não parece funcionar para mim. Não apresenta um erro, mas parece que não funciona, mesmo que eu apenas abra uma nova guia. Alguma ideia?
Xodarap
16
Talvez você precise fazer logoff e logon novamente - tentei em uma máquina virtual limpa e funcionou.
ajmitch
11
Como você define isso de volta?
Knutole
7
Não execute este comando acidentalmente com sudoou você mudará o shell raiz.
Stephen Niedzielski
2
Ou chsh -s (which fish)de dentro do peixe.
Wtower 26/02/16
30
usermod -s /usr/bin/fish username

Deve ser executado como root.

Isso mudará o shell permanentemente para o usuário especificado.

sweetfa
fonte
11
Eu sei que não é o Ubuntu, mas queria comentar: estava no CentOS e estava recebendo um Authentication Failederro ao tentar alterar o shell com um usuário não root e, depois de pesquisar extensivamente para tentar descobrir, essa era a única coisa isso funcionou. Obrigado!
CWpearear3 /
Sim ele vai funcionar na maioria dos sabores de Unix que têm usermod e peixe para uma concha, ou alterar o shell de qualquer sabor que você deseja
sweetfa
Eu fiz isso e agora o terminal não inicia mais. Recebo "Ocorreu um erro ao criar o processo filho para este terminal", "Falha ao executar o processo filho" / usr / bin / fish "(erro de entrada / saída)". Como posso desfazer isso?
ptkato
Emita o mesmo comando como root, mas use bash em vez de fish como shell.
SweetDez
21

Acabei de adicionar a linha fishao final do meu .bashrc.

Kyle D
fonte
11
Essa é a solução mais simples e melhor, IMO;)
Ben Marten
9
Desculpe, mas não é eficiente. :) Ele carregará sua casca de peixe, mas no topo da sua festança.
M. Junaid Salaat
11
Por que o bash precisa ser eficiente? @ M.JunaidSalaat
codenamejames
À primeira vista, isso parece um hack sujo, mas depois de um tempo usando meu PC com o fish definido como o shell padrão com o chsh, voltei a esta solução. Alguns programas assumem que você está usando o bash e trava por causa da sintaxe do bash no peixe. Até agora, enfrentei esses problemas no i3wm e no matlab.
Naheel
@codenamejames: Não é que o bash precise ser eficiente ou que esses poucos milissegundos sejam importantes, mas é um caso de nada a perder, então por que não corrigi-lo? Especialmente aqui, onde estamos dando conselhos a outras pessoas. Deveríamos saber melhor
swalog
13

Eu concordo com a chshresposta correta. Contudo:

Se você executar chshe receber um erro

/usr/local/bin/fish: non-standard shell

basta adicionar o local binário do peixe para /etc/shells.

Encontrado aqui .

jackbravo
fonte
Isso é necessário no macOS Mojave.
Dodekeract 22/06
2

Em /etc/shells, adicione /usr/local/bin/fish:

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish

Então chsh -s /usr/local/bin/fish.

Dorian
fonte