Mỗi khung tmux là một giao diện cho một pty (pseudo tty). Cửa sổ không phân chia có một khung duy nhất; cửa sổ chia có nhiều tấm.
tmux không cung cấp một cách để thêm các quy trình bổ sung vào một khung khi nó đã được bắt đầu với lệnh ban đầu của nó. Tùy thuộc vào quy trình của lệnh ban đầu (thường là shell) để cung cấp điều khiển công việc 1 cho thiết bị đầu cuối đó.
Nếu bạn muốn ghi đè bất cứ thứ gì hiện đang chạy trong khung, bạn có thể sử dụng respawn-pane -k
để hủy lệnh hiện có và thay thế nó bằng một lệnh mới (ví dụ respawn-pane -t sessionname:0.4 -k 'some -new command'
:).
Nhưng, nếu bạn muốn duy trì bất cứ thứ gì hiện đang chạy trong khung, thì có thể không có tùy chọn nào tốt hơn mà chỉ đơn giản là gõ gõ vào nó send-keys
.
Bạn có thể viết kịch bản như thế này (đính kèm lần cuối, vì nếu không thì tập lệnh sẽ chỉ chờ bạn tách ra trước khi tiếp tục):
session=whatever
window=${session}:0
pane=${window}.4
tmux send-keys -t "$pane" C-z 'some -new command' Enter
tmux select-pane -t "$pane"
tmux select-window -t "$window"
tmux attach-session -t "$session"
Lưu ý rằng, trên send-keys
lệnh, bạn thực sự nên gõ các chữ cái
E n t e r, để nói tmux
để gửi một khóa dòng mới đến cửa sổ. (Đương nhiên, mọi lệnh kết thúc bằng Enterphím.)
1 Kiểm soát công việc là phân xử giữa nhiều nhóm quy trình của một phiên sử dụng tty làm thiết bị đầu cuối kiểm soát. Tức là, Ctrl+ Zngưng trọng, và jobs
, fg
và bg
vỏ lệnh.
#{session_name}:#{window_index}.#{pane_index}
trong dòng trạng thái của mình để tôi có thể nhanh chóng xem khung nào sẽ gửi lệnh đến.