2009-09-25 12:03:09 +0000 2009-09-25 12:03:09 +0000
107
107

Como faço de Bash a minha concha padrão no Ubuntu?

Tenho um .bash_profile no meu directório home, mas não está a ser executado no início de sessão. Se eu fizer o seguinte, então as coisas parecem ser como espero:

ssh myhost
bash
source ~/.bash_profile

Mas normalmente tudo isso acontece no início de sessão. Pensamentos?

Respostas (8)

176
176
176
2009-09-25 12:08:58 +0000

Utilização:

chsh

Introduza a sua palavra-passe e indique o caminho para a concha que pretende utilizar.

Para Bash que seria /bin/bash. Para Zsh isso seria /usr/bin/zsh.

37
37
37
2009-09-25 12:09:20 +0000

Para além da resposta da akira, pode também editar o seu ficheiro /etc/passwd para especificar a sua concha predefinida.

Encontrará uma linha como este exemplo:

john:x:1000:1000:john,,,:/home/john:/bin/sh

A shell é especificada no final.

4
4
4
2009-09-25 12:14:23 +0000

Poderá verificar o seu programa terminal. Poderá ser configurado para executar /bin/sh em vez de /bin/bash

Bash executa .bash_profile apenas para sessões de login. O .bashrc é executado para todas as sessões de bash, e não apenas para sessões de início de sessão. Tente obter .bash_profile a partir de .bashrc (evite dependência circular!) ou configurar o seu programa terminal para executar /bin/bash -l como um programa shell.

4
4
4
2018-01-25 18:44:30 +0000

Habilitar a festança:

$ /bin/bash

Mudar shell para o utilizador:

$ sudo usermod -s /bin/bash username

onde:

-s, --shell SHELL new login shell for the user account

0x1&

2
2
2
2010-06-01 11:40:25 +0000

Uma alternativa é renomear o seu guião de arranque para .profile. Este ficheiro está a ser fonte pela maioria dos Unix shells .

1
1
1
2019-11-17 19:17:11 +0000

Se de alguma forma não vir o seu nome de utilizador no ficheiro /etc/passwd [este é o caso quando o seu sistema está sob controlo de algum outro domínio, por exemplo, em empresas de TI] Ou diz “utilizador não encontrado” com a opção chsh a opção abaixo do processo pode ajudá-lo.

A lógica por detrás do truque abaixo -> No Ubuntu, /bin/sh é traço. Pode mudar o seu sistema para usar a bash. No Ubuntu, o /bin/sh é uma ligação simbólica ao traço. Pode fazer dele um link simbólico para bash em vez disso. Para o alterar, corra

sudo dpkg-reconfigure dash

E prima No para mudar para bash*.

Agora, vá a Terminal->Editar->preferências->Comando e assinale a caixa de verificação com a declaração

Executar comando como shell de login

E é tudo.

1
1
1
2019-06-27 13:29:35 +0000

Para fazer de qualquer shell o seu padrão, verifique primeiro se ele está instalado e reconhecido no seu computador, olhando para o conteúdo de /etc/shells:

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/fish

Depois use chsh para alterar a sua shell:

$ sudo chsh -s /usr/bin/bash $(whoami) # or sudo chsh -s /bin/bash $(whoami)

Referências

  1. https://linux.die.net/man/1/cat
  2. https://linux.die.net/man/1/whoami
  3. https://linux.die.net/man/5/shells
  4. https://linux.die.net/man/1/chsh 4.
0
0
0
2018-09-15 19:37:41 +0000

Não há informação suficiente na sua pergunta para eu dizer com certeza, mas já tive o mesmo problema antes. Assumindo que já tem /bin/bash definido na sua entrada de senha, pode ser a forma como o seu terminal é lançado.

Se estiver a tentar lançar um terminal GUI, digamos gnome-terminal pode estar à espera que a shell leia os seus ficheiros de arranque de bash. Contudo, isto não acontece no Ubuntu e talvez em outros sistemas por defeito.

A forma como o fixei no Ubuntu é editar as preferências gnome-terminal, e definir o comando de arranque para bash -l. -l é a abreviatura de --login. Isto diz bash para iniciar como shell de início de sessão, o que faz com que carregue os scripts de início de sessão à medida que se inicia a sessão via ssh.

tenho a certeza de que há uma boa razão para isto ser assim, mas achei surpreendente e um pouco irritante, uma vez que partilho os mesmos perfis nos sistemas linux, cywgin e macos.