Wie greife ich auf die tmux-Sitzung zu, nachdem ich sie verlassen habe?

17

Ich verwende tmux unter EC2 AWS, möchte aber in einer von mir erstellten Sitzung sehen, was gerade passiert.

Ich benutze Ctrl+ bund dann d , um die Sitzung zu verlassen.

Verwendung von Ubuntu 16.04

Vitor Abella
quelle
2
Hast du es versucht tmux attach?
Stephen
nach der verwendung von tmux oder bei der erstmaligen verwendung?
Vitor Abella
Normalerweise luanchst du tmux, machst ein paar Sachen und trennst dich dann. Anschließend verwenden Sie tmux attach, um zur vorherigen Sitzung zurückzukehren.
Stephen

Antworten:

21

Ich möchte sehen, was in einer von mir erstellten Sitzung vor sich geht.

Soweit ich weiß, können Sie Ihre tmux-Sitzungsliste anzeigen, indem Sie verwenden

tmux list-sessions um zu sehen, welche Sessions gerade auf tmux laufen.

Um tatsächlich zu sehen, was in diesen Sitzungen ausgeführt wird, müssen Sie der jeweiligen Sitzung eine Anlage hinzufügen. Dazu haben Sie (aus Erfahrung) zwei Möglichkeiten.

  1. Wenn Sie derzeit keine tmux-Sitzung ausführen (oder sich derzeit nicht in einer tmux-Sitzung befinden), führen Sie eine Verbindung durch tmux attach -t n(wobei -t für die Zielsitzung und n für diese Sitzungsnummer steht).

  2. Wenn Sie in einer anderen tmux Sitzung ausgeführt werden Sie einen Fehler versuchen zu einer anderen Sitzung zu verbinden , so ist der einfachste Weg , um zu sehen , was dort läuft , ist das verwenden tmux list-windows -aBefehl dann bewegen , was Bereich / Fenster Sie die Aufgabe in Laufen haben.

Verschieben eines Fensters mit tmux move-window -s n1 -t n2( -s == Quellfenster , -t == Zielfenster, an das das Quellfenster angehängt wird. N1 == Nummer des Fensters, das Sie verschieben möchten, und n2 Nummer des Fensters, in das Sie verschieben möchten ).

Format Die Nummern n1 und n2 sind wie folgt geordnet / formatiert sessionNumb:windowNumb. Die erste Sitzung im ersten Fenster ist also 0: 1, und die zweite Sitzung im ersten Fenster ist 1: 1.

Hinweis. n2 muss eine verfügbare Sitzung mit einem noch nicht erstellten Fenster sein. Wenn Sie ein Fenster in ein bereits erstelltes Fenster verschieben, wird die Fehlermeldung "Zielfenster ist nicht leer" angezeigt, und wenn Sie zu einer nicht erstellten Sitzung wechseln, wird die Fehlermeldung "Sitzung n kann nicht gefunden werden" ausgegeben.

Verschieben von Fenstern Manchmal haben Sie in einem Fenster möglicherweise mehrere Fenster und müssen nur ein Fenster verschieben. Dies ist hilfreich, wenn Sie nur dieses eine Fenster in Ihrem aktuellen Fenster verschieben möchten (da Sie kein Fenster in einem anderen Fenster verschieben können).

Sie verwenden fast die gleiche Syntax beim Verschieben eines Fensters, tun dies jedoch tmux move-pane -s *n1* -t *n2*.

Wobei n1 jetzt wie n2 formatiert sessionNumb:windowNumb.paneNumbist .

Beispiele

Nachdem tmux list-windows -aSie so etwas haben

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]

Wenn ich nun das Fenster "Chat" von der ersten Sitzung in meine zweite Sitzung verschiebe, muss ich ausführen tmux move-window -s 0:3 -t 1:4( ich kann das Fenster nicht in ein bereits erstelltes Fenster verschieben).

Verschieben eines Fensters

Wenn Sie nur ein Fenster verschieben müssen, tmux list-panes -aoder wenn Sie bereits wissen, aus tmux list-panes -t 0:1 welchem Fenster es stammt, können Sie die obigen Erläuterungen zum Format anzeigen .

Die Ergebnisse zeigen, dass Fenster 1 von Sitzung 0 (-s 0: 1) über diese Bereiche verfügt.

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

Das ist einfach nicht akzeptabel, aber wenn Sie weitere Informationen benötigen, um zu wissen, welchen Bereich Sie wirklich benötigen, können Sie dies tun

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

In diesem Fenster werden die aktuell ausgeführten Befehle in jedem Bereich angezeigt.

In meinem Fall

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

Nachdem Sie das gewünschte Fenster (sagen wir das vim-Fenster) identifiziert haben, müssen Sie es verschieben.

tmux move-pane -s 0:1.1 -t 1:1.2um in diesem Fall zu einem bestimmten Bereich zu wechseln 2

Wenn Sie nur einen Bereich im tmux move-pane -s 0:1.1 -t 1:1.Zielfenster haben, können Sie keinen Zielbereich auswählen, und er funktioniert weiterhin.

Ich hoffe das beantwortet die Frage.

ArchNoob
quelle
0

Nach der obigen Antwort können Sie versuchen:

tmux lsum die Sitzungsnummer zu erhalten. Und dann

tmux attach-session -t <session_number>

ZakS
quelle