กู้คืนชื่อเทอร์มินัล Mac OS X หลังจากปิดการเชื่อมต่อ SSH [ซ้ำกัน]


18

เป็นไปได้ซ้ำ:
ฉันจะทำให้ OS X ตั้งชื่อเทอร์มินัลกลับไปเป็นชื่อดั้งเดิมเมื่อกลับมาจาก ssh ได้อย่างไร

ทุกครั้งที่คุณออกจากระบบจากการเชื่อมต่อ SSH ใน terminal Mac OS X คุณจะพบกับข้อมูลการเข้าสู่ระบบที่ผ่านมาในชื่อหน้าต่าง

โซลูชันส่วนใหญ่ที่ฉันพบการค้นหาบนเว็บเกี่ยวข้องกับการเล่นรอบลำดับการหลบหลีกเช่นคำถามนี้หรือโพสต์บล็อกที่เกี่ยวข้องนี้

ดูเหมือนว่าจะเป็นปัญหา SSH ไม่ใช่สิ่งที่เทอร์มินัลดังนั้นฉันสงสัยว่ามีวิธีที่ง่ายกว่าในการทำสิ่งนี้ (อาจแก้ไขการกำหนดค่าไคลเอ็นต์ SSH หรือไม่)

คำตอบ:


26

มันไม่ใช่ปัญหาของ SSH ปัญหาคือว่าเชลล์บนรีโมตโฮสต์ถูกกำหนดค่าให้ส่งลำดับ escape เพื่อตั้งค่าหัวเรื่องหน้าต่างเทอร์มินัล นี่เป็นการตั้งค่าที่ค่อนข้างธรรมดา โซลูชั่นที่กล่าวถึงในโพสต์บล็อกที่คุณเชื่อมโยงนั้นถูกต้อง

ทางออกที่ง่ายที่สุดและตรงที่สุดคือการกำหนดค่าเปลือกระยะไกลเดียวกันนั้นเพื่อรีเซ็ตชื่อหน้าต่างเมื่อล็อกเอาต์ เช่นหากเปลือกระยะไกลเป็นทุบตีใส่สิ่งนี้ใน ~ / .bash_logout:

printf '\e]0;\a'

หรือหากคุณต้องการให้เชลล์ในเครื่องของคุณอัปเดตชื่อหน้าต่างด้วยสิ่งที่มีประโยชน์อยู่ดีทำเช่นนั้น เมื่อการเชื่อมต่อ ssh สิ้นสุดลงเชลล์โลคัลจะตั้งค่าหัวเรื่องหน้าต่างเป็นอย่างอื่นแทนที่จะปล่อยให้ค่าค้างค้าง เช่นใส่ไว้ใน ~ / .bashrc:

PS1='\[\e]1;\s\$ \W\a\e]2;\u@\h\a\]'"$PS1"

สิ่งนี้ทำให้ผู้ใช้และชื่อโฮสต์ในชื่อหน้าต่าง (ซึ่งโดยทั่วไปคือสิ่งที่เปลือกระยะไกลมีการกำหนดค่าให้ทำ) และยังตั้งชื่อแท็บเพื่อแสดงชื่อเชลล์และประเภท (ผู้ใช้ปกติหรือราก) และไดเรกทอรีการทำงานปัจจุบัน

โปรดทราบว่าหากคุณยังไม่มี ~ / .bash_profile (หรือ ~ / .profile) ให้สร้างและเรียกใช้ ~ / .bashrc เพื่อให้ ~ / .bashrc ใช้กับเปลือกเข้าสู่ระบบและที่ไม่ใช่การเข้าสู่ระบบ:

if [ -f $HOME/.bashrc ]; then
    . $HOME/.bashrc
fi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.