Como faço para acessar a sessão tmux depois que a saio?

18

Estou usando o tmux no EC2 AWS, mas quero ver o que está acontecendo em uma sessão que criei.

Uso Ctrl+ be depois d saio da sessão.

Usando o Ubuntu 16.04

Vitor Abella
fonte
2
Você tentou tmux attach?
Stephen
depois de usar o tmux ou quando o usar pela primeira vez?
Vitor Abella
Normalmente você luanch tmux, faz algumas coisas e depois desconecta. Então você usa o tmux attach para voltar à sessão anterior.
Stephen Stephen

Respostas:

22

Quero ver o que está acontecendo em uma sessão que criei.

Até onde eu sei, você pode visualizar sua lista de sessões do tmux usando

tmux list-sessions para ver quais sessões estão em execução no tmux.

Para realmente ver o que está sendo executado nessas sessões, você precisa anexar a uma sessão específica. Para isso, você tem duas opções (por experiência).

  1. Se você não está executando atualmente uma sessão do tmux (ou não está atualmente na sessão do tmux), você anexa executando tmux attach -t n(onde -t representa a sessão de destino e n esse número da sessão).

  2. Se você estiver executando dentro de outra sessão do tmux, receberá um erro ao tentar se conectar a outra sessão. Portanto, a maneira mais simples de ver o que está sendo executado é usar o tmux list-windows -acomando e mover o painel / janela em que a tarefa estiver sendo executada.

Movendo uma janela usando tmux move-window -s n1 -t n2( -s == janela de origem , -t == janela de destino na qual a janela de origem será anexada. N1 == número da janela que você deseja mover e n2 é o número da janela para a qual você está se movendo).

Formato Os números n1 e n2 são ordenados / formatados como sessionNumb:windowNumb. Portanto, a primeira sessão na primeira janela será 0: 1 e a segunda sessão na primeira janela será 1: 1.

Nota. O n2 deve ser uma sessão disponível com uma janela ainda não criada. Se você mover uma janela para uma janela já criada, receberá um erro dizendo "A janela de destino não está vazia" e a mudança para a sessão não criada resultará no erro "não é possível encontrar a sessão n".

Movendo o painel Às vezes, em uma janela, você pode ter muitos painéis e precisa mover apenas um painel; isso é útil se você precisar apenas desse painel para se mover dentro da janela atual (como você não pode mover uma janela dentro de outra janela).

Você usa sintaxe quase semelhante ao mover uma janela, mas usa tmux move-pane -s *n1* -t *n2*.

Onde n1 agora é formatado como sessionNumb:windowNumb.paneNumbe também n2 .

Exemplos

Depois tmux list-windows -avocê terá algo parecido com isto

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]

Agora, movendo a janela "Bate-papo" da primeira sessão para a segunda, terei que executar tmux move-window -s 0:3 -t 1:4(lembre-se de que não é possível mover a janela para uma janela já criada).

Mover um painel

Se você precisar mover apenas um painel, precisará fazê-lo tmux list-panes -aou, se já conhece a janela, é possível tmux list-panes -t 0:1 ver as explicações de formato acima .

Os resultados aparecem mostrando a janela 0 da sessão 0 (-s 0: 1) possui esses painéis.

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

o que não é aceitável, mas se você precisar ver mais informações para saber qual painel realmente precisa

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

que exibirá os comandos em execução atuais em cada painel.

No meu caso

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

Então, depois de identificar qual painel você deseja (diga o vim), você precisa movê-lo.

tmux move-pane -s 0:1.1 -t 1:1.2para mover para um painel específico neste caso 2

Se você tiver apenas um painel na janela de tmux move-pane -s 0:1.1 -t 1:1.destino, não poderá fazê-lo, e ainda funcionará.

Espero que isso responda à pergunta.

ArchNoob
fonte
0

Seguindo a resposta acima, você pode tentar:

tmux lspara obter o número da sessão. E depois

tmux attach-session -t <session_number>

ZakS
fonte