Instalé ZSH en un VM mío, donde lo compilé desde la fuente. La ubicación de ZSH es /usr/local/bin/zsh
cuando corro chsh -s /usr/local/bin/zsh
produce chsh: /usr/local/bin/zsh is an invalid Shell
. También probé esto con Sudo también. ¿Cómo puedo cambiar esto?
Agregue zsh a /etc/shells
:
command -v zsh | Sudo tee -a /etc/shells
Ahora puede usar chsh para establecer zsh como Shell:
Sudo chsh -s "$(command -v zsh)" "${USER}"
Consulte esta documentación: Cambio de su Shell de inicio de sesión
Necesitas agregar /usr/local/bin/zsh
a /etc/shells
.
Primero, verifique si zsh
aparece como Shell válido por
cat /etc/shells
Si zsh
no está en la lista, instálelo. Por ejemplo, si usa apt
Sudo apt-get install zsh
Realice el paso 1 nuevamente y vea la ruta de zsh
. En mi caso, ambos /usr/bin/zsh
y /usr/zsh
está listado. Como @ Stéphane Chazelas mencionó en el comentario, si desea compilar e instalar el Shell desde cero, asegúrese de agregar la ruta en /etc/shells
.
Cambiar el Shell usando
chsh -s /usr/bin/zsh
De página man :
-s, --Shell SHELL
El nombre del nuevo Shell de inicio de sesión del usuario. Establecer este campo en blanco hace que el sistema seleccione el Shell de inicio de sesión predeterminado.
Cerrar sesión e iniciar sesión nuevamente.