Comment obtenir la commande «top» pour encapsuler sa sortie?

20

La colonne "commande" est tronquée par la largeur de l'écran et je ne parviens pas à en voir la dernière partie.

J'ai essayé de réduire la taille de la police pour que je puisse voir une partie plus longue de la ligne de commande, mais cela ne fonctionnera toujours pas.

sureshvv
la source
Quelle commande génère votre sortie?
Je sais que cela ne répond pas directement à votre question, mais je chercherais htopune interface beaucoup plus agréable top. Il vous permettra de faire défiler avec les touches fléchées.
Pouvez-vous expliquer pourquoi la réduction de la taille de la police n'a pas fonctionné?
Stephen Quan
cela fonctionne mais pas assez pour moi de voir toute la ligne .. la ligne de commande est assez longue
sureshvv

Réponses:

10

top -bcn1 -w512

La solution élégante est d'utiliser l'option . Selon la page de manuel, la largeur maximale est de 512 caractères, vous aurez donc besoin d'une solution différente pour tout ce qui dépasse cela. Vraisemblablement, vous voulez également voir toute la longueur des commandes, utilisez donc l' option. Nous devons exécuter en "mode batch", ou il continuera à couper les commandes avec un "+". Le mode batch crée un désordre car il imprime tous les travaux à chaque seconde, nous pouvons donc utiliser l' option pour imprimer une seule instance.-w [number]-ctop-b-n1

Voir le haut de l' homme page pour plus d' informations.

boof
la source
1
Vous devez vérifier la page de manuel de votre système; ces options n'existent pas dans toutes les versions de top.
Scott
dans mon ubuntu 18.04 man topdit -c :Command-line/Program-name toggle ... Starts top with the last remembered 'c' state reversed. ce qui signifie -cn'afficherait les commandes complètes qu'à chaque 2e exécution.
gilad mayani Il y a
21

Le champ de commande est par défaut tronqué automatiquement pour une meilleure lecture.

Vous devez courir

top -c

pour afficher la commande complète, puis en fonction des capacités de votre fenêtre de console, vous pourrez faire défiler vers la droite et voir la commande complète.

porteur de l'anneau
la source
Cela affiche simplement la ligne de commande complète par défaut - ou en fait tout ce qui peut être rendu visible sur une seule ligne. Je ne vois aucune capacité de défilement. Voulez-vous dire que je dois juste régler ma fenêtre sur une plus grande largeur?
Oui, pour commencer. Quel type de fenêtre utilisez-vous? est-ce un terminal de commande Putty, Dos, un terminal Gnome? n'importe lequel d'entre eux vous permettra de faire défiler horizontalement.
porteur de l'anneau
ne pas voir le défilement horizontal dans PuTTY
bbodenmiller
8

Comme l'a dit Daniel Arndt, vous pouvez également utiliser htop au lieu de top. Il est disponible sur toutes les distributions de nos jours, et il fournit de meilleurs chiffres (en particulier pour l'utilisation de la mémoire)

Il est également beaucoup plus facile à utiliser et plus agréable à voir, même s'il est limité aux couleurs du terminal. Vous pouvez faire défiler vers la droite pour voir la commande complète, par exemple, ou vous pouvez tuer un processus avec un simple F9. Vous pouvez également voir l'arborescence complète avec la touche «t».

Coren
la source
Cela ne répond pas à la question mais est une suggestion pour un programme différent. htopest un bon programme, mais la question concernait la sortie de top. Veuillez rester sur le sujet.
drumfire
2
@drumfire offrant des alternatives est parfaitement valable et sur le sujet. Cela devrait être évident du fait que le PO a accepté cette réponse il y a près de trois ans.
terdon
3

C'est hacky, mais vous pouvez modifier le comportement en ajustant les variables shell $ COLUMNS et $ LINES avant de lancer top:

export COLUMNS=$((COLUMNS*2))
export LINES=$((LINES/2))
top

Cela convaincra le shell que vous avez deux fois plus de colonnes à écrire (et la moitié autant de lignes, pour compenser cela). Si vous utilisez bash, vous pouvez l'exécuter à l' shopt -s checkwinsizeavance, ce qui lui dira de recalculer ces valeurs une fois que top se ferme. Sinon, vous pouvez simplement sauvegarder / restaurer ces valeurs (ou simplement redimensionner la fenêtre).

Christopher Neylan
la source
0

Vous pouvez concevoir un écran de commandes comprenant top -b -n 1 et ps , par exemple:

while (true)
do
  clear
  top -b -n 1
  ps
  sleep 5
done

Cela gérera l'affichage:

  • PID
  • CPU
  • Ligne de commande non tronquée
Stephen Quan
la source
0

Vous voudrez peut-être essayer cela. Cela imprimera la seule instance de toplargeur et de sortie fixes afin que vous puissiez obtenir la sortie.

top -n1 -w80

Vous pouvez même diriger la sortie vers un fichier.

top -n1 -w80 > top_output.txt
kabirbaidhya
la source
0

Essayer d'augmenter la largeur de sortie de l'écran en utilisant la commande ci-dessous.

export COLUMNS = 197 top -u -cbn1> top.output

Ici, 197 est juste un varaible. Essayez d'augmenter selon vos besoins et les résultats détaillés dont vous avez besoin.

Amit Gupta
la source