Cómo cambiar de csh a bash como shell predeterminado


34

Tengo cshcomo mi shell predeterminado, como se muestra en echo $SHELL. Quiero cambiar a bashmi shell predeterminado. Intenté los siguientes enfoques en vano:

  1. Con chshconsigo:

    chsh: can only change local entries; use ypchsh instead.
  2. Con ypchshconsigo:

    ypchsh: yppasswdd not running on NIS master host ("dcsun2").

Solo tengo .chsrcen mi directorio personal y no puedo encontrar ningún .profilearchivo /etc. ¿Cómo puedo cambiar mi shell predeterminado a bash?


44
Podría ser útil saber en qué tipo de Unix eres.
enzotib

Respuestas:


44
  1. Asegúrate de que tienes bashinstalado.

  2. Conozca la ubicación de bash:

    which bash

    o

    whereis bash

    A continuación, asumiré que la ubicación es /bin/bash.

    a) Si tiene derechos administrativos, simplemente ejecute como root:

    usermod -s /bin/bash YOUR_USERNAME

    (reemplazando YOUR_USERNAMEcon su nombre de usuario).

    b) Si no tienes adm. derechos, todavía puede ejecutar bash --loginal iniciar sesión, colocando la línea a continuación al final de su .cshrco .profile(en su directorio de inicio):

    setenv SHELL /bin/bash
    exec /bin/bash --login

2b. Compruebe si bashse enumera /etc/shellscon la ruta correcta.
manatwork

@manatwork Eso sería relevante para 2a , no para 2b. Y solo es útil en una configuración de sistema extraña / rota para determinar por qué la solución no funcionó.
rozcietrzewiacz

1
1. SHELL = / bin / bash da un error de comando no encontrado. 2. Su solución me da un bash shell como aviso. Pero no cambia mi shell de inicio de sesión. Gracias por la ayuda sin embargo.
Sumod

1
Esto es lo que hice para resolver esto. 1. exec / bin / bash --login en el archivo .cshrc 2. establezca SHELL = / bin / bash y luego exporte SHELL en el archivo / etc / profile. Gracias.
Sumod

2
Ah, lo siento, quise decir la primera línea export SHELL=/bin/bash. En realidad, hay una mejor manera que eso: ver actualización.
rozcietrzewiacz

13

Póngase en contacto con el administrador de su sistema. Ha arreglado las cosas mal. Si eres el administrador de tu sistema, entonces has configurado las cosas mal.

El mensaje de error parece bastante sencillo. No tienes yppasswdcorriendo en dcsun2. Debería ser.

Pero al hacer una búsqueda rápida en Google aparece este resultado que indica que obtendrá este error si yppasswdse ejecuta tanto en el cliente como en el servidor. En este caso, apáguelo en el cliente.


Si está atascado con csh como su shell de inicio de sesión, aún puede hacer que invoque bash cuando inicie sesión. Coloque los siguientes comandos en su ~/.login(consulte también Cambiar el shell predeterminado sin chsh o privilegios de administrador ):

sleep 2
if (-x /usr/local/bin/bash) then
  exec /usr/local/bin/bash -l
endif

Reemplace /usr/local/bin/bashpor la ruta adecuada si es necesario. Si todo funciona, elimine sleep 2(lo que pone un retraso durante el cual puede presionar Ctrl+Cpara pasar a un indicador de csh, en caso de que algo salga mal).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.