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.


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.


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


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.


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 )

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.


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

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@
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.