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?

Florenz Kley
quelle

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.

Amadan
quelle
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

Nisse Engström
quelle
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
Thomas.S
quelle
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 .

AmerllicA
quelle
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.

bran.io
quelle
Duplikat der killallAntwort.
Josh Habdas
-1

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

killall Terminal
Nur Jake
quelle
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