Wie schließe ich das Terminal in OSX über die Befehlszeile?


69

Warum schließt "exit" ein Terminal.app-Fenster unter Mac OS X nicht?

$ exit
logout

[Process completed]

Gibt es eine Möglichkeit, das Fenster ohne Verwendung der Maus zu schließen?

Antworten:


87

Ein von Terminal.app angezeigtes Fenster ist nur das Frontend für den Prozess, den Sie darin ausführen möchten - in Ihrem Fall eine Unix-Shell. Wenn Sie die Shell beenden, wird das Fenster von der Terminal.app nicht standardmäßig geschlossen. Sie haben daher die Möglichkeit, die Ausgabe nach Abschluss des Befehls zu überprüfen.

Hier können Sie Ihre Einstellungen ändern

Terminaleinstellungen -> Einstellungen -> Shell:

entweder

  1. Schließe immer das Fenster, egal wie der Exit-Status der Shell war
  2. Schließen Sie das Fenster, wenn die Shell sauber beendet wurde
  3. lass das Fenster offen (Standardeinstellung)

Außerdem können Sie (fast) immer Fenster in OSX mit Cmd-W schließen, sodass Sie keine Maus benötigen, auch wenn diese nicht automatisch geschlossen wird.

Noch ein Tipp: Ich drücke lieber Strg-D, anstatt exit einzugeben. Zwei Schlüssel gegen fünf.


11
In Yosemite es ist: Einstellungen -> Profile -> Shell -> " wenn die Shell beendet" ... Shell ist je nachdem , was Shell Sie in Allgemein- ausgewählt haben> Beim Start offen ...
cloudsurfin

Kann nach dem Beenden der Shell im selben Fenster eine neue Shell gestartet werden? Wenn das so ist, wie?
Sodved

@Sodved: Ich glaube nicht, aber es könnte falsch sein.
Amadan

Dadurch wird die gestellte Frage nicht beantwortet, da keine Befehlszeilenoperation vorgeschlagen wird .
Chris Stratton

@ChrisStratton Sie richtig sind , dass sie nicht direkt die Frage nicht beantworten, aber es tut die Verwendung des erleichtern exitBefehls, der die OP ursprünglich verwendet.
Jdersen

21

Command+ Q-> schließt die Anwendung / den Prozess.

Command+ W-> schließt Fenster / Instanz


OP fordert Methode zum Schließen des Terminalfensters "ohne Maus" an.
Josh Habdas

10

Ja da ist. Zum Beispiel können Sie AppleScript verwenden, um dies zu erreichen:

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

Das erste Fenster ist immer das aktuell aktive Fenster. Das ist derjenige, den Sie schließen möchten.

Bevor Sie das Fenster schließen, werden Sie möglicherweise vom Terminal gefragt, ob Sie das Fenster wirklich schließen möchten. Dies hängt von Ihren Einstellungen ab. Möglicherweise haben Sie ausgewählt, dass das Fenster nur geschlossen werden soll, wenn die Shell ordnungsgemäß beendet wurde oder keine anderen Prozesse außer ... ausgeführt werden. (Dies kann die Standardeinstellung sein.) In diesem Fall wird & exitdas Fenster durch Hinzufügen zum Befehl sofort und ohne Rückfrage geschlossen.

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

Dies ist fast richtig, aber in Wirklichkeit ist das "erste Fenster" nicht immer dasjenige, in dem der Befehl ausgeführt wird.
Chris Stratton

Diese Technik funktioniert gut, nachdem openein neues Terminalprofil hinzugefügt wurde.
Josh Habdas

2

Eigentlich sollten Sie für diese Anforderung eine Konfiguration für Ihr Terminal festlegen. Befolgen Sie die nachstehenden Anweisungen und schließen Sie Ihr Terminal mit einem exitBefehl.

Wenn das Terminal hochgefahren ist, drücken Sie + ,, um das Prefrences-Fenster zu öffnen. dann siehst du unten bildschirm:

Bildbeschreibung hier eingeben

Drücken Sie dann die Shell-Taste und Sie sehen den folgenden Bildschirm:

Bildbeschreibung hier eingeben

Wählen Sie nun Close if the shell exited cleanlyfür Wenn die Shell beendet wird .

Ihr Terminal ist nur mit einem exitBefehl zum Beenden bereit .


1

Ich schlage auch gegen den Killall-Vorschlag vor. Ändern Sie wie vorgeschlagen die Einstellungen in Ihren Einstellungen, um das Fenster zu schließen, wenn das Beenden der Shell erfolgreich war. Wenn Sie wirklich faul sind (wie ich), öffnen Sie Ihr Bash-Profil und fügen Sie einen Alias ​​hinzu. Ich habe mein Set, also muss ich nur 'q' eingeben.


Duplikat der killallAntwort.
Josh Habdas

-1

Wenn Sie die Anwendung selbst über die Befehlszeile beenden möchten:

killall Terminal

4
das wird als schädlich angesehen. Abgesehen von der Tatsache, dass killall unter verschiedenen Unix-Versionen unterschiedliche Aktionen ausführt, ist es nicht schön, eine Anwendung zu beenden, anstatt sie zum Beenden aufzufordern.
Florenz Kley

sehr gute lösung. Wir müssen nur das Terminal verlassen, damit wir nicht danach fragen müssen !! beste Antwort.
Mehdico
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.