Bagaimana cara menutup Terminal di OSX dari baris perintah?

69

Mengapa "keluar" tidak menutup jendela Terminal.app di Mac OS X?

$ exit
logout

[Process completed]

Apakah ada cara untuk menutup jendela tanpa menggunakan mouse?

Florenz Kley
sumber

Jawaban:

87

Sebuah jendela yang ditampilkan oleh Terminal.app hanyalah antarmuka untuk proses yang Anda pilih untuk dijalankan di dalamnya - dalam kasus Anda, sebuah shell Unix. Ketika Anda keluar dari shell, Terminal.app tidak menutup jendela secara default, jadi Anda memiliki kemungkinan untuk memeriksa output dari perintah apa pun yang Anda jalankan, setelah selesai.

Anda dapat mengubah preferensi Anda di sini

Preferensi Terminal -> Pengaturan -> Shell:

untuk salah satu

  1. selalu tutup jendela, apa pun status keluar dari shell itu
  2. tutup jendela jika shell keluar dengan bersih
  3. biarkan jendela terbuka (default)

Selain itu, Anda dapat (hampir) selalu menutup jendela di OSX dengan Cmd-W, sehingga Anda tidak perlu mouse meskipun tidak menutup secara otomatis.

Satu lagi petunjuk: Saya suka menekan Ctrl-D daripada mengetik keluar. Dua kunci vs. lima.

Amadan
sumber
11
Di Yosemite itu: preferensi -> profil -> shell -> "ketika shell keluar" ... Shell adalah shell mana saja yang telah Anda pilih secara umum-> Pada startup terbuka ...
cloudsurfin
Setelah shell keluar, apakah mungkin untuk memulai shell baru di jendela yang sama? Jika ya, bagaimana caranya?
Sodved
@Sodved: Saya kira tidak, tapi bisa saja salah.
Amadan
Ini tidak menjawab pertanyaan yang diajukan, karena tidak mengusulkan operasi baris perintah .
Chris Stratton
@ChrisStratton Kau benar bahwa itu tidak langsung menjawab pertanyaan itu bertanya, tetapi tidak memfasilitasi penggunaan exitperintah yang OP itu menggunakan awalnya.
jdersen
21

Command+ Q-> menutup aplikasi / proses.

Command+ W-> menutup window / instance

Nisse Engström
sumber
OP meminta metode untuk menutup jendela Terminal "tanpa menggunakan mouse".
Josh Habdas
10

Ya ada. Misalnya, Anda dapat menggunakan AppleScript untuk mencapainya:

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

Jendela pertama selalu merupakan jendela yang sedang aktif. Itu yang ingin kamu tutup.

Sebelum menutup jendela, Terminal mungkin bertanya kepada Anda, apakah Anda benar-benar ingin menutup jendela. Ini tergantung pada pengaturan Anda. Anda mungkin memilih untuk 'menutup jendela hanya jika shell keluar dengan bersih atau tidak ada proses lain yang berjalan terpisah dari ...'. (Ini mungkin pengaturan default.) Dalam hal itu menambahkan & exitke perintah menutup jendela segera dan tanpa bertanya.

osascript -e 'tell application "Terminal" to close first window' & exit
Thomas
sumber
Ini hampir benar, tetapi dalam kenyataannya "jendela pertama" tidak selalu yang menjalankan perintah.
Chris Stratton
Teknik ini berfungsi dengan baik setelah opendipanggil untuk menambah profil Terminal baru.
Josh Habdas
3

Sebenarnya, untuk persyaratan ini, Anda harus mengatur beberapa konfigurasi ke Terminal Anda. ikuti instruksi di bawah ini dan Anda akan menutup Terminal Anda hanya dengan sebuah exitperintah.

Ketika Terminal naik, tekan + ,untuk membuka jendela preferensi. maka Anda akan melihat layar di bawah ini:

masukkan deskripsi gambar di sini

Kemudian tekan tab shell dan Anda akan melihat layar di bawah ini:

masukkan deskripsi gambar di sini

Sekarang pilih Close if the shell exited cleanlyuntuk Ketika shell keluar .

Terminal Anda siap untuk keluar hanya dengan exitperintah.

Amerika
sumber
1
Luar biasa! Sedang mencari ini begitu lama. Terima kasih 👍🏼
Vinayak
1

Saya juga menyarankan menentang saran killall. Seperti yang disarankan, ubah pengaturan di preferensi Anda untuk menutup jendela jika shell berhasil. Jika Anda BENAR-BENAR MALAS (seperti saya), buka profil bash Anda dan tambahkan alias. Saya memiliki set milik saya sehingga yang harus saya lakukan adalah mengetikkan 'q'.

bran.io
sumber
Gandakan killalljawabannya.
Josh Habdas
-1

Jika Anda ingin menghentikan aplikasi itu sendiri dari commandline:

killall Terminal
Hanya Jake
sumber
4
yang dianggap berbahaya. Terlepas dari kenyataan bahwa killall melakukan hal yang berbeda pada versi Unix yang berbeda, tidak baik untuk mematikan aplikasi daripada meminta untuk berhenti begitu saja.
Florenz Kley
solusi yang sangat bagus. Kita hanya perlu keluar dari terminal sehingga tidak perlu bertanya !! jawaban Terbaik.
Mehdico