Pregunta

No me gusta volver a escribir el pescado cada vez que inicio la terminal. Quiero fish activado por defecto. ¿Cómo puedo configurar Fish Shell como mi shell predeterminado en una Mac?

¿Fue útil?

Solución

Estos son aplicables a MacOS Sierra 10.12.5 (16F73) y probablemente a algunas otras versiones recientes y futuras de MacOS.

  1. 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 'Default login shell'.

  2. 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.

Otros consejos

1. sudo nano / etc / shells ingrese la descripción de la imagen aquí

2. agregue / usr / local / bin / fish a su lista de conchas ingrese la descripción de la imagen aquí

3. chsh -s / usr / local / bin / fish

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 sistema operativo no conoce el shell, debe agregarlo a su lista conocida: / etc / shells .

Desde la terminal:

  1. Agregue Fish a / etc / shells , lo que requerirá una contraseña administrativa:

    sudo echo /usr/local/bin/fish >> /etc/shells
    
  2. Haga que Fish sea su shell predeterminado con chsh :

    chsh -s /usr/local/bin/fish
    

Desde Preferencias del Sistema:

  1. Usuario y grupos & # 8594; Ctrl-clic en Usuario actual & # 8594; Opciones avanzadas ...

  2. Cambiar el shell de inicio de sesión a /usr/local/bin/fish

    shell de inicio de sesión

  3. Presione OK, cierre sesión y vuelva a iniciarla

Aquí hay otra forma de hacerlo:

Suponiendo que lo instaló con MacPorts, lo que se puede hacer haciendo:

sudo port install fish

Su shell estará ubicado en / opt / local / bin / fish .

Necesita decirle a OSX que este es un shell válido. Para hacerlo, agregue esta ruta al final del archivo / etc / shells .

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 " Shell de inicio de sesión " campo, agregue el camino para pescar.

Lo único que funcionó para mí fue una combinación de todos estos métodos.

  1. Primero tuve que agregar pescado al archivo / etc / shells

  2. Luego ejecuté chsh -s / usr / local / bin / fish

  3. 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 valores predeterminados para las nuevas ventanas de terminal.

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)
  1. Abra su terminal y presione el comando + , (coma). Esto abrirá una ventana de preferencias.
  2. La primera pestaña es 'General'.
  3. Busque la configuración 'Los shells se abren con' y elija la segunda opción que necesita la ruta completa al shell.
  4. Pegue el enlace a su comando fish, que generalmente es / usr / local / bin / fish .

Estoy usando macOS Sierra.

el programa chsh le permitirá cambiar su shell predeterminado. Querrá la ruta completa al ejecutable, por lo que si su shell es fish , entonces querrá que proporcione la salida dada cuando escriba which 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 ruta / bin / bash con la ruta al shell deseado.

Cuando se encuentre en la terminal, abra las preferencias de la terminal con Command + , .

En la pestaña Configuración, seleccione uno de los temas y elija la pestaña del shell a la derecha.

Puede configurar el comando de inicio automático fish .

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 en dscl ).

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 estará listo para completar la pestaña de estilo vim que solo está disponible en bash > = 4 (versión actual en 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"

En caso de que tenga problemas con las otras formas, trabajó en Mac Mojave pero generalmente debería funcionar.

which fish

agregue la ruta de salida a " Preferencias del sistema > Usuarios & amp; Grupos > usuario con el botón derecho, Opciones avanzadas " Pegue el resultado del cual en " Shell de inicio de sesión: "

Esto funciona para mí en la nueva instalación de mac osx (sierra):

  1. Definir usuario actual como propietario de shells
sudo chown $(whoami) /etc/shells
  1. Añadir pescado a / etc / shells
sudo echo /usr/local/bin/fish >> /etc/shells
  1. Haga de Fish su shell predeterminado con chsh
chsh -s /usr/local/bin/fish
  1. Redefinir la raíz como propietario de los depósitos
sudo chown root /etc/shells
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top