ฉันจะปิดเทอร์มินัลใน OSX จากบรรทัดคำสั่งได้อย่างไร


69

เหตุใด "ทางออก" จึงไม่ปิดหน้าต่าง Terminal.app ใน Mac OS X

$ exit
logout

[Process completed]

มีวิธีปิดหน้าต่างโดยไม่ใช้เมาส์หรือไม่?

คำตอบ:


87

หน้าต่างที่แสดงโดย Terminal.app เป็นเพียงส่วนหน้าสำหรับกระบวนการที่คุณเลือกที่จะทำงานภายใน - ในกรณีของคุณคือ Unix shell เมื่อคุณออกจากเชลล์ Terminal.app จะไม่ปิดหน้าต่างตามค่าเริ่มต้นดังนั้นคุณจึงมีความเป็นไปได้ที่จะตรวจสอบเอาต์พุตจากคำสั่งใด ๆ ก็ตามที่คุณรันหลังจากเสร็จสิ้น

คุณสามารถเปลี่ยนการตั้งค่าได้ที่นี่

การตั้งค่าเทอร์มินัล -> การตั้งค่า -> เชลล์:

เพื่อทั้ง

  1. ปิดหน้าต่างเสมอไม่ว่าสถานะการออกของเชลล์คืออะไร
  2. ปิดหน้าต่างถ้าเชลล์ออกอย่างหมดจด
  3. เปิดหน้าต่างไว้ (ค่าเริ่มต้น)

นอกจากนั้นคุณสามารถ (เกือบ) ปิดหน้าต่างใน OSX ด้วย Cmd-W ได้ตลอดเวลาดังนั้นคุณไม่จำเป็นต้องใช้เมาส์แม้ว่าจะไม่ปิดอัตโนมัติ

คำใบ้อีกหนึ่งข้อ: ฉันชอบกดปุ่ม Ctrl-D แทนที่จะพิมพ์ออก สองปุ่มเทียบกับห้า


11
ใน Yosemite มันคือ: preferences -> profiles -> shell -> "เมื่อเชลล์ออก" ... เชลล์คือเชลล์ที่คุณเลือกใน General-> เมื่อเปิดสตาร์ท ...
cloudsurfin

เมื่อออกจากเชลล์แล้วจะสามารถเริ่มเชลล์ใหม่ในหน้าต่างเดียวกันได้หรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร
Sodved

@ แก้ไข: ฉันไม่คิดว่ามันเป็น แต่อาจจะผิด
Amadan

สิ่งนี้ไม่ตอบคำถามที่ถามเนื่องจากจะไม่เสนอการดำเนินการบรรทัดคำสั่ง
Chris Stratton

@ChrisStratton คุณถูกต้องว่ามันไม่ได้โดยตรงตอบคำถามที่ถาม แต่มันไม่อำนวยความสะดวกในการใช้งานของexitคำสั่งซึ่ง OP ถูกใช้มา แต่เดิม
jdersen

21

Command+ Q-> ปิดแอปพลิเคชั่น / กระบวนการ

Command+ W-> ปิดหน้าต่าง / อินสแตนซ์


OP ร้องขอวิธีปิดหน้าต่างเทอร์มินัล "โดยไม่ต้องใช้เมาส์"
Josh Habdas

10

ใช่แล้ว ตัวอย่างเช่นคุณสามารถใช้ AppleScript เพื่อให้บรรลุ:

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

หน้าต่างแรกเป็นหน้าต่างที่ใช้งานอยู่ในปัจจุบันเสมอ นั่นคือสิ่งที่คุณต้องการปิด

ก่อนปิดหน้าต่างเทอร์มินัลอาจถามคุณว่าคุณต้องการปิดหน้าต่างจริงๆหรือไม่ ขึ้นอยู่กับการตั้งค่าของคุณ คุณอาจเลือกที่จะ 'ปิดหน้าต่างเฉพาะเมื่อเชลล์ออกอย่างหมดจดหรือไม่มีกระบวนการอื่นทำงานแยกจาก…' (นี่อาจเป็นการตั้งค่าเริ่มต้น) ในกรณีนั้นการเพิ่ม& exitคำสั่งปิดหน้าต่างทันทีและไม่ต้องถาม

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

นี่เกือบจะถูกต้อง แต่ในความเป็นจริงแล้ว "หน้าต่างแรก" ไม่ได้เป็นหน้าต่างที่ใช้คำสั่งเสมอ
Chris Stratton

เทคนิคนี้ใช้ได้ดีหลังจากopenถูกเรียกให้เพิ่มโปรไฟล์เทอร์มินัลใหม่
Josh Habdas

2

ที่จริงแล้วสำหรับความต้องการนี้คุณควรตั้งค่าบางอย่างเป็นเทอร์มินัลของคุณ ทำตามคำแนะนำด้านล่างและคุณจะปิดเทอร์มินัลด้วยexitคำสั่ง

เมื่อเทอร์มินัลสิ้นสุดขึ้นให้กด+ ,เพื่อเปิดหน้าต่าง prefrences จากนั้นคุณจะเห็นหน้าจอด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นกดแท็บเชลล์และคุณจะเห็นหน้าจอด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้เลือกClose if the shell exited cleanlyสำหรับเมื่อออกจากหอย

เทอร์มินัลของคุณพร้อมสำหรับทางออกเพียงแค่มีexitคำสั่ง


1

ฉันยังแนะนำกับข้อเสนอแนะ killall ตามที่แนะนำแก้ไขการตั้งค่าในการตั้งค่าของคุณเพื่อปิดหน้าต่างถ้าการออกจากเชลล์สำเร็จ หากคุณเป็นคนขี้เกียจจริงๆ (เช่นฉัน) เปิดโปรไฟล์ทุบตีของคุณและเพิ่มชื่อแทน ฉันมีชุดระเบิดดังนั้นสิ่งที่ฉันต้องทำคือพิมพ์ 'q'


หลอกของkillallคำตอบ
Josh Habdas

-1

หากคุณต้องการยกเลิกแอปพลิเคชันเองจาก commandline:

killall Terminal

4
ถือว่าเป็นอันตราย นอกเหนือจากความจริงแล้วท่า killall ทำสิ่งต่าง ๆ ใน Unix รุ่นต่าง ๆ มันไม่ดีที่จะฆ่าแอปพลิเคชันแทนที่จะขอให้มันเลิก
Florenz Kley

ทางออกที่ดีมาก เราแค่ต้องออกจากเทอร์มินัลดังนั้นจึงไม่มีการถาม !! คำตอบที่ดีที่สุด
Mehdico
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.