Como salvar o histórico de rolagem no byobu?

23

Eu tive uma sessão de terminal interessante no byobu e gostaria de salvar a saída do terminal (comandos e tudo) em um arquivo - como posso fazer isso?

De acordo com a página do manual byobu :

Ctrl-a ~ - Salva o buffer de rolagem da janela atual

Isso pode realmente estar fazendo algo, mas não encontrei nenhuma indicação de onde e com que nome ele poderia ser salvo.

drevicko
fonte

Respostas:

21

Ou você pode simplesmente usar as teclas de atalho do Byobu para isso:

  • Shift-F7

Isso levará seu histórico e o colocará em seu editor favorito. Agora, salve esse buffer em um arquivo. Se você estiver no vi ou no vim, poderá usar:wq /tmp/out

Dustin Kirkland
fonte
O sift-F7 não parece fazer nada e a tela de ajuda do byobu também não menciona - eu estou usando o byobu 5.17 com o tmux 1.6 no ubuntu.
precisa saber é
Isso é incrível, me salvou muito tempo!
Ctrl-C
1
Estou executando o byobu 5.74 e essa opção aparece para mim na tela de ajuda e funciona conforme descrito. Eu ficaria surpreso se esse não fosse o caso, dado que Dustin é o criador do byobu. :) Vale mencionar que a saída é salva em $BYOBU_RUN_DIR/printscreen(como observado na tela de ajuda).
Chuim 30/04/2015
2
Para mim, ele foi salvo em /dev/shm/byobu-serg-ucvwj2rJ/printscreen, onde serg é obviamente o meu nome de usuário.
Sergiy Kolodyazhnyy 02/10/2015
1
Eu sei que esta é uma resposta antiga. De qualquer forma, sinto o mesmo problema: o shift-F7 parece não estar fazendo nada (mesmo que o atalho esteja presente no menu de ajuda). Estou usando-o em um host Ubuntu-16.04 com byobu versão 5.106 e tmux 2.1.
Marc
20

Uma pergunta antiga ainda não foi respondida de maneira viável e atendi novamente à necessidade.

Desta vez, encontrei uma solução viável. De man byobu:

SCROLLBACK, COPY, PASTE MODES

   Each  window  in  Byobu  has  up to 10,000 lines of scrollback history,
   which you can enter and navigate using the alt-pgup and alt-pgdn  keys.
   Exit  this  scrollback mode by hitting enter.  You can also easily copy
   and paste text from scrollback mode.  To do so, enter scrollback  using
   alt-pgup  or  alt-pgdn,  press the spacebar to start highlighting text,
   use up/down/left/right/pgup/pgdn to select the text, and press enter to
   copy  the  text.  You can then paste the text using alt-insert or ctrl-
   a-].
  1. Apertei F7para entrar no modo de rolagem,
  2. Space para começar a selecionar,
  3. gg para rolar até o topo do buffer (obrigado @GeorgeMarian)
    • Se isso não funcionar, tente o seguinte: com muitos Page upou :seguido pelo maior número de linha (indicado no canto superior direito) e Page uppara chegar ao topo da página,
  4. Enter copiar (para a área de transferência do byobu, não para o terminal / sistema),
  5. depois cat > my-byobu-dump.txtno terminal
  6. Alt+ Insertou ctrl+ A+ ]para colar (novamente, da área de transferência de byobu)
  7. Ctrl+ Dpara fechar o arquivo.
drevicko
fonte
Esta foi a única resposta que funcionou bem para mim.
Pjvandehaar #
1
Para a etapa 3, se você quiser chegar ao uso muito alto gg(como vim).
George Marian
@GeorgeMarian Você sabe se isso é do modo de emulação de vim? as pessoas encontrarão outros comportamentos? Parece que o comportamento predefinido (pelo menos com 5,17 Byobu sobre tmux 1.6)
drevicko
Não há nenhum modo de emulação de vim no byobu que eu conheça. Há vi-como comandos de movimento no modo scrollback , e talvez em outros lugares. Acabei de experimentá-los, já que - bem - Linux. (Eu estive usando lessmuito ultimamente, pesquisando e se movendo ao redor.)
George Marian
Está bem. poderia ser proveniente da tecnologia multiplex subjacente (screen ou tmux)? De qualquer forma, adicionei sua sugestão. Muito obrigado :)
drevicko
3

Shift + F7 só funciona como esperado se você tem o conjunto variável de ambiente EDITOR a um editor dentro Byobu . Por alguma razão, em alguns casos (por exemplo, quando eu conecto através do SSH a outro computador), definir essa variável ~/.profilenão é suficiente. Um lugar para configurá-lo para que o byobu sempre o leia ~/.bashrc. Copie algo como o seguinte para o seu ~/.bashrc:

# Although this is set in ~/.profile, it is set here as well so that in a 
# remote byobu session, Shift+F7 copies the output to a Vim buffer. See:
# /ubuntu/382750/how-to-save-scrollback-history-in-byobu
export EDITOR='vim'
scottkosty
fonte
No meu caso, isso não ajudou (na verdade .bashrc é onde eu configuro o EDITOR de qualquer maneira). Até onde eu sei, meu emulador de terminal (programa Terminal OSX padrão) não está transmitindo as teclas de função corretamente - provavelmente solucionável nas configurações do Terminal, mas as soluções ctrl-A funcionam bem para mim.
precisa saber é
1
@drevicko ah eu vejo, é bom saber. Bem, é bom que estejamos coletando várias soluções alternativas, para que esperemos que uma delas funcione para a próxima pessoa que se deparar com esse problema.
scottkosty
fyi: .profile não está carregado para sessões ssh por padrão - explica o que aconteceu aqui.
drevicko
2

Se você não costuma usar as teclas F, isso pode funcionar para você:

  • Ctrl+ a, [: Introduzir o modo de scrollback
  • Space entre no modo de cópia (opcional)
  • Enter sair do modo de rolagem ou cópia
  • Ctrl+ a, ]: Colar o que foi copiado
Ikar Pohorský
fonte
Além disso, se o seu programa de terminal estiver interceptando as teclas F;)
drevicko 31/07
1

Use Ctrl+ A+ ~para copiar o buffer de rolagem para a área de transferência do byobu.

Cole o texto em um editor usando Alt+ insert ou Ctrl+ A+ ].

(Ajuste Ctrl+ Ase você alterou sua tecla de escape.)

chupchik
fonte
Eu tenho apenas um Mac para trabalhar no momento, e ctrl-a ~ então ctrl-a] não está fazendo nada - suspeito que ctrl-a não esteja conseguindo o byobu (que está do outro lado de um túnel ssh) .. Alguma idéia?
drevicko 31/07
0

Selecione o texto que deseja salvar e pressione Control+ Shift + C Avançar, abra seu editor de texto favorito. Em seguida, cole o conteúdo aqui usando Control+ V . Por fim, salve o arquivo no local desejado.

DICA TERMINAL DO DIA: Ao tentar copiar algo no terminal, faça-o normalmente, espere usar Control+ Shift + em Cvez de Control+ Ce cole-o normalmente. Para colar algo que está na área de transferência no terminal, use Control+ Shift + V.

Cammy_the_block
fonte
é apenas um esquema simples de copiar e colar, perderá tempo para copiar e colar. O drevicko quer fazer isso via terminal ou salva automaticamente em algum lugar.
Sukupa91
Ele não disse que eu gostaria de salvar tudo em um arquivo? É assim que ele faz.
Cammy_the_block
1
Não, acredito que você apenas obterá o valor da tela - não o histórico completo (talvez 10000 linhas) do byobu scrollback ... Observe que o byobu armazena um histórico do terminal independente do aplicativo do terminal que você está usando.
drevicko
Se você segurar o mouse acima da janela, ele rolará para cima para que você possa realçar a coisa toda.
Cammy_the_block
2
@Cammy_the_block você está perdendo o bit "byobu", procure (uma coisa MUITO útil se você estiver trabalhando em servidores remotos). Ele armazena sessões de terminal das quais você pode desconectar e depois reconectar. Eu tenho 10.000 linhas de histórico de terminal que NÃO são acessíveis ao aplicativo de terminal local. O Byobu (e o back-end que está usando: tmux ou screen) tem seu próprio conjunto de comandos acionados por teclado para acessar esse histórico.
drevicko
0

CtrlO + A+ ]funcionará se você digitar de 1 a 20 vezes ou mais com o abracodabra. Mas o único comando funcionará sem dor de cabeça. Para colar o texto do buffer no terminal ou no arquivo. E o vencedor é Alt+ Ins., Diga oi para Byobu é o software GPLv3, de autoria e manutenção de Dustin Kirkland.

bemonolit
fonte
0

Se você precisar salvar o histórico, use Shift + F7atalho. Como @ dustin-kirkland diz.

Se você preferir rolar para cima e para baixo no seu terminal, isso depende se você usa tmux ou screen. Exemplos:

  1. Screeen:

    • CTRL + a: Se você usar [, entra no modo de rolagem como @ ikar-pohorský diz.
  2. Tmux:

    • ALT + PageUp: você rola para cima.
    • ALT + PageDown: você rola para baixo.

Byobu F1 ajuda

mrroot5
fonte