ในการเริ่มต้นtmuxในการเข้าสู่ระบบเชลล์ทุกครั้งจะมีการเพิ่มสิ่งต่อไปนี้ลงใน~/.bashrc(บนเซิร์ฟเวอร์):
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new; exit
fi
ฉันยังต้องการเปลี่ยนชื่อหน้าต่างเป็นบางสิ่งเช่นuser@server(แทนuser@localhost) เมื่อ ssh เป็นโฮสต์ นี่คือฉัน~/.tmux.conf:
set -g prefix C-a
unbind C-b
bind C-a send-prefix
set -g set-titles on
set -g set-titles-string "#T"
bind-key o split-window -v
bind-key e split-window -h
bind-key w kill-pane
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
อย่างที่คุณเห็นset-titlesถูกตั้งค่าเป็นonแต่มันไม่ทำงานอย่างที่คาดไว้
ข้อมูลเพิ่มเติม:
ภายนอก tmux:
$ echo $TERM
xterm
ภายใน tmux:
$ echo $TERM
screen
show -g: https://clbin.com/h7oDh
tmux info: http://sprunge.us/XHCB
และนี่คือบันทึกเมื่อใช้งาน tmux -vvvvvสำหรับบิต:
- tmux-client-8441.log: https://clbin.com/eFwFF
- tmux ออก 8443.log: https://clbin.com/MSKZv
- tmux-server-8443.log: https://clbin.com/JXwRN
หากฉันใส่เครื่องหมายในบรรทัด~/.bashrcจากแล็ปท็อปของฉัน ssh ไปยังเซิร์ฟเวอร์แถบชื่อเรื่องจะแสดงอย่างถูกต้อง (quanta@server ) จากนั้นก็เริ่มtmuxจากที่นั่นก็ทำงานได้ตามที่คาดไว้
แต่ถ้าฉันต้องการเริ่มต้นtmuxทันทีหลังจากเข้าสู่ระบบแถบชื่อเรื่องจะยังคงอยู่quanta@Ubuntuหลังจาก ssh
อัพเดทเมื่อวันศุกร์ 10 พฤษภาคม 07:51:23 ICT 2013
ฉันได้ลบexitคำสั่งเพื่อไม่ให้ปิดเซสชันเชลล์เมื่อtmuxปิดหน้าต่างสุดท้าย:
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new
fi
สิ่งที่แปลกคือ:
- ssh to server -> แถบหัวเรื่อง:
quanta@Ubuntu - แยกออกจาก
tmux-> แถบหัวเรื่องเปลี่ยนเป็นquanta@server - แนบกับ
tmuxอีกครั้ง -> แถบหัวเรื่องยังคงแสดงอย่างถูกต้องquanta@server
ฉันไม่แน่ใจว่าเกี่ยวข้องกับPROMPT_COMMANDตัวแปรสภาพแวดล้อมหรือไม่:
นอกtmux:
$ echo $PROMPT_COMMAND
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
ภายในของtmux:
$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"
tmux infoโปรดให้เอาท์พุทจาก