Si no puede ejecutar chshporque no tiene privilegios de administrador, hable con alguien que sí lo tenga .
Lo más probable es que no pueda usarlo chshcomo no root porque el sistema que está usando está configurado para que chshno funcione, por ejemplo, porque el sistema usa NIS o LDAP en lugar de solo el /etc/passwdarchivo. O tal vez el administrador de su sistema solo quiere mantener algo de control.
El procedimiento para cambiar su shell depende de las políticas de su organización. Puede haber un comando local que haga lo que chshnormalmente hace. O puede que tenga que enviar un ticket de soporte solicitando un cambio de shell.
La mayoría de las otras respuestas son buenas, pero si sus administradores responden razonablemente, es posible que no quiera molestarse en hackear sus scripts de inicio. Probablemente solo invoque zsh -lmanualmente después de iniciar sesión hasta que el administrador pueda actualizar mi cuenta.
Otra cosa a tener en cuenta: a veces, diferentes shells pueden usar los mismos archivos de inicio. Por ejemplo, shy bashpuede tanto ejecutar $HOME/.profile, y cshy tcshambos pueden ejecutar $HOME/.loginy $HOME/.cshrc(aunque los archivos de inicio de caparazón específicos como .bashrc, .bash_profiley .tcshrcpuede anular los). Si su shell predeterminado es /bin/cshy desea utilizarlo /bin/tcsh, actualizar su .logininvocación /bin/tcsh -lpodría crear un bucle infinito. zshno ejecuta basharchivos de inicio específicos, por lo que no es un problema para usted.
La mayoría de las conchas establecen variables que identifican qué shell se está ejecutando ( $BASH_VERSION, $tcsh, $ZSH_VERSION). Si va a escribir un código de inicio para invocar su shell preferido, no es una mala idea encerrarlo de ifmanera que se ejecute solo si aún no está ejecutando ese shell. Usando el código de la respuesta de konsolebox :
if [ "${ZSH_VERSION:-unset}" = "unset" ] ; then
export SHELL=/bin/zsh
exec /bin/zsh -l
fi
(La complicación añadida de comprobación "${ZSH_VERSION:-unset}"en lugar de sólo "$ZSH_VERSION"admite la posibilidad de que usted ha hecho set -o unset, una opción que hace que una referencia a una variable no definida para ser un error).
zshel.bashrcarchivo. Cerrar sesión e iniciar sesión y listo!