¿Cómo configuro mi shell en Mac OS X?

21

Sé que puedo configurar "Shells open with" en las preferencias de Terminal, pero tengo curiosidad por saber si hay alguna forma de configurar esto en todo el sistema (similar a actualizar / etc / passwd en algunos Unixes).

nall
fuente

Respuestas:

24

Use la chshutilidad de esta manera:

chsh -s bash

Apple ha cambiado chshun poco en Mac OS X en comparación con lo chshque verías en Linux, por ejemplo. Usted puede leer sobre ellos en el chsh Mac OS X Man página .

John T
fuente
Y aquí pensé que era algo complicado con alguna utilidad específica de OSX, je. Gracias.
nall
@ John - muy bien aprendido :)
Akira
Sí, también sabía la respuesta la última vez, ¡simplemente me golpearon! :(
John T
19

Tenga en cuenta que solo se le permitirá cambiar a un shell en la lista /etc/shells. Esto normalmente está bien, pero significa que si desea instalar Bash 4 (desde Homebrew, MacPorts o compilando el suyo), debe agregar una línea /etc/shells. (Me encontré con esto hace unas semanas, y pensé que podría ayudar a otros a saber ...)

Editar : Tim Smith señala que puede sortear la /etc/shellslimitación si se ejecuta chshcomo root a través de sudo. Por ejemplo sudo chsh -s /usr/local/bin/my_shell $USER, funcionará, incluso si my_shellno figura en la lista /etc/shells. Prefiero editar /etc/shells, pero al final, es un uso de sudocualquier manera, ya que no puedes editar /etc/shellscomo usuario normal. Entonces quizás seis de uno, media docena del otro.

Telémaco
fuente
¿Por qué cambiar /etc/shellssi no tienes que hacerlo? Por cordura, prefiero mantener los archivos del sistema iguales.
ma11hew28
@MattDiPasquale No estoy seguro de lo que quieres decir con "cordura". /etc/shellses el archivo en el sistema que define shells reconocidos. Modifico ese archivo porque quiero agregar un shell a la lista de shells reconocidos. Me parece bastante razonable.
Telémaco
Buena alt. manera, por alguna razón chsh no funcionaría para mí. Tengo esto ; chsh: bash: non-standard shell
RyBolt
@RyBolt Correcto: la razón es probablemente lo que menciono en la respuesta. No puede usar chshsolo si está tratando de usar un shell que no figura en la lista /etc/shells.
Telémaco el
@Telemachus, solo estaba tratando de cambiar al shell bash original que venía con mi versión predeterminada de Mac OSX. Tal vez no sea en /etc/shellslo que me parece extraño.
RyBolt
10

Para hacer esto usando la GUI de Mac OS X:

  1. Abra "Preferencias del sistema".
  2. Abra el panel de preferencias "Cuentas" / "Usuarios y grupos" y desbloquee el panel de preferencias si corresponde.
  3. En el usuario que desea cambiar el shell, controlhaga clic + clic derecho en el usuario y seleccione "Opciones avanzadas ..."
  4. Donde dice "Shell de inicio de sesión:" cámbielo al shell que desea usar.

Cabe destacar que esta ubicación es donde puede cambiar su directorio de inicio, UUID, ID de usuario, ID de grupo y nombre corto si no se siente cómodo con la Terminal. Hay una pregunta similar aquí también.

Chealion
fuente
5

Usando las respuestas anteriores recibí un mensaje de error:

$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell

Para evitar esto:

sudo chsh -s zsh $(whoami)

whoami en una subshell es cambiar la shell para su usuario, no la raíz.

Una cosa más si estás usando homebrew. Cuando ejecuta comandos como root (usando sudo), zsh apunta a / bin / zsh, que viene con OSX y puede estar desactualizado. Para usar el actualizado que se instala a través de homebrew, use lo siguiente:

sudo chsh -s $(which zsh) $(whoami)
phil pirozhkov
fuente