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

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 .


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.


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


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)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.