Como posso ver mais da minha história no Screen on Linux?

54

Eu estava executando scripts durante a noite na linha de comando (dentro da tela em uma instância do Linux EC2) e ocorreram alguns erros que eu não estava rastreando. Quero "rolar para cima" ou ver mais do histórico na Tela, mas não consigo encontrar nenhum comando que funcione.

Eu preciso ver a saída na tela "mais acima" do que na minha tela atual. CTRL + a deve me colocar no modo de rolagem dentro da Tela, mas não está funcionando.

T. Brian Jones
fonte
history | less, more? Ou você está perguntando como manter mais história?
historymanterá apenas os comandos que foram disparados no shell. Ele é mais perguntar sobre o registo tipo de coisa
<Shift>+ <PgUp>é a única opção. E tem algum limite também (no máximo 500 linhas, eu acho).
ssapkota
Eu preciso ver a saída na tela "mais acima" do que na minha tela atual. CTRL + a deve me colocar no modo de rolagem dentro da Tela, mas não está funcionando para mim.
T. Brian Jones
1
Apenas Ctrl-aé screenuma fuga. A sequência de teclas inteira para entrar no modo de Ctrl-a [retorno de rolagem seria , como o opyate diz. Ctrl-a ESCtambém funciona para mim, não me lembro qual é padrão / comumente usado.
Ninjalj 28/06

Respostas:

32

Quando você inicia a tela, pode especificar o tamanho do buffer de rolagem com -h, para poder aumentá-lo do padrão de 100 linhas. No entanto, com uma tela em execução no momento, depois que os dados saem do buffer, eles desaparecem.

William Pursell
fonte
3
Isto é simplesmente errado. A resposta por @opyate fornece uma solução
nirvana-MSU
6
@ nirvana-msu O uso de ^ a para entrar no modo de retorno de rolagem permite que você pagine o buffer de rolagem. Se os dados já se foram do buffer de rolagem, eles se foram. Você pode aumentar o tamanho desse buffer na inicialização. O que exatamente sobre a minha resposta você acha incorreta? Eu falo sobre aumentar o tamanho do buffer de rolagem, opyate fornece detalhes sobre como usá-lo.
William Pursell
2
Bem, ok, embora a pergunta não fosse realmente sobre a extensão do buffer de rolagem. O autor queria ver mais histórico do que o normalmente mostrado no console, e você pode ver mais histórico usando Ctrl+a+[. Sua resposta apenas faz parecer que não é possível, o que é enganoso.
Nirvana-msu
Isso não está funcionando em um mac. As outras respostas também não estão funcionando.
Ben
76

Supondo que você não tenha ultrapassado sua sequência de escape, pressione Ctrl-a [para entrar no modo de rolagem e use o usual Page-UP / Page-DOWN ou Ctrl-b / Ctrl-f para subir e descer.

A partir do wiki do Gentoo sobre o uso da tela

opiar
fonte
7
e ESC para o modo scrollback saída, IIRC
ninjalj
agora o wiki do gentoo é: wiki.gentoo.org/wiki/Screen
Rmatt 8/11/14
veja também este post sobre como (mais ou menos) rolagem com o mouse funcionando. O nome do post diz que é para o tmux, mas também cobre a tela
JonnyRaa
2
Ctrl+ A, Esctambém entra no modo de cópia / rolagem.
Serge Stroobandt
7

Você também pode executar seus comandos no scriptcomando que registrará a saída no disco. Ou você pode: command 2>&1 | tee /tmp/cmd.outpara registrar a saída para investigação futura, você queria um histórico de saída com tamanho (praticamente) infinito.

Seth Robertson
fonte
foi isso que acabei usando para minha tarefa. Funciona bem. Obrigado.
T. Brian Jones
6

Eu preciso ver a saída na tela "mais acima" do que na minha tela atual. CTRL + a deve me colocar no modo de rolagem dentro da Tela, mas não está funcionando.

Em complemento às outras respostas, gostaria de salientar que você pode adicionar no seu ~/.screenrcarquivo:

defscrollback 100000
termcapinfo xterm ti@:te@

Onde:

  • defscrollback 100000: defina o número padrão de linhas de retorno para 100000
  • termcapinfo xterm ti@:te@: permite a rolagem do terminal no xterm ou no PuTTY. ( FAQ da tela ; FAQ do PuTTY )
Franck Dernoncourt
fonte
Não está funcionando em um Mac. Nenhuma das respostas funciona aqui. Ainda vejo o tamanho da janela do Terminal. Mais adiante é apenas o screencomando e as coisas que eu fiz antes da tela. Eu também tentei screen -h, mesmo resultado. Alguma ideia?
Ben
@Ben desculpe, eu só tentei no Ubuntu.
Franck Dernoncourt
1
Ah, ele funciona com control+ ae, em ESCseguida, sou capaz de rolar dentro do texto com o cursor. O que não funciona é rolar com o mouse usando os controles deslizantes do Mac Terminal ao lado. Obrigado!
Ben
5

Você também pode alterar o tamanho do histórico de rolagem em uma tela em execução com a sequência CTRL-a :(entrar no modo de linha de comando da tela) e, scrollback 10000se desejar, 10k linhas de buffer de histórico. A alteração se aplica imediatamente.

Cuidado com o uso de memória se você usar muitas telas com buffers muito longos.

No entanto, como @William Pursell disse, com uma tela em execução no momento, depois que os dados saem do buffer, eles desaparecem.

Saïmonn
fonte
0

Dependendo do programa do terminal que você está usando, geralmente você pode alterar o Scrolling Buffer em Configurações. Eu sei que xtermvocê precisa habilitar a Rolagem primeiro, para definir o buffer como infinito.

Sua melhor aposta, no entanto, para scripts de log, seria redirecionar a saída padrão para um arquivo:

ScriptName >> OutputFile.txt

Fazendo desta maneira, você pode rolar e pesquisar livremente, além de manter um registro (ou seja, no caso de seu computador travar).

EDIT: Está próximo da solução de tubulação acima, no entanto, o redirecionamento de entrada padrão também pode ser útil em outros casos:

grep linux stackoverflow.txt > linuxquestions.txt

ou

cat linuxquestions.txt | grep buffersize > bufferquestions.txt

fonte
Observe que screen(1)não permite a rolagem do terminal. Essa é uma das principais características e uma das principais desvantagens.
sarnold
@sarnold É possível permitir a rolagem do terminal, consulte superuser.com/a/1336554/116475
Franck Dernoncourt
0

Usando um terminal macOS, não pude usar os controles deslizantes ao lado para ver o histórico do texto.

Consegui rolar com o cursor dentro do texto usando e depois de pressionar CRTL+ ae depois ESC.

E eu tive que adicionar isso para ~/.screenrcpermitir a rolagem do mouse de dentro da janela (ainda não com os controles deslizantes):

termcapinfo xterm* ti@:te@
Ben
fonte