Để bắt đầu tmuxtrên mỗi lần đăng nhập shell, phần sau đây đã được thêm vào ~/.bashrc(trên máy chủ):
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new; exit
fi
Tôi cũng muốn thay đổi tiêu đề cửa sổ thành một cái gì đó như user@server(thay vì user@localhost) khi ssh vào máy chủ. Đây là của tôi ~/.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@'
Như bạn có thể thấy, set-titlesđã được đặt thành on, nhưng nó không hoạt động như mong đợi.
Thêm thông tin:
Bên ngoài tmux:
$ echo $TERM
xterm
Bên trong tmux:
$ echo $TERM
screen
show -g: https://clbin.com/h7oDh
tmux info: http://sprunge.us/XHCB
Và đây là nhật ký khi chạy tmux -vvvvvmột chút:
- tmux-client-8441.log: https://clbin.com/eFwFF
- tmux-out-8443.log: https://clbin.com/MSKZv
- tmux-server-8443.log: https://clbin.com/JXwRN
Nếu tôi nhận xét các dòng trong ~/.bashrc, từ máy tính xách tay của tôi, ssh đến máy chủ, thanh tiêu đề hiển thị chính xác ( quanta@server), sau đó bắt đầu tmuxtừ đó cũng hoạt động như mong đợi.
Nhưng nếu tôi muốn bắt đầu tmuxngay sau khi đăng nhập, thanh tiêu đề vẫn là quanta@Ubuntusau ssh.
CẬP NHẬT Thứ Sáu ngày 10 tháng 5 07:51:23 CNTT 2013
Tôi đã xóa exitlệnh để không đóng phiên shell khi tmuxcửa sổ cuối cùng được đóng:
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new
fi
Điều kỳ lạ là:
- ssh đến máy chủ -> thanh tiêu đề:
quanta@Ubuntu - tách ra từ
tmux-> thanh chuyển đổi tiêu đề sangquanta@server - đính kèm
tmuxlại -> thanh tiêu đề vẫn hiển thị chính xácquanta@server
Tôi không chắc nó có liên quan đến PROMPT_COMMANDbiến môi trường hay không:
Bên ngoài tmux:
$ echo $PROMPT_COMMAND
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
Bên trong tmux:
$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"
tmux info.