Estoy tratando de cambiar mi shell predeterminado de bash a zsh en cygwin.
- El comando normal de Unix
chsh
no está disponible en Cygwin - El archivo etc / passwd parece que ya no se usa en versiones existentes de cygwin.
Entonces, ¿cómo más se puede cambiar el shell predeterminado?
sh.exe
azsh.exe
en Configuración de Conemu> inicio> tareas> bash Cygwin Bash>set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i
CygWin\bin\zsh.exe
.sh.exe --login
lanzará Bash, ¿cómo cambias eso? ¿O no importa de todos modos? Me imagino quesh.exe --login
es innecesariamente la ejecución desh
anteszsh
...set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -i
hthsh.exe
. Ahora me doy cuenta de que simplemente no leí tu mensaje correctamente :-)-l
:mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
Si ejecuta
mintty.exe
directamente o ejecuta Cygwin Terminal desde el menú de inicio o el escritorio (que es un acceso directo a mintty.exe), puede establecer la variable de entorno SHELL en Windows en/usr/bin/zsh
.En Windows 7:
El resto debe explicarse por sí mismo.
fuente
Copiado de mi respuesta en Stack Overflow :
En lugar de crear un archivo passwd, que Cygwin recomienda contra 1 , puede editar /etc/nsswitch.conf . Agregue o edite la siguiente línea:
El lado negativo de este método es que, si tiene varios usuarios, este cambio los afecta a todos. El lado positivo es que es muy simple. El único inconveniente es que tienes que reiniciar Cygwin.
Si haces uso mkpasswd después de este cambio, utilizará su nuevo shell por defecto para todos los usuarios que tienen permiso para iniciar la sesión.
1 La documentación de mkpasswd dice esto:
Realmente no puedo encontrar ningún razonamiento sólido en la guía del usuario , aparte de una mención de que tendrá que regenerar los archivos / etc / passwd y / etc / group si sus usuarios y grupos cambian, lo que supongo que es lo suficientemente decente razón. Puedo decir que el proceso es algo propenso a errores para los novatos.
fuente
Este es un truco: pon esto como la primera línea de tu
~/.bash_profile
:fuente