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

19

J'utilise tmux sur EC2 AWS mais je veux voir ce qui se passe dans une session que j'ai créée.

J'utilise Ctrl+ bpuis d pour quitter la session.

Utilisation d'ubuntu 16.04

Vitor Abella
la source
2
As-tu essayé tmux attach?
Stephen
après avoir utilisé tmux ou lors de sa première utilisation?
Vitor Abella
Normalement, vous luanch tmux, faites quelques trucs, puis détachez. Ensuite, vous utilisez tmux attach pour revenir à la session précédente.
Stephen

Réponses:

23

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

Pour autant que je sache, vous pouvez afficher 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 fonctionne dans ces sessions, vous devez vous y attacher, pour ce faire, vous avez deux options (par expérience).

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

  2. Si vous exécutez à l'intérieur d'une autre session tmux, vous obtiendrez une erreur en essayant de vous connecter à une autre session, donc la manière la plus simple de voir ce qui y est est d'utiliser la tmux list-windows -acommande puis de déplacer le volet / fenêtre dans lequel vous exécutez la tâche.

Déplacement d'une fenêtre à l' aide de tmux move-window -s n1 -t n2( -s == fenêtre source , -t == fenêtre cible à laquelle la fenêtre source sera 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 numéros n1 et n2 sont classés / formatés comme sessionNumb:windowNumb. Ainsi, la première session dans la première fenêtre sera 0: 1, et la deuxième session dans la première fenêtre sera 1: 1.

Remarque. n2 doit être une session disponible avec une fenêtre pas encore créée. Si vous déplacez une fenêtre vers une fenêtre déjà créée, vous obtiendrez une erreur indiquant «La fenêtre cible n'est pas vide» et le déplacement vers une session non créée donnera l'erreur «Impossible de trouver la session n».

Déplacer le volet parfois dans une fenêtre, vous pouvez avoir plusieurs volets et vous n'avez besoin de déplacer qu'un seul volet, cela est utile si vous n'avez besoin que d'un seul volet pour vous déplacer à l'intérieur de votre fenêtre actuelle (car vous ne pouvez pas déplacer une fenêtre à l'intérieur d'une autre fenêtre).

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

n1 est maintenant formaté en tant sessionNumb:windowNumb.paneNumbque n2 .

Exemples

Après tmux list-windows -avous 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, déplacer la fenêtre "Chat" de la première session à ma deuxième session devra être exécutée tmux move-window -s 0:3 -t 1:4(rappelez-vous que vous ne pouvez pas déplacer la fenêtre vers une fenêtre déjà créée).

Déplacer un volet

Si vous avez seulement besoin de déplacer un volet, vous devez le faire tmux list-panes -aou si vous connaissez déjà la fenêtre dont il est issu, vous pouvez tmux list-panes -t 0:1 voir les explications de format ci-dessus .

Les résultats montrent que la fenêtre 1 de la session 0 (-s 0: 1) possède 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 voir plus d'informations pour savoir quel volet vous avez vraiment besoin, vous pouvez le faire

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

qui affichera les commandes en cours d'exécution dans chaque volet.

Dans mon cas

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

Donc, après avoir identifié le volet que vous souhaitez (par exemple celui de vim), vous devez le déplacer.

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

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

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

ArchNoob
la source
0

En suivant la réponse ci-dessus, vous pouvez essayer:

tmux lspour obtenir le numéro de session. Puis

tmux attach-session -t <session_number>

ZakS
la source