Làm thế nào để tôi truy cập phiên tmux sau khi tôi rời khỏi nó?


18

Tôi đang sử dụng tmux trên EC2 AWS nhưng tôi muốn xem những gì đang diễn ra trong một phiên tôi đã tạo.

Tôi sử dụng Ctrl+ bvà sau đó d rời khỏi phiên.

Sử dụng Ubuntu 16.04


2
Bạn đã thử tmux attachchưa
Stephen

Sau khi sử dụng tmux hoặc khi lần đầu tiên sử dụng nó?
Vitor Abella

Thông thường bạn luanch tmux, làm một số thứ, sau đó tách ra. Sau đó, bạn sử dụng tmux đính kèm để quay lại phiên trước đó.
Stephen

Câu trả lời:


22

Tôi muốn xem những gì đang diễn ra trong một phiên tôi đã tạo.

Theo tôi biết, bạn có thể xem danh sách phiên tmux của mình bằng cách sử dụng

tmux list-sessions để xem những phiên nào hiện đang chạy trên tmux.

Để thực sự thấy những gì đang chạy trong các phiên bạn phải đính kèm vào phiên cụ thể, để thực hiện điều này, bạn có hai tùy chọn (từ kinh nghiệm).

  1. Nếu bạn hiện không chạy phiên tmux (hoặc hiện không có trong phiên tmux), bạn đính kèm bằng cách chạy tmux attach -t n(trong đó -t là viết tắt của phiên đích và n cho số phiên đó).

  2. Nếu bạn đang chạy bên trong một phiên tmux khác, bạn sẽ gặp lỗi khi cố gắng kết nối với phiên khác, vì vậy cách đơn giản nhất để xem những gì đang chạy là sử dụng tmux list-windows -alệnh sau đó di chuyển bất kỳ khung / cửa sổ nào bạn có tác vụ đang chạy.

Di chuyển một cửa sổ bằng cách sử dụng tmux move-window -s n1 -t n2( -s == cửa sổ nguồn , -t == cửa sổ đích nơi cửa sổ nguồn sẽ đính kèm. N1 == số cửa sổ bạn muốn di chuyển và n2 là số cửa sổ bạn đang di chuyển).

Định dạng Các số n1 & n2 được sắp xếp / định dạng là sessionNumb:windowNumb. Vì vậy, phiên đầu tiên trong cửa sổ đầu tiên sẽ là 0: 1 và phiên thứ hai trong cửa sổ đầu tiên sẽ là 1: 1.

Ghi chú. n2 phải là một phiên có sẵn với một cửa sổ chưa được tạo. Nếu bạn di chuyển một cửa sổ đến một cửa sổ đã được tạo, bạn sẽ gặp lỗi "Cửa sổ mục tiêu không trống" và chuyển sang phiên không được xử lý sẽ báo lỗi "không thể tìm thấy phiên n".

Đôi khi di chuyển Pane trong một cửa sổ, bạn có thể có nhiều ô và bạn chỉ cần di chuyển một ô, điều này rất hữu ích nếu bạn chỉ cần một ô đó di chuyển bên trong cửa sổ hiện tại của bạn (vì bạn không thể di chuyển một cửa sổ bên trong một cửa sổ khác).

Bạn sử dụng cú pháp gần như tương tự với việc di chuyển một cửa sổ nhưng bạn làm được tmux move-pane -s *n1* -t *n2*.

Trong đó n1 bây giờ được tạo thành sessionNumb:windowNumb.paneNumbn2 cũng vậy .

Ví dụ

Sau khi tmux list-windows -abạn sẽ có một cái gì đó như thế này

0:1: Project- (4 panes) [177x48]
0:2: Mirror (3 panes) [177x48]
0:3: Chat! (1 panes) [177x48]
0:4: ssh* (1 panes) [177x48]
1:1: zsh (2 panes) [176x45]
1:2: zsh* (1 panes) [176x45]
1:3: zsh- (1 panes) [176x45]

Bây giờ, di chuyển cửa sổ "Trò chuyện" từ phiên đầu tiên sang phiên thứ hai tôi sẽ phải chạy tmux move-window -s 0:3 -t 1:4(hãy nhớ không thể di chuyển cửa sổ sang cửa sổ đã được tạo).

Di chuyển một khung

Nếu bạn chỉ cần di chuyển một khung thì bạn cần phải làm tmux list-panes -ahoặc nếu bạn đã biết cửa sổ đó là từ đâu, bạn có thể tmux list-panes -t 0:1 Xem giải thích định dạng ở trên .

Kết quả hiển thị phiên 0 cửa sổ 1 (-s 0: 1) có các ô này.

1: [177x34] [history 3/10000, 4119 bytes] %7 (active)
2: [88x13] [history 541/10000, 231972 bytes] %8
3: [88x13] [history 2/10000, 1541 bytes] %9

Điều này không thể chấp nhận được, nhưng nếu bạn cần xem thêm thông tin để bạn có thể biết khung nào bạn thực sự cần, bạn có thể làm

tmux list-panes -F "#{pane_current_command}" -t 0:1

Nó sẽ hiển thị các lệnh đang chạy hiện tại ở mỗi khung.

Trong trường hợp của tôi

vim
zsh
python (sadly it's runnuning `ranger`)

Vì vậy, sau khi xác định khung nào bạn muốn (nói vim), bạn cần di chuyển nó.

tmux move-pane -s 0:1.1 -t 1:1.2để di chuyển đến một khung cụ thể trong trường hợp này 2

Nếu bạn chỉ có một khung trong cửa sổ đích, bạn tmux move-pane -s 0:1.1 -t 1:1.không thể có khung mục tiêu và nó vẫn hoạt động.

Tôi hy vọng điều này trả lời câu hỏi.


0

Theo câu trả lời ở trên, bạn có thể thử:

tmux lsđể lấy số phiên. Và sau đó

tmux attach-session -t <session_number>

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.