Tôi đang sử dụng tmux 1.8 và không tìm thấy một giải pháp tích hợp. Những cách giải quyết này phù hợp ít nhất cho các trường hợp sử dụng phổ biến của tôi:
- Ghi lại toàn bộ nội dung của cửa sổ và tìm lệnh ssh cuối cùng trong đó (Tôi sử dụng kiến thức về kết thúc lời nhắc của mình để phát hiện lệnh ít hoặc đáng tin cậy hơn))
- Nếu đây thất bại tôi kiểm tra lệnh cửa sổ có thể đã được tạo ra với bằng
shell-command
tùy chọn tmux new-window
hoặc split-window
lệnh
reconnect.sh
kịch bản của tôi trông như thế này. Điều bẩn nhất về nó là cách để có được lệnh ssh cuối cùng từ bộ đệm. Đến nay "> ssh" là đủ cho các tình huống của tôi để phát hiện một cách đáng tin cậy một dòng có chứa một yêu cầu kết nối ssh nhưng bất kỳ giải pháp tốt hơn sẽ được đánh giá cao.
#!/bin/bash
# @TODO: change this according to your own prompt
# This is used to find lines connect ssh command in the pane buffer
PROMPT_SEPARATOR="> "
# get current pane buffer size and dimensions
HISTORY_LIMIT=`tmux display-message -p "#{history_limit}"`
VISIBLE_LINES=`tmux display-message -p "#{pane_height}"`
# search last ssh command in pane content
LINE=`tmux capture-pane -p -J -S -$HISTORY_LIMIT -E $VISIBLE_LINES | grep "${PROMPT_SEPARATOR}ssh " | tail -1`
if [ -n "$LINE" ]; then
echo $LINE | sed "s/.*$PROMPT_SEPARATOR//;"
else
# fall back to the command that might have been used to create the pane
# (not necessarily ssh but helpful anyway)
tmux list-panes -F "#{pane_active} #{pane_start_command}" | grep "^1 " | tail -1 | cut -d ' ' -f2-
fi
tôi cứu kịch bản này trong tôi ~/.tmux thư mục và thay đổi tổ hợp phím cho nhiều split-window
và new-window
phím tắt trong tôi .tmux.conf
tương tự như sau:
# try to reconnect to remote host when creating new window
bind c run-shell 'CMD=`~/.tmux/reconnect.sh`; tmux new-window "$CMD"'
Bạn có thể cài đặt tmux trong thư mục chính của bạn trên máy từ xa? Nếu không có tmux, ssh chỉ cung cấp cho bạn một thiết bị đầu cuối duy nhất. – chepner
Đó là vấn đề tôi không thể cài đặt bất cứ điều gì trên máy từ xa .. chính sách – user1019129