Comment puis-je afficher davantage de mon historique dans Screen sous Linux?

54

J'exécutais des scripts pendant la nuit à partir de la ligne de commande (à l'intérieur de Screen sur une instance de Linux EC2) et des erreurs que je ne suivais pas se produisaient. Je souhaite "faire défiler vers le haut" ou afficher davantage de l'historique dans Screen, mais je n'arrive pas à trouver les commandes qui fonctionnent.

J'ai besoin de voir la sortie à l'écran "plus haut" que sur mon écran actuel. CTRL + a est supposé me mettre en mode de défilement dans Screen, mais cela ne fonctionne pas.

T. Brian Jones
la source
history | less, more? Ou vous demandez comment garder plus d'histoire?
historygardera que les commandes ont été tirées dans shell. Il demande plus d'informations sur l'exploitation forestière
<Shift>+ <PgUp>est la seule option. Et il a aussi une limite (au plus 500 dernières lignes, je suppose).
Jeudi
J'ai besoin de voir la sortie à l'écran "plus haut" que sur mon écran actuel. CTRL + a est supposé me mettre en mode de défilement dans Screen, mais cela ne fonctionne pas pour moi.
T. Brian Jones
1
Juste Ctrl-aest screenl'évasion de. La séquence complète de touches pour entrer en mode défilement serait Ctrl-a [, comme dit opyate. Ctrl-a ESCmarche aussi pour moi, je ne me souviens plus lequel est standard / couramment utilisé.
ninjalj

Réponses:

32

Lorsque vous démarrez l'écran, vous pouvez spécifier la taille du tampon de défilement avec -h afin de pouvoir l'augmenter à partir de la valeur par défaut de 100 lignes. Cependant, avec un écran en cours d'exécution, une fois que les données ont quitté la mémoire tampon, elles sont parties.

William Pursell
la source
3
Ceci est tout simplement faux. La réponse de @opyate apporte une solution
nirvana-msu
6
@ nirvana-msu L'utilisation de ^ a pour passer en mode défilement vous permet de faire défiler le tampon de défilement vers le haut. Si les données sont déjà parties du tampon de défilement, elles le sont également. Vous pouvez augmenter la taille de ce bufer au démarrage. Que pensez-vous de ma réponse, est-ce exact? Je parle d'augmenter la taille du tampon de défilement, opyate donne des détails sur son utilisation.
William Pursell
2
Bon, d'accord, bien que la question ne concerne pas vraiment l'extension du tampon de défilement. L’auteur voulait voir plus d’historique que ce qui est normalement affiché dans la console, et vous pouvez voir plus d’historique en utilisant Ctrl+a+[. Votre réponse donne simplement l'impression que ce n'est pas possible, ce qui est trompeur.
Nirvana-msu
Cela ne fonctionne pas sur un mac. Les autres réponses ne fonctionnent pas non plus.
Ben
76

En supposant que vous n’ayez pas annulé votre séquence d’échappement, vous pouvez appuyer sur Ctrl-a [pour passer en mode défilement, puis utiliser les fonctions habituelles Page-UP / Page-DOWN ou Ctrl-b / Ctrl-f pour monter et descendre.

Depuis le wiki Gentoo sur l'utilisation de l'écran

opyat
la source
7
et ESC pour quitter le mode de défilement, IIRC
ninjalj
maintenant le wiki gentoo est: wiki.gentoo.org/wiki/Screen
Rmatt
Voir aussi cet article pour savoir comment (en quelque sorte) faire défiler avec la souris en marche. Le nom de l'article dit que c'est pour tmux mais il couvre également l'écran
JonnyRaa
2
Ctrl+ A, Escentre également en mode copie / défilement.
Serge Stroobandt
7

Vous pouvez également exécuter vos commandes dans la scriptcommande qui enregistrera la sortie sur le disque. Ou vous pouvez: command 2>&1 | tee /tmp/cmd.outenregistrer la sortie pour une investigation future dans laquelle vous vouliez un historique de sortie (pratiquement) de taille infinie.

Seth Robertson
la source
C'est ce que j'ai fini par utiliser pour ma tâche. Fonctionne très bien. Merci.
T. Brian Jones
6

J'ai besoin de voir la sortie à l'écran "plus haut" que sur mon écran actuel. CTRL + a est supposé me mettre en mode de défilement dans Screen, mais cela ne fonctionne pas.

En complément des autres réponses, je vous ferai remarquer que vous pouvez ajouter dans votre ~/.screenrcdossier:

defscrollback 100000
termcapinfo xterm ti@:te@

où:

  • defscrollback 100000: définir le nombre par défaut de lignes de défilement sur 100000
  • termcapinfo xterm ti@:te@: autoriser le défilement des terminaux dans xterm ou PuTTY. ( écran FAQ ; PuTTY FAQ )
Franck Dernoncourt
la source
Ne travaille pas sur un Mac. Aucune des réponses ne fonctionne ici. Je ne peux toujours voir que la taille de la fenêtre du terminal. Plus loin, il n'y a que la screencommande et ce que j'ai fait avant l'écran. J'ai aussi essayé screen -h, même résultat. Des idées?
Ben
@Ben désolé, je ne sais pas, je n'ai essayé que sur Ubuntu.
Franck Dernoncourt
1
Ah, ça marche avec control+ aet puis ESCet puis je peux faire défiler le texte avec le curseur. Ce qui ne fonctionne pas, c'est le défilement à l'aide de la souris à l'aide des curseurs Mac Terminal situés sur le côté. Merci!
Ben
5

Vous pouvez également modifier la taille de l'historique de défilement dans un écran en cours d'exécution avec la séquence CTRL-a :(entrer en mode ligne de commande), puis, scrollback 10000si vous souhaitez 10 000 lignes de mémoire tampon d'historique. Le changement s'applique immédiatement.

Faites attention à l'utilisation de la mémoire si vous utilisez de nombreux écrans avec des tampons très longs.

Cependant, comme @William Pursell l'a dit, avec un écran en cours d'exécution, une fois que les données ont quitté la mémoire tampon, elles sont parties.

Saïmonn
la source
0

Selon le programme de terminal que vous utilisez, vous pouvez généralement modifier le tampon de défilement sous Paramètres. Je sais que pour xtermvous devez d'abord activer le défilement, vous pouvez ensuite régler le tampon sur infini.

Cependant, votre meilleur pari pour la journalisation des scripts serait de rediriger la sortie standard vers un fichier:

ScriptName >> OutputFile.txt

En procédant ainsi, vous pouvez faire défiler et rechercher librement ainsi que conserver un enregistrement (par exemple, en cas de panne de votre ordinateur).

EDIT: Ceci est proche de la solution de tuyauterie ci-dessus, mais rediriger l'entrée standard peut également être utile dans d'autres cas:

grep linux stackoverflow.txt > linuxquestions.txt

ou

cat linuxquestions.txt | grep buffersize > bufferquestions.txt

la source
Notez que screen(1)cela ne permet pas le défilement terminal. C'est à la fois l'une de ses principales caractéristiques et l'un de ses principaux inconvénients.
Sarnold
@sarnold Il est possible d'autoriser le défilement terminal, voir superuser.com/a/1336554/116475
Franck Dernoncourt
0

Utilisation d’un terminal macOS Je ne pouvais pas utiliser les curseurs latéraux pour afficher l’historique du texte.

J'ai été capable de faire défiler avec le curseur à l'intérieur du texte en utilisant et après je frappe CRTL+ aet puis ESC.

Et j'ai dû ajouter ceci à ~/.screenrcpour permettre le défilement de la souris depuis l'intérieur de la fenêtre (toujours pas avec les curseurs):

termcapinfo xterm* ti@:te@
Ben
la source