Como definir o terminal Linux NÃO para rolar automaticamente quando um programa em execução envia dados para o terminal? [duplicado]

1

É possível configurar o terminal NOT para rolar até a última linha quando o programa que está atualmente em execução envia dados na saída padrão?

Eu tenho um programa que está em execução e está constantemente enviando dados para stdout, atualizando assim o terminal e o terminal rola automaticamente para a última linha e não me permite ler os dados que foram enviados antes ou outros comandos que eu tenho anteriormente executar.

    
por yoyo_fun 24.12.2016 / 19:47

2 respostas

3

Depende do programa do terminal que você está usando. Você deve ser capaz de encontrar essas informações na documentação para isso. A maioria é baseada em torno do original xterm , que é o que eu uso, então vou responder com base nisso.

Para fazer isso de forma interativa em um xterm existente, você pode usar o menu no botão "Control middle mouse". Há um item no menu para "Rolar para baixo na saída do TTY", que é inicialmente marcado por padrão, basta clicar nele e ele removerá a marca de seleção e o xterm não irá mais pular para o fundo sempre que houver saída.

Se você quiser que um xterm específico seja iniciado dessa forma, existe uma opção de linha de comando -si que será iniciada desmarcada. Se você quiser que este seja o padrão para todos os xterm s, você pode definir o recurso scrollTtyOutput (onde quer que você defina seus recursos X, e você pode usar a estrutura Xresource para aplicar somente a alguns xterm s) .

Eu sabia que todas essas opções existiam e usei man xterm agora mesmo para obter os detalhes. Um dos grandes recursos do UNIX (seguido em grande parte no Linux) é que toda a documentação está bem ali. Você só tem que olhar para isso.

    
por 25.12.2016 / 03:36
2

Você pode impedir temporariamente a rolagem pressionando CTRL-S no teclado, o que pausará a saída até você pressionar CTRL-Q. Isso permitirá que você leia o que está atualmente na tela, mas também pode impedir que o programa continue dependendo de como ele funciona.

Não estou ciente de nenhuma configuração real para o próprio shell que impeça a tela de rolar para a saída mais recente, mas você pode obter um resultado equivalente ao enviar a saída para menos. Algo como

    my_command | less 
    
por 24.12.2016 / 19:57