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

¿Cómo puedo hacer que Bash sea mi shell por defecto en Ubuntu?

Tengo un .bash_profile en mi directorio personal, pero no se ejecuta al iniciar la sesión. Si hago lo siguiente, las cosas parecen ser como espero:

ssh myhost
bash
source ~/.bash_profile

Pero normalmente todo eso ocurre al iniciar la sesión. ¿Qué opinas?

Respuestas (8)

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

Utiliza:

chsh

Introduce tu contraseña e indica la ruta del shell que quieres utilizar.

Para Bash sería /bin/bash. Para Zsh sería /usr/bin/zsh.

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

Además de la respuesta de akira, también puedes editar tu archivo /etc/passwd para especificar tu shell por defecto.

Encontrarás una línea como la de este ejemplo:

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

El shell se especifica al final.

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

Puede comprobar su programa de terminal. Podría estar configurado para ejecutar /bin/sh en lugar de /bin/bash

Bash ejecuta .bash_profile sólo para las sesiones de inicio de sesión. .bashrc se ejecuta para todas las sesiones de bash, no sólo para las sesiones de inicio de sesión. Pruebe a extraer .bash_profile de .bashrc (¡evite la dependencia circular!) o configure su programa de terminal para ejecutar /bin/bash -l como un programa de shell.

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

Habilitar bash:

$ /bin/bash

Cambiar el shell para el usuario:

$ sudo usermod -s /bin/bash username

donde:

-s, --shell SHELL new login shell for the user account
2
2
2
2010-06-01 11:40:25 +0000

Una alternativa es cambiar el nombre de su script de inicio a .profile. Este archivo está siendo fuente por la mayoría de los shells de Unix .

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

Si de alguna manera no ve su nombre de usuario en el archivo /etc/passwd [este es el caso cuando su sistema está bajo el control de algún otro dominio, por ejemplo, en las empresas de TI] O dice “usuario no encontrado” con la opción chsh entonces el siguiente proceso podría ayudarle.

La lógica detrás del siguiente truco -> En Ubuntu, /bin/sh es dash. Puedes cambiar tu sistema para usar bash. En Ubuntu, /bin/sh es un enlace simbólico a dash. Para cambiarlo, ejecute

sudo dpkg-reconfigure dash

Y pulse No para cambiar a bash.

Ahora, vaya a Terminal->Edición->preferencias->Comando y marque la casilla con la declaración

Ejecutar el comando como shell de inicio de sesión

Y eso es todo.

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

Para hacer que cualquier shell sea el predeterminado, primero verifique que esté instalado y sea reconocido en su ordenador mirando el contenido 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

A continuación, utilice chsh para cambiar su shell:

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

Referencias

  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
0
0
0
2018-09-15 19:37:41 +0000

No hay suficiente información en tu pregunta para que pueda asegurarlo, pero he tenido el mismo problema antes. Asumiendo que ya tienes configurado /bin/bash en tu entrada de contraseña, puede ser la forma en que tu terminal se lanza.

Si estás tratando de lanzar una terminal GUI, digamos gnome-terminal puedes estar esperando que el shell lea tus archivos de inicio de bash. Sin embargo, esto no ocurre en Ubuntu y quizás en otros sistemas por defecto.

La forma en que lo he arreglado en Ubuntu es editar las preferencias de gnome-terminal, y establecer el comando de inicio para que sea bash -l. -l es la abreviatura de --login. Esto le dice a bash que se inicie como shell de inicio de sesión, lo que hace que cargue los scripts de inicio como los que se obtienen al iniciar sesión a través de ssh.

Estoy seguro de que hay una buena razón para que esto sea así, pero lo encontré sorprendente y más que un poco molesto ya que comparto los mismos perfiles a través de los sistemas linux, cywgin y macos.