Sous un shell UNIX, comment obtenir un effet similaire à la watch
commande, mais avec la pagination pour pouvoir faire défiler la sortie si elle occupe plus d'un écran?
En d'autres termes, je veux un programme qui soit à watch
ce qui less
est à cat
.
À titre d'exemple, disons que je voulais regarder la sortie de qstat
, je pourrais utiliser
watch qstat
pour regarder la sortie de qstat, mais cela ne peut que montrer le premier écran.
Avec une version de pagination de watch
, je serais en mesure de se déplacer dans la sortie car elle est toujours mise à jour en continu par watch
. Existe-t-il actuellement un moyen de le faire avec les utilitaires existants?
less
quand vous pouvez simplement utilisercat
et une plus grande fenêtre?Réponses:
Plutôt que de modifier la commande 'watch', utilisez screen!
Par exemple, disons que vous devez pouvoir voir 300 lignes de hauteur et 100 caractères de largeur et vous déplacer. Après avoir démarré l'écran, forcez la taille ainsi:
Maintenant, lancez votre commande watch. Vous pouvez ensuite utiliser
C-a <ESC>
pour feuilleter autour de l'écran.Malheureusement, l'affichage ne se rafraîchit pas en mode copie. Mais si vous souhaitez ajuster la section de la fenêtre que vous visualisez, le moyen le plus simple peut être de réexécuter les commandes hauteur / largeur car par défaut votre terminal affiche le coin inférieur droit de la fenêtre virtuelle.
la source
C-
c'est akactrl-
Vous pouvez essayer ceci:
tandis que vmstat; dors 1; fait | Moins
remplacez vmstat par qstat et ajustez le sommeil à vos besoins
la source
less
, ce qui signifie que vous devez continuer à faire défiler pour voir la dernière sortie.Multitail: http://www.vanheusden.com/multitail/
Exemple:
Faites défiler en arrière en appuyant sur «b» et page / flèche haut / bas.
la source
OK, j'ai essayé un peu une
watchless
fonction. C'est un peu rude, et cela ne semble pas encore fonctionner complètement, mais voici:Vous devez utiliser manuellement la
R
clé en moins pour que l'affichage soit mis à jour.Il semble fonctionner pour
watchless date
mais pas pourwatchless qstat
ouwatchless pstree
, qui sont tous deux vides. Des idées?la source
mv
ce second fichier à la lecture de fichier parless
commemv
est atomique. Sinon, vousless
pourriez penser que le fichier a disparu si une actualisation est demandée en même temps que l'écriture du fichier avec"$@" > $out
. Vous devez également écrire une fois dans le fichier de sortie avant de démarrer la boucle.Je ne vois pas comment cela pourrait être implémenté lorsque le contenu de la ligne change et
watch
reviendrait à la première ligne toutes les 2 secondes même si vous pouviez faire défiler vers le bas.Certaines solutions de contournement sont les suivantes:
watch 'qstat | tail -n40'
pour afficher la sortie de qstat à partir de la 40e ligne à partir du baswatch 'qstat | grep jsmith'
pour récupérer la sortie afin que les lignes qui vous intéressent soient toujours dans le premier écran.Notez que vous devez mettre les commandes autour du tuyau entre guillemets simples - sinon vous dirigerez la sortie de
watch
, pas la sortie deqstat
.la source
Pour continuer sur la réponse d'enkrs,
regarder 'qstat | tête -300 | queue -15 '
vous amènera des pages arbitraires dans la sortie de qstat.
la source
Voici un script assez grossier qui semble fonctionner pour plusieurs commandes que j'ai lancées dessus
Utilisé comme tel:
Étant plutôt pédant, la transition entre les rafraîchissements n'est pas aussi fluide que je le souhaiterais. Naturellement, étant un script simple, il ne prend pas en charge le surlignage de diff (watch -d). En outre, l'analyse des arguments d'entrée peut être mieux effectuée.
la source
Que diriez-vous de juste: queue -f
la source
J'implémente un script python simple pour satisfaire cette demande, nommé "watchall"
l'obtenir par: pip install watchall
remplacez la montre par watchall et profitez de l'écran défilant. maintenant, il ne prend en charge que les indicateurs -n et -d.
la source
tu peux essayer:
puis dans votre fichier, vous devriez voir la sortie appendend (je n'ai pas de boîte linux maintenant pour tester cela)
la source
file
de la même sortie. Cela ne répond certainement pas à la question initiale.