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.


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))


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.


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.


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 .


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.