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.