วิธีตั้งชื่อเทอร์มินัลโดยอัตโนมัติเป็นชื่อไดเรกทอรีโดยไม่มีพา ธ


11

ปัจจุบันชื่อเทอร์มินัล / แท็บ bash ของฉันได้รับการตั้งค่าตามไดเรกทอรีที่ฉันใช้อยู่ตัวอย่างเช่น:

bob@bobscomputer:~/i/had/some/great/pie/yesterday

สิ่งนี้มีประโยชน์ไม่มากหากฉันมีแท็บหลายแท็บเปิดอยู่เคียงข้างกัน ตัวอย่างเช่นถ้าฉันมี 4 แท็บของ dir ข้างต้นเปิดเคียงข้างกันทั้งหมดที่ฉันเห็นคือ

bob@bobscomputer:~/i/had...

4 ครั้ง.

ฉันต้องการตั้งชื่อเทอร์มินัลทั้งหมดโดยอัตโนมัติเป็นเพียงส่วนสุดท้ายของเส้นทาง ในตัวอย่างด้านบนฉันต้องการชื่อ

yesterday

แน่นอนชื่อควรเปลี่ยนเมื่อฉันเปลี่ยนไดเรกทอรี ฉันต้องการทำสิ่งนี้โดยไม่เปลี่ยนพรอมต์ดังนั้นชื่อพรอมต์และเทอร์มินัลควรแตกต่างกัน

มีวิธีทำเช่นนี้หรือไม่?


สำหรับ ZSH ดูที่นี่: superuser.com/a/1328085/122021
LAFK พูดว่า Reinstate Monica

คำตอบ:


12

ทำไมคุณถึงต้องการทำโดยไม่ต้องแก้ไขตัวแปร PS1 ของคุณ? นั่นคือวิธีที่ถูกต้องที่จะทำ

หากคุณเรียกใช้สิ่งต่อไปนี้คุณจะได้รับสิ่งที่คุณต้องการ:

export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

นี่เป็นเพียงการรับพรอมต์เริ่มต้น:

export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

... และแทนที่ด้วย\u@\h: \w\W

คุณสามารถทำสิ่งเดียวกันกับคำสั่งใด ๆ ที่สะท้อนรหัสหลบหนีที่ถูกต้อง:

echo -en "\e]0;${PWD##*/}\a"

... แต่คุณต้องต่อสู้อย่างต่อเนื่องเพื่อหยุดยั้งไม่ให้ทำโดยใช้ PS1 (วิธีที่ดีที่สุด)


2
ขอบคุณ - ฉันไม่ได้ตระหนักถึง PS1 ตั้งชื่อและพร้อมรับคำอย่างอิสระ ใน. bashrc ของฉันภายใต้กรณี "$ TERM" ใน xterm * | rxvt *) ฉันตั้ง PS1 = "[\ e] 0; $ {debian_chroot: + ($ debian_chroot)} \ W \ a] $ PS1" และ มันทำสิ่งที่ฉันต้องการ
จ้องมองกบ

คำถามนี้ทำงานได้ดีในการอธิบายว่า PS1 gobbledygook หมายถึงอะไร: askubuntu.com/questions/404341/…
congusbongus

3

ใช่. เตรียมการ: \[\e]0;\W\a\]ไปยัง PS1 ของคุณ สิ่งนี้จะไม่เปลี่ยนลักษณะที่ปรากฏของพรอมต์ของคุณ แต่จะตั้งชื่อแท็บเทอร์มินัลโดยอัตโนมัติเป็นชื่อฐานของไดเรกทอรีการทำงานปัจจุบัน

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