2009-01-17 14 views

Respuesta

5

Me gustaría agregar 2 cosas importantes aquí. 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 'Conchas abiertas con' a 'Consola de inicio de sesión predeterminada'.

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.

9
+2

Aconsejo preferir este enfoque y no cambiar el shell OSX predeterminado. He tenido "instalaciones infinitas" en iWorks, por ejemplo, debido a scripts de instalación que suponen que tienes un shell compatible con SH (no es el caso de ZSH en mi caso). –

4

el programa chsh le permitirá cambiar su shell por defecto. Querrá la ruta completa al ejecutable, por lo que si tu shell es fish, querrá que proporciones el resultado dado cuando escribes 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.

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

+0

Recibo este error cuando ejecuto lee leeg: Error de DS: -14136 (eDSRecordNotFound) –

+0

Sí. Eso es porque leeg es mi nombre de usuario, no el tuyo: P –

56

Puede usar chsh para cambiar el armazón de un usuario.

Ejecutar el siguiente código, por ejemplo, para cambiar su shell que 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.

+10

Intenté y obtuve 'chsh:/usr/local/bin/fish: shell no estándar 'La solución fue agregarlo a/etc/shells como se describe en la respuesta de @ lorin-hochstein debajo de – lmsurprenant

+0

que no funcionará si no tiene root –

+0

dbright @ PowerMac: ~ $ chsh -s/Users/dbright/sys/bin/bash Cambiando el shell para dbright. Contraseña para dbright: chsh:/Users/dbright/sys/bin/bash: shell no estándar dbright @ PowerMac: ~ $ ls -l/etc/shells -rw-r - r-- 1 rueda raíz 179 Sep 23 2007/etc/shells –

20

Ésta es otra manera de hacerlo:

Suponiendo que ha instalado con MacPorts, que se puede hacer haciendo:

sudo port install fish 

Su concha se encuentra en /opt/local/bin/fish.

Necesita decirle a OSX que este es un shell válido. Para hacer eso, 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 Bloquear para permitir cambios. Haga clic con el botón derecho en la cuenta y elija "Opciones avanzadas ...". En el campo "Iniciar sesión", agregue la ruta para pescar.

+0

gracias! esto funcionó muy bien e hizo del pescado mi terminal predeterminado en todas partes. simplemente cambiarlo en la terminal como una de las otras respuestas hizo que la terminal me avisara cada vez que cerraba una ventana y chsh simplemente no funcionaba para mí. – jasongregori

4

Cuando en el terminal, abrir las preferencias de terminales usando Comando +,.

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

Puede establecer el comando de inicio automático fish.

46

Desde la Terminal:

  1. añadir el pescado a /etc/shells, lo que requerirá una contraseña de administración:

    sudo echo /usr/local/bin/fish >> /etc/shells 
    
  2. Hacer pescado shell por defecto con chsh:

    chsh -s /usr/local/bin/fish 
    

En Preferencias del sistema:

  1. de usuario y grupos → Ctrl + clic en el usuario actual → Opciones avanzadas ...

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

    login shell

  3. Presione OK, cierre la sesión y nuevamente

+3

Tuve que hacer un ligero ajuste al paso 1. - 'sudo sh -c 'echo/usr/local/bin/fish >>/etc/shells'' – purpletonic

9

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

  1. primero tenía que añadir el pescado en el fichero de /etc/shells

  2. Entonces me encontré con chsh -s /usr/local/bin/fish

  3. Finalmente, mecanografiado Comando + , y ha añadido /usr/local/bin/fish en la ruta predeterminada allí

Solo después de haber hecho las tres cosas, el pez comenzó a aparecer como el predeterminado para las nuevas ventanas de terminal.

166

1. sudo nano/etc/shells enter image description here

2. Agregar/usr/local/bin/pescado local a la lista de conchas enter image description here

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

+6

eso no funcionará si no tienes root –

+1

Brilliant ! Gracias – Fuser97381

+2

Upvoted a pesar de nano;) – eebbesen

2
  1. Abra su terminal y presione comando + , (coma). Esto abrirá una ventana de preferencias.
  2. La primera pestaña es 'General'.
  3. Encuentra la configuración 'Conchas abiertas con' y elige la segunda opción que necesita una ruta completa al caparazón.
  4. Pega el enlace a tu comando fish, que generalmente es /usr/local/bin/fish.

Estoy usando macOS Sierra.

Cuestiones relacionadas