¿Cómo configurar mi shell predeterminado en Mac?
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?
Solución
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 'Default login shell'.-
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
2. agregue / usr / local / bin / fish a su lista de conchas
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:
-
Agregue Fish a
/ etc / shells
, lo 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
Desde Preferencias del Sistema:
-
Usuario y grupos & # 8594; Ctrl-clic en Usuario actual & # 8594; Opciones avanzadas ...
-
Cambiar el shell de inicio de sesión a
/usr/local/bin/fish
-
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.
-
Primero tuve que agregar pescado al archivo
/ etc / shells
-
Luego ejecuté
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 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)
- Abra su terminal y presione el comando + , (coma). Esto abrirá una ventana de preferencias.
- La primera pestaña es 'General'.
- Busque la configuración 'Los shells se abren con' y elija la segunda opción que necesita la ruta completa al shell.
- 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):
- Definir usuario actual como propietario de shells
sudo chown $(whoami) /etc/shells
- Añadir pescado a / etc / shells
sudo echo /usr/local/bin/fish >> /etc/shells
- Haga de Fish su shell predeterminado con chsh
chsh -s /usr/local/bin/fish
- Redefinir la raíz como propietario de los depósitos
sudo chown root /etc/shells