No me gusta volver a escribir el pescado cada vez que inicio la terminal. Quiero fish
encendido por defecto. ¿Cómo puedo configurar Fish Shell como mi shell predeterminado en una Mac?
No me gusta volver a escribir el pescado cada vez que inicio la terminal. Quiero fish
encendido por defecto. ¿Cómo puedo configurar Fish Shell como mi shell predeterminado en una Mac?
Respuestas:
Estos son aplicables a MacOS Sierra 10.12.5 (16F73) y probablemente a algunas otras versiones recientes y futuras de MacOS.
chsh
no es suficiente para cambiar el shell predeterminado. Asegúrese de presionar Command+ ,mientras su terminal está abierta y cambie la opción 'Shells open with' a 'Shell de inicio de sesión predeterminado'.
En caso de bash, asegúrese de ejecutar echo $BASH_VERSION
para confirmar que está ejecutando la versión prevista de bash. bash --version
No le da la información correcta.
Preferences
de Terminal.app . Ver esta respuesta de Pankaj.
1. sudo nano / etc / shells
2. agregue / usr / local / bin / fish a su lista de conchas
3. chsh -s / usr / local / bin / fish
Shell open with: Default login shell
configuración de Terminal.app
Puede usar chsh para cambiar el shell de un usuario.
Ejecute el siguiente código, por ejemplo, para cambiar su shell a Zsh
chsh -s /bin/zsh
Como se describe en la página de manual, y por Lorin, si el depósito no es conocida por el sistema operativo, hay que añadirlo a su lista conocida: /etc/shells
.
chsh: /usr/local/bin/fish: non-standard shell
solución: agregarlo a / etc / shells como lo describe la respuesta de @ lorin-hochstein a continuación
-s
embargo). Lo intentaré de nuevo pronto.
Desde la terminal:
Agregue Fish a /etc/shells
, que requerirá una contraseña administrativa:
sudo echo /usr/local/bin/fish >> /etc/shells
Haga que Fish sea su shell predeterminado con chsh
:
chsh -s /usr/local/bin/fish
De Preferencias del sistema:
Usuario y grupos → ctrl-clic en Usuario actual → Opciones avanzadas ...
Cambiar el shell de inicio de sesión a /usr/local/bin/fish
Presione OK, cierre sesión y vuelva a iniciarla
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Aquí hay otra forma de hacerlo:
Suponiendo que lo instaló con MacPorts, lo que se puede hacer haciendo:
sudo port install fish
Su caparazón se ubicará en /opt/local/bin/fish
.
Debe decirle a OSX que este es un shell válido. Para hacerlo, agregue esta ruta al final de/etc/shells
archivo.
Una vez que haya hecho esto, puede cambiar el shell yendo a Preferencias del sistema -> Cuentas. Haga clic en el candado para permitir cambios. Haga clic derecho en la cuenta y elija "Opciones avanzadas ...". En el campo "Shell de inicio de sesión", agregue la ruta para pescar.
Lo único que funcionó para mí fue una combinación de todos estos métodos.
Primero tuve que agregar pescado al /etc/shells
archivo
Entonces corrí chsh -s /usr/local/bin/fish
Finalmente, escribí Command+ ,y agregué /usr/local/bin/fish
a la ruta predeterminada allí
Solo después de haber hecho las tres cosas, los peces comenzaron a aparecer como el valor predeterminado para las nuevas ventanas de terminal.
Preferences
> General
> Shells open with:
>/bin/fish
/usr/local/bin/fish
.Vea esta captura de pantalla donde zsh
se configura como predeterminada.
Estoy usando macOS Sierra . También funciona en macOS Mojave .
En macOS Mojave tuve que hacer lo siguiente (usando zsh como ejemplo):
brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh
. Ya presente en macOS Mojave. Incluido en Mojave, y por defecto en Catalina.
Cómo obtener la última versión de bash en macOS moderno (probado en Mojave).
brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)
Entonces estás listo para completar la pestaña de estilo vim, que solo está disponible en bash> = 4 (la versión actual brew
es 5.0.2
# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete
# Display a list of the matching files
bind "set show-all-if-ambiguous on"
# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"
el chsh
programa te permitirá cambiar tu shell predeterminado. Querrá la ruta completa al ejecutable, por lo que si su shell es fish
así, querrá que proporcione la salida dada cuando escribewhich fish
.
Verá una línea que comienza con " Shell:
". Si nunca lo ha editado, lo más probable es que diga " Shell: /bin/bash
". Reemplace esa /bin/bash
ruta con la ruta a su shell deseado.
Este trabajo para mí en la nueva instalación de mac osx (sierra):
sudo chown $(whoami) /etc/shells
sudo echo /usr/local/bin/fish >> /etc/shells
chsh -s /usr/local/bin/fish
sudo chown root /etc/shells
heimdall:~ leeg$ dscl
Entering interactive mode... (type "help" for commands)
> cd /Local/Default/Users/
/Local/Default/Users > read <<YOUR_USER>>
[...]
UserShell: /bin/bash
/Local/Default/Users >
simplemente cambie ese valor (con el comando de escritura dscl
).
En caso de que tenga problemas con las otras formas, trabajó en Mac Mojave, pero en general debería funcionar.
which fish
agregue la ruta de salida a "Preferencias del sistema> Usuarios y grupos> haga clic con el botón derecho en el usuario, Opciones avanzadas" Pegue el resultado del cual en "Shell de inicio de sesión:"
Para cambiar su shell predeterminado en mac ejecute lo siguiente:
chsh -s <name-of-shell>
La lista de conchas que puede elegir son:
así que si desea cambiar al shell / bin / zsh, su comando se verá así:
chsh -s /bin/zsh
Puede ver todos los shells disponibles en su sistema ejecutando:
cat /etc/shells