Digamos que eu tenho uma sessão de tela em execução no momento em que estou interagindo através da massa. Percebi que o buffer de rolagem é muito pequeno e gostaria de aumentá-lo sem iniciar uma nova sessão de tela.
Existe uma maneira de fazer isso?
linux
gnu-screen
Zach
fonte
fonte
screen -h <numlines>
Respostas:
A página de manual explica que você pode entrar no modo de linha de comando em uma sessão em execução, digitando Ctrl+ Ae :, em seguida, emitindo o
scrollback <num>
comando.fonte
<num>
é o número de linhas de scrollbackscrollback <num>
ele não ajudará mais a estender o buffer, você precisará refazer o último comando para obter todo o buffer do histórico.Imprensa Ctrl-a, em seguida, :e tipo, em seguida,
para obter um buffer de 10000 linhas, por exemplo.
Você também pode definir o número padrão de linhas de rolagem adicionando
ao seu
~/.screenrc
arquivo.Para rolar (se o seu terminal não permitir, por padrão), pressione Ctrl-a ESC e, em seguida, role (com o habitual Ctrl-fpara a página seguinte ou Ctrl-apara a página anterior, ou apenas com a roda do mouse / dois dedos). Para sair do modo de rolagem, basta pressionarESC .
Outra dica: Ctrl-a imostra sua configuração atual do buffer.
fonte
byobu-screen
no Ubuntu 12.04 parece definir o defscrollback para 10000startup_message off' and 'defscrollback 5000' into my newly created
~ / .screenrc` e está recebendo a primeira linha, mas a segunda parece ser ignorada.Há uma quantidade mínima de buffer "padrão" quando você inicia uma sessão de 'tela' na sua 'sessão de massa'. Eu uso muito telas no meu trabalho, para que eu possa dizer que você não terá uma combinação de buffer 'screen' e buffer 'putty' dentro da sessão 'screen'.
Definir o número padrão de linhas de rolagem adicionando
defscrollback 10000
ao seu~/.screenrc
arquivo é a solução correta.A propósito, eu uso "defscrollback 200000" no meu
./screenrc
arquivo.fonte
Como já mencionado, temos duas maneiras!
Configuração interativa por tela (sessão)
E é feito de forma interativa! E entre em vigor imediatamente!
CTRL + Aseguido por :E nós digitamos
scrollback 1000000
E batemosENTERVocê se desconecta da tela e volta! Será sempre o mesmo.
Você abre outra nova tela! E o valor é redefinido novamente para o padrão! Portanto, não é uma configuração global!
E a configuração padrão permanente
O que é feito adicionando
defscrollback 1000000
a.screenrc
(em casa)defscrollback
e nãoscrollback
(def significa padrão)O que você precisa saber é se o arquivo não for criado! Você cria !
E você adiciona
defscrollback 1000000
a ele!Ou em um comando
(se ainda não tiver sido criado)
Entrando em vigor
Quando você adiciona o padrão a
.screenrc
! A tela já em execução na reconexão não terá efeito! o.screenrc
corrida na criação da tela! E isso faz sentido! Assim como em um console normal e lançamento de shell!E todas as novas telas criadas terão o valor definido!
Verificando o tamanho efetivo do buffer da tela
Para verificar o tipo CTRL + Aseguido pori
E o resultado será tão
É importante ressaltar que o tamanho do buffer é o número após o sinal +
(na ilustração, defino-o como 1 000 000)
Observe também que quando você o altera interativamente! O efeito é imediato e assume o valor padrão!
Rolagem
CTRL+ Aseguido por ESC(para entrar no modo de cópia).
Em seguida, navegue com Up, DownouPgUp PgDown
E ESCnovamente para sair desse modo.
(Informações extras: para copiar o hit ENTERe começar a selecionar!ENTER novamente para copiar! Simples e legal)
Agora o buffer é maior!
E isso resume os detalhes importantes!
fonte
AVISO: definir esse valor muito alto pode causar um soluço significativo no sistema. Quanto maior o valor definido, mais memória virtual é alocada para o processo de tela ao iniciar a sessão de tela. Defino meu ~ / .screenrc como "defscrollback 123456789" e, quando iniciei uma tela, todo o meu sistema congelou por uns bons 10 minutos antes de voltar ao ponto em que consegui interromper o processo da tela (que consumia 16,6 GB de VIRT mem até então).
fonte
Para a posteridade, essa resposta está incorreta, conforme observado por Steven Lu. No entanto, deixando o texto original.
Resposta original:
Para aqueles que chegam via pesquisa na web (vários anos depois) ...
Ao usar a tela, seu buffer de rolagem é uma combinação dos dois
screen
buffer de retorno de rolagem das duas respostas anteriores, bem como do buffer de rolagem de massa de vidraceiro.Certifique-se de aumentar o buffer de rolagem da massa de vidraceiro, bem como o buffer de rolagem da tela; caso contrário, a própria janela da massa de vidraceiro não permitirá que você role para trás para ver o
screen
histórico de rolagem da sua rolagem (supere rolando na tela comctrl+a->ctrl+u
)Você pode alterar o limite de rolagem da massa de vidraceiro na categoria "Janela" nas configurações. Sair e reabrir uma sessão de massa para sua tela não a fechará (supondo que você feche a janela de massa e não digite
exit
), conforme solicitado pelo OP.Espero que ajude a identificar por que o aumento do buffer de rolagem da tela não resolve o problema de alguém.
fonte