¿Cómo cierro la Terminal en OSX desde la línea de comando?

69

¿Por qué "salir" no cierra una ventana de Terminal.app en Mac OS X?

$ exit
logout

[Process completed]

¿Hay alguna manera de cerrar la ventana sin usar el mouse?

Florenz Kley
fuente

Respuestas:

87

Una ventana mostrada por Terminal.app es solo la interfaz para el proceso que elige ejecutar dentro de ella, en su caso, un shell de Unix. Cuando sale del shell, Terminal.app no ​​cierra la ventana de forma predeterminada, por lo que tiene la posibilidad de inspeccionar la salida de cualquier comando que haya ejecutado, una vez que finaliza.

Puedes cambiar tus preferencias aquí

Preferencias de terminal -> Configuración -> Shell:

a cualquiera

  1. siempre cierre la ventana, sea cual sea el estado de salida del shell
  2. cierre la ventana si la cáscara salió limpiamente
  3. mantener la ventana abierta (el valor predeterminado)

Además de eso, casi siempre puedes cerrar ventanas en OSX con Cmd-W, por lo que no necesitas el mouse incluso si no se cierra automáticamente.

Una pista más: me gusta presionar Ctrl-D en lugar de escribir exit. Dos llaves contra cinco.

Amadan
fuente
11
En Yosemite es: preferencias -> perfiles -> shell -> "cuando sale el shell" ... Shell es el shell que haya seleccionado en General-> Al inicio abierto ...
cloudsurfin
Una vez que se cierra el shell, ¿es posible iniciar un nuevo shell en la misma ventana? ¿Si es así, cómo?
Sodved
@Sodved: No creo que lo sea, pero podría estar equivocado.
Amadan
Esto no responde la pregunta que se hizo, ya que no propone una operación de línea de comando .
Chris Stratton
@ChrisStratton Tienes razón en que no responde directamente a la pregunta formulada, pero facilita el uso del exitcomando que el OP estaba usando originalmente.
jdersen
21

Command+ Q-> cierra la aplicación / proceso.

Command+ W-> cierra la ventana / instancia

Nisse Engström
fuente
OP solicita un método para cerrar la ventana de Terminal "sin usar el mouse".
Josh Habdas
10

Sí hay. Por ejemplo, puede usar AppleScript para lograrlo:

osascript -e 'tell application "Terminal" to close first window'

La primera ventana es siempre la ventana actualmente activa. Ese es el que quieres cerrar.

Antes de cerrar la ventana, la Terminal puede preguntarle si realmente desea cerrar la ventana. Esto depende de su configuración. Es posible que haya elegido 'cerrar la ventana solo si el shell salió limpiamente o si no se están ejecutando otros procesos aparte de ...'. (Esta puede ser la configuración predeterminada). En ese caso, agregar & exital comando cierra la ventana inmediatamente y sin preguntar.

osascript -e 'tell application "Terminal" to close first window' & exit
Thomas.S
fuente
Esto es casi correcto, pero en realidad la "primera ventana" no siempre es la que ejecuta el comando.
Chris Stratton
Esta técnica funciona bien después de que opense llama para agregar un nuevo perfil de Terminal.
Josh Habdas
3

En realidad, para este requisito, debe configurar alguna configuración en su Terminal. siga las instrucciones a continuación y cerrará su Terminal solo con un exitcomando.

Cuando la Terminal esté activa , presione + ,para abrir la ventana de preferencias. entonces verá la siguiente pantalla:

ingrese la descripción de la imagen aquí

Luego presione la pestaña de shell y verá la siguiente pantalla:

ingrese la descripción de la imagen aquí

Ahora seleccione Close if the shell exited cleanlypara Cuando el shell salga .

Su terminal está lista para la salida solo con un exitcomando.

AmerllicA
fuente
1
¡Increíble! Estuve buscando esto por tanto tiempo. Gracias 👍🏼
Vinayak
1

También sugiero contra la sugerencia de Killall. Como se sugiere, modifique la configuración en sus preferencias para cerrar la ventana si la salida del shell fue exitosa. Si eres REALMENTE PEREZOSO (como yo), abre tu perfil de bash y agrega un alias. Tengo el mío configurado, así que todo lo que tengo que hacer es escribir 'q'.

bran.io
fuente
Dupe de la killallrespuesta.
Josh Habdas
-1

Si desea finalizar la aplicación desde la línea de comandos:

killall Terminal
Solo jake
fuente
44
eso se considera dañino Además del hecho de que killall hace cosas diferentes en diferentes versiones de Unix, no es bueno matar una aplicación en lugar de pedirle que simplemente se cierre.
Florenz Kley
Muy buena solución. ¡Solo necesitamos salir de la terminal para que no haya preguntas! la mejor respuesta.
Mehdico