Comment fermer le terminal sous OSX à partir de la ligne de commande?

69

Pourquoi "quitter" ne ferme-t-il pas une fenêtre Terminal.app sous Mac OS X?

$ exit
logout

[Process completed]

Est-il possible de fermer la fenêtre sans utiliser la souris?

Florenz Kley
la source

Réponses:

87

Une fenêtre affichée par Terminal.app est simplement l’interface pour le processus que vous choisissez d’exécuter à l’intérieur - dans votre cas, un shell Unix. Lorsque vous quittez le shell, Terminal.app ne ferme pas la fenêtre par défaut. Vous avez donc la possibilité d'inspecter la sortie à partir de la commande que vous avez exécutée une fois celle-ci terminée.

Vous pouvez changer vos préférences ici

Préférences du terminal -> Paramètres -> Shell:

soit

  1. fermez toujours la fenêtre, quel que soit l'état de sortie du shell
  2. fermez la fenêtre si la coquille est sortie proprement
  3. garder la fenêtre ouverte (par défaut)

En outre, vous pouvez (presque) toujours fermer les fenêtres dans OSX avec Cmd-W, vous n’avez donc pas besoin de la souris, même si celle-ci ne se ferme pas automatiquement.

Encore un indice: j'aime bien appuyer sur Ctrl-D au lieu de taper exit. Deux clés contre cinq.

Amadan
la source
11
Dans Yosemite c'est: préférences -> profils -> shell -> "quand le shell se ferme" ... Shell est le shell que vous avez sélectionné dans Général-> Au démarrage ouvert ...
cloudsurfin
Une fois le shell quitté, est-il possible de démarrer un nouveau shell dans la même fenêtre? Si c'est le cas, comment?
Sodved
@Sodved: Je ne le pense pas, mais pourrait être faux.
Amadan
Cela ne répond pas à la question qui a été posée, car il ne propose pas d' opération en ligne de commande .
Chris Stratton
@ChrisStratton Vous avez raison qu'il fait, mais il répond pas directement à la question posée ne faciliter l'utilisation de la exitcommande que l'OP utilisait à l' origine.
Jdersen
21

Command+ Q-> ferme l'application / le processus.

Command+ W-> ferme la fenêtre / instance

Nisse Engström
la source
OP demande à la méthode de fermer la fenêtre du terminal "sans utiliser la souris".
Josh Habdas
10

Oui il y a. Par exemple, vous pouvez utiliser AppleScript pour y parvenir:

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

La première fenêtre est toujours la fenêtre actuellement active. C'est celui que vous voulez fermer.

Avant de fermer la fenêtre, le terminal peut vous demander si vous voulez vraiment fermer la fenêtre. Cela dépend de vos paramètres. Vous avez peut-être choisi de «fermer la fenêtre uniquement si le shell est sorti proprement ou si aucun autre processus ne fonctionne en dehors de…». (Cela peut être le paramètre par défaut.) Dans ce cas, l'ajout & exità la commande ferme la fenêtre immédiatement et sans rien demander.

osascript -e 'tell application "Terminal" to close first window' & exit
Thomas.S
la source
C'est presque exact, mais en réalité, la "première fenêtre" n'est pas toujours celle qui exécute la commande.
Chris Stratton
Cette technique fonctionne bien après l’ openappel d’ajout d’un nouveau profil de terminal.
Josh Habdas
3

En fait, pour cette exigence, vous devez définir une configuration sur votre terminal. suivez les instructions ci-dessous et vous fermerez votre terminal simplement avec une exitcommande.

Lorsque le terminal est en service, appuyez sur + ,pour ouvrir la fenêtre des préférences. alors vous verrez l'écran ci-dessous:

entrez la description de l'image ici

Ensuite, appuyez sur l'onglet shell et vous verrez l'écran ci-dessous:

entrez la description de l'image ici

Maintenant, sélectionnez Close if the shell exited cleanlypour Quand le shell se ferme .

Votre terminal est prêt pour la sortie avec juste une exitcommande.

AmerllicA
la source
1
Impressionnant! Je cherchais cela depuis si longtemps. Merci 👍🏼
Vinayak
1

Je suggère également contre la suggestion de killall. Comme suggéré, modifiez les paramètres dans vos préférences pour fermer la fenêtre si la sortie du shell a réussi. Si vous êtes VRAIMENT LAZY (comme moi), ouvrez votre profil bash et ajoutez un alias. J'ai le mien réglé donc tout ce que j'ai à faire est de taper 'q'.

bran.io
la source
Dupe de la killallréponse.
Josh Habdas
-1

Si vous souhaitez terminer l'application elle-même à partir de la ligne de commande:

killall Terminal
Juste jake
la source
4
cela est considéré comme nuisible. Mis à part le fait que killall fait différentes choses sur différentes versions d'Unix, il n'est pas agréable de tuer une application au lieu de simplement lui demander de quitter.
Florenz Kley
très bonne solution. Nous avons juste besoin de sortir du terminal donc il n'y a pas à demander !! meilleure réponse.
Mehdico le