การตั้งชื่อแท็บ Terminal


11

ฉันกำลังพยายามเปิดแท็บเทอร์มินัลสองสามตัวใน gnome-terminal และจนถึงตอนนี้ฉันก็สามารถทำอะไรบางอย่างได้แล้ว แต่ตอนนี้ฉันติดอยู่

ดังนั้นฉันมีข้อกำหนดดังต่อไปนี้:

  • เปิดแท็บชื่อ "X" และ "Y"
  • ดำเนินการคำสั่งบางอย่าง
  • เปิดแท็บค้างไว้และพร้อมใช้งานต่อไป; เก็บชื่อ

จนถึงตอนนี้ฉันจัดการเพื่อให้เป็นไปตามข้อกำหนดบางประการ แต่ไม่ใช่ทั้งหมด:

gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"

นี่เป็นการเปิดสองแท็บ:

  1. "X" (แล้วเปลี่ยนชื่อเป็นชื่อเริ่มต้น)
  2. "Y" topแต่ปิดแท็บเร็วที่สุดเท่าที่ผมเลิก

มีวิธีเปิดแท็บเรียกใช้bashแต่ไม่เปลี่ยนชื่อหรือไม่ ฉันลองใช้ Google แล้ว แต่ละทิ้ง

แก้ไข: มันไม่จำเป็นต้องเป็นคำสั่ง


มันจะต้องมีคำสั่งหรือไม่? เนื่องจาก gnome-terminal GUI ทำงานได้ดีสำหรับสิ่งนั้น
neph

@ kikjezrous ดีฉันรู้วิธีการใช้แป้นพิมพ์ลัดหรือคลิกขวา แต่ฉันต้องทำทุกครั้งที่ทำงาน (และเป็น 6 แท็บ) ดังนั้นมันจึงเป็นเรื่องของความสะดวกสบายมากกว่าความจำเป็นจริง ๆ
omninonsense

อาฉันจะแก้ไขคำตอบของฉัน
neph

คำตอบ:


4

อย่างที่คุณเห็นในคำตอบอื่น ๆชื่อของแท็บจะเปลี่ยนไปโดยเชลล์ทุกครั้งที่มีการแจ้งเตือน และหลังจากดำเนินการtopแท็บของคุณออกเนื่องจากคำสั่งที่คุณบอกให้เรียกใช้เสร็จสิ้น ...

ฉันจะทำสิ่งต่อไปนี้:

ขั้นตอนที่ 1: เรียกใช้เทอร์มินัลด้วยเชลล์เพิ่มตัวแปรสภาพแวดล้อมเช่นนั้น:

gnome-terminal --tab -t X -e "env MYTAB=X bash" --tab -t Y -e "env MYTAB=Y bash" 

ขั้นตอนที่ 2: เพิ่มที่ส่วนท้ายของ.bashrcรหัสต่อไปนี้:

#if MYTAB is not set, return
[ -z "$MYTAB" ] && return
# reset the cursor and title 
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\[\e]0;$MYTAB \w\a\]$PS1"   #title: $MYTAB and current dir
# execute the commands for every tab
case "$MYTAB" in
        X)
                echo this is X
        ;;

        Y)
                echo this is Y 
                top
        ;;
esac

... ซึ่งฉันคิดว่าเข้าใจง่ายและคุณสามารถแก้ไขได้ด้วยคำสั่ง / ปรับแต่งที่คุณต้องการ ผ่านการทดสอบและใช้งานได้ดี หลังจากที่คุณออกtopจากแท็บคุณจะยังคงมีพรอมต์และแท็บเพื่อให้คุณอ่าน

ภาพหน้าจอ (หลังจากกด "q" ในtop):

ภาพหน้าจอ


6

ในการคงชื่อแท็บคุณต้องแสดงความคิดเห็นบรรทัดต่อไปนี้ใน.bashrc:

# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
#    ;;
#*)
#    ;;
#esac

จากนั้นgnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"จะทำงานตามที่คาดไว้:

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


ทำเครื่องหมายว่านี่เป็นคำตอบที่ถูกต้องเนื่องจากเป็นคำตอบที่ง่ายที่สุด :-)
omninonsense

ฉันเปลี่ยนคำตอบที่ยอมรับแล้ว (และแก้ไขมันเล็กน้อย) เพราะมันเหมาะกับความต้องการของฉันมากกว่า นี่ยังเป็นคำตอบที่ยอดเยี่ยม!
omninonsense

1
ไม่มีปัญหาก็คือวิธีการทำงาน :)
Sylvain Pineau

1

ฉันสมมติว่ามันไม่จำเป็นต้องเป็นคำสั่งและให้วิธีการแบบกราฟิกทั้งหมดในการทำเช่นนี้

หลังจากเปิดตัว gnome-terminal แล้วเมนู 'ไฟล์' จะช่วยให้คุณเปิดแท็บใหม่ซึ่งจะมีการกำหนดชื่อที่กำหนด ที่สามารถเปลี่ยนแปลงได้โดยเมนู 'เทอร์มินัล' หรือคลิกขวาที่แท็บและทำจากเมนูบริบท

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


การใช้ builtin gnome-terminal ไม่มีตัวเลือกในการตั้งชื่อในเมนูบริบทสำหรับแท็บหรือตัวเลือกใด ๆ ในเมนู 'terminal' คุณใช้เทอร์มินัลรุ่นใด
วิลเลียมส์

1

ในขณะที่เล่นไปรอบ ๆ ฉันพบว่ามันไม่ใช่คำสั่ง แต่อย่างใด - เป็นโปรไฟล์

ไปที่:

Edit | Profiles | (Default) | Edit | Title and Command 

และเปลี่ยนตัวเลือก "เมื่อเทอร์มินัลตั้งชื่อของตนเอง" เป็น "คงชื่อเริ่มต้น" ที่ด้านล่างของรายการ ตอนนี้เมื่อคุณเรียกใช้คำสั่งด้วยหัวเรื่องมันจะวนไปเรื่อย ๆ ดังนั้นคำสั่งของคุณจะทำงานได้อย่างถูกต้อง

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


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