web-dev-qa-db-fra.com

Comment accéder à la session tmux après l'avoir quittée?

J'utilise tmux sur EC2 AWS mais je veux voir ce qui se passe au cours de la session que j'ai créée.

J'utilise Ctrl+b et alors d quitter la session.

Utiliser Ubuntu 16.04

13
Vitor Abella

Je veux voir ce qui se passe dans une session que j'ai créée.

Pour autant que je sache, vous pouvez voir votre liste de sessions tmux en utilisant

tmux list-sessions pour voir quelles sessions sont en cours d'exécution sur tmux.

Pour voir réellement ce qui se passe dans ces sessions, vous devez les attacher à une session particulière. Pour ce faire, vous avez deux options (par expérience).

  1. Si vous n'exécutez pas de session tmux (ou pas dans la session tmux), vous vous attachez en exécutant tmux attach -t n (où -t correspond à la session cible et n à ce numéro de session).

  2. Si vous exécutez une autre session tmux, vous obtiendrez une erreur en essayant de vous connecter à une autre session. Le moyen le plus simple de voir ce qu'il est en train de faire est d'utiliser la commande tmux list-windows -a alors déplacer quel que soit le volet/la fenêtre que vous avez. la tâche en cours.

Déplacement d'une fenêtre en utilisant tmux move-window -s n1 -t n2 ( - s == fenêtre source , - t = = fenêtre cible à laquelle la fenêtre source doit être attachée. n1 == numéro de la fenêtre que vous souhaitez déplacer et n2 est le numéro de la fenêtre vers laquelle vous vous déplacez.

Format Les nombres n1 & n2 sont commandé/formaté en tant que sessionNumb:windowNumb. Ainsi, la première session dans la première fenêtre sera 0: 1 et la seconde session dans la première fenêtre sera 1: 1.

Remarque. n2 doit être une session disponible avec une fenêtre non encore créée. Si vous déplacez une fenêtre vers une fenêtre déjà créée, vous obtiendrez une erreur disant "La fenêtre cible n'est pas vide" et le passage à une session non créée donnera l'erreur "ne peut pas trouver la session n".

Volet mobile Parfois, dans une fenêtre, vous pouvez avoir plusieurs panneaux et vous n’avez besoin que de déplacer un panneau. Ceci est utile si vous n’avez besoin que d’un seul panneau pour vous déplacer dans votre fenêtre actuelle (vous ne pouvez pas vous déplacer. une fenêtre dans une autre fenêtre).

Vous utilisez une syntaxe presque similaire pour déplacer une fenêtre, mais vous faites tmux move-pane -s *n1* -t *n2*.

n1 est maintenant formaté en tant que sessionNumb:windowNumb.paneNumb et est donc n2 .

Exemples

Après tmux list-windows -a vous aurez quelque chose comme ç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]

Maintenant, en déplaçant la fenêtre "Chat" de la première session à la seconde session, je devrai exécuter tmux move-window -s 0:3 -t 1:4 (rappelez-vous que vous ne pouvez pas déplacer la fenêtre dans une fenêtre déjà créée).

Déplacement d'un volet

Si vous avez seulement besoin de déplacer un volet, vous devez utiliser tmux list-panes -a ou si vous connaissez déjà la fenêtre d'où il vient, vous pouvez tmux list-panes -t 0:1 Voir les explications de format précédentes ci-dessus .

Les résultats montrent que la fenêtre 1 de la session 0 (-s 0: 1) contient ces volets.

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

ce qui n’est tout simplement pas acceptable, mais si vous avez besoin de plus d’informations pour savoir quel volet vous avez réellement besoin, vous pouvez le faire.

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

qui affichera les commandes en cours d’exécution sur chaque volet.

Dans mon cas

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

Donc, après avoir identifié le volet que vous voulez (dites le vim), vous devez le déplacer.

tmux move-pane -s 0:1.1 -t 1:1.2 pour passer à un volet spécifique dans ce cas 2

Si vous ne disposez que d'un seul volet dans la fenêtre cible, vous pouvez tmux move-pane -s 0:1.1 -t 1:1. pas de volet cible, et cela fonctionnera toujours.

J'espère que cela répond à la question.

16
ArchNoob