Як отримати доступ до сеансу tmux після того, як я залишу його?


20

Я використовую tmux на EC2 AWS, але хочу побачити, що відбувається за один створений сеанс.

Я використовую Ctrl+, bа потім d покинути сеанс.

Використання ubuntu 16.04


2
Ви пробували tmux attach?
Стівен

після використання tmux або при першому використанні?
Вітор Абелла

Зазвичай ти лунаєш tmux, робиш якісь речі, а потім відриваєшся. Потім ви використовуєте вкладку tmux, щоб повернутися до попереднього сеансу.
Стівен

Відповіді:


24

Я хочу побачити, що відбувається за один створений нами сеанс.

Наскільки я знаю, ви можете переглянути свій список сесій tmux за допомогою

tmux list-sessions щоб побачити, які сеанси зараз працюють на tmux.

Щоб насправді побачити, що працює на цих сесіях, вам потрібно приєднатися до конкретного сеансу, для цього у вас є два варіанти (з досвіду).

  1. Якщо ви зараз не запускаєте сеанс tmux (або зараз не перебуваєте на сесії tmux), ви додаєте, запустивши tmux attach -t n(де -t означає цільовий сеанс, а n - номер цього сеансу).

  2. Якщо ви працюєте в іншому сеансі tmux, ви отримаєте помилку при спробі підключитися до іншого сеансу, тому найпростішим способом побачити, що там працює, є використання tmux list-windows -aкоманди, а потім переміщення в будь-яку панель / вікно, в якому ви виконуєте завдання.

Переміщення вікна за допомогою tmux move-window -s n1 -t n2( -s == вихідного вікна , -t == цільового вікна, до якого буде прикріплюватися вихідне вікно. N1 == номер вікна, до якого потрібно перемістити, і n2 - номер вікна, до якого ви переходите).

Формат Номери n1 та n2 впорядковані / сформовані як sessionNumb:windowNumb. Отже, перший сеанс у першому вікні буде 0: 1, а другий сеанс у першому вікні буде 1: 1.

Примітка. n2 має бути доступним сеансом із ще не створеним вікном. Якщо ви перемістите вікно у вже створене вікно, ви отримаєте помилку із записом "Цільове вікно не порожнє", а перехід до нествореного сеансу призведе до помилки "не можу знайти сеанс n".

Переміщуючи панель іноді в одному вікні, у вас може бути багато панелей, і вам потрібно лише перемістити одну панель, це корисно, якщо вам потрібна лише одна панель для переміщення всередині вашого поточного вікна (так як ви не можете перемістити вікно всередині іншого вікна).

Ви використовуєте майже подібний синтаксис при переміщенні вікна, але ви робите tmux move-pane -s *n1* -t *n2*.

Де n1 зараз формується як sessionNumb:windowNumb.paneNumbі так є n2 .

Приклади

Після у tmux list-windows -aвас вийде щось подібне

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]

Тепер, переміщуючи вікно "Чат" з першого сеансу до мого другого сеансу, мені доведеться запустити tmux move-window -s 0:3 -t 1:4(пам'ятаю, не можу перемістити вікно до вже створеного вікна).

Переміщення панелі

Якщо вам потрібно лише перемістити панель, вам потрібно це зробити, tmux list-panes -aабо якщо ви вже знаєте вікно, з якого воно є, ви можете tmux list-panes -t 0:1 побачити пояснення формату вище .

Результати показують сеанс 0 вікна 1 (-s 0: 1) має ці області.

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

що просто не прийнятно, але якщо вам потрібно переглянути більше інформації, щоб ви могли знати, яку саме область вам потрібно, ви можете зробити

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

які відображатимуть поточні команди, що працюють, на кожній панелі.

У моєму випадку

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

Тож після визначення потрібної панелі (скажімо, vim), вам потрібно її перемістити.

tmux move-pane -s 0:1.1 -t 1:1.2перейти до конкретної області в цьому випадку 2

Якщо у цільовому вікні є лише одна панель, ви tmux move-pane -s 0:1.1 -t 1:1.не можете скористатися цільовою панеллю, і вона все одно працюватиме.

Сподіваюсь, це відповідає на питання.


0

Після відповіді вище, ви можете спробувати:

tmux lsщоб отримати номер сеансу. І потім

tmux attach-session -t <session_number>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.