Sob um shell UNIX, como posso obter um efeito semelhante ao watch
comando, mas com paginação para que eu possa rolar pela saída se ela ocupar mais de uma tela?
Em outras palavras, eu quero um programa que é o watch
que less
é necessário cat
.
Como exemplo, digamos que eu queria assistir a saída de qstat
, eu poderia usar
watch qstat
para assistir a saída do qstat, mas isso só mostra a primeira tela.
Com uma versão de paginação de watch
, eu seria capaz de me mover na saída, pois ela ainda é continuamente atualizada por watch
. Existe alguma maneira de fazer isso no momento com os utilitários existentes?
less
quando você pode simplesmente usarcat
e uma janela maior?Respostas:
Em vez de modificar o comando 'watch', use screen!
Por exemplo, digamos que você precise ver 300 linhas de altura e 100 caracteres de largura e mover-se em torno disso. Após a tela inicial, force o tamanho da seguinte maneira:
Agora inicie o seu comando watch. Você pode usar
C-a <ESC>
a página ao redor da tela.Infelizmente, a exibição não é atualizada no modo de cópia. Mas se você deseja ajustar a seção da janela que está visualizando, a maneira mais fácil pode ser executar novamente os comandos de altura / largura, pois, por padrão, seu terminal mostra o canto inferior direito da janela virtual.
fonte
C-
é akactrl-
Você pode tentar isso:
enquanto vmstat; dorme 1; feito | Menos
substitua o vmstat pelo qstat e ajuste o sono às suas necessidades
fonte
less
, o que significa que você precisa continuar rolando para ver a saída mais recente.Multitail: http://www.vanheusden.com/multitail/
Exemplo:
Role para trás pressionando 'b' e página / seta para cima / para baixo.
fonte
OK, eu tive um pouco de ir a uma
watchless
função. É um pouco difícil, e ainda não parece funcionar completamente, mas aqui vai:Você precisa usar manualmente a
R
tecla menos para obter a atualização do visor.Parece funcionar para
watchless date
mas não parawatchless qstat
ouwatchless pstree
, os quais são mostrados em branco. Alguma ideia?fonte
mv
esse segundo arquivo no arquivo lidoless
comomv
atômico. Caso contrário,less
poderia pensar que o arquivo desapareceu se uma atualização for solicitada ao mesmo tempo em que o arquivo está sendo gravado"$@" > $out
. Você também deve gravar no arquivo de saída uma vez antes de iniciar o loop.Não vejo como isso pode ser implementado à medida que o conteúdo da linha é alterado e
watch
redefiniria a primeira linha a cada 2 segundos, mesmo que você pudesse rolar para baixo.Algumas soluções alternativas são:
watch 'qstat | tail -n40'
para mostrar a saída do qstat começando na 40ª linha da parte inferiorwatch 'qstat | grep jsmith'
grep a saída para que as linhas de seu interesse estejam sempre na primeira tela.Observe que você precisa colocar os comandos ao redor do pipe entre aspas simples - caso contrário, você canalizará a saída de
watch
, e não a saída deqstat
.fonte
Para continuar na resposta de enkrs,
assistir 'qstat | cabeça -300 | cauda -15 '
você receberá páginas arbitrárias na saída do qstat.
fonte
Aqui está um script bastante bruto que parece funcionar para vários comandos que eu joguei nele
Usado como tal:
Sendo bastante pedante, a transição entre as atualizações não é tão suave quanto eu gostaria que fosse. Naturalmente, por ser um script simples, ele não suporta o destaque do diff (watch-d). Além disso, a análise dos argumentos de entrada pode ser feita melhor.
fonte
Que tal apenas: tail -f
fonte
Eu implementei um script python simples para atender a essa solicitação, chamada "watchall"
obtê-lo por: pip install watchall
substitua o relógio por watchall e aproveite a tela rolável. agora ele suporta apenas sinalizadores -n e -d.
fonte
podes tentar:
então, no seu arquivo, você deverá ver a saída em anexo (não tenho uma caixa Linux agora para testar isso)
fonte
file
repetidamente com a mesma saída. Certamente não aborda a questão original.