existe-t-il un moyen de sauvegarder ce qui est imprimé sur l'écran avec l'écran gnu?

9

J'aime enregistrer tout ce que je fais sur la ligne de commande, par exemple lorsque je mets à niveau quelque chose et que je veux lire comment la mise à niveau s'est déroulée, etc.

Habituellement, avec Mac OSX et Terminal, vous pouvez revenir en arrière autant que vous le souhaitez et enregistrer avec Cmd-S. Mais lorsque je suis sur SSH en utilisant l'écran gnu, je ne peux pas revenir en arrière directement depuis le terminal.

Comment puis-je enregistrer sur disque tout ce qui se passe dans une session écran? Peut-être par défaut (chaque session crée automatiquement un fichier sur le disque ...)

Merci!

luca
la source

Réponses:

7

Il y a une fonction de connexion screen. Démarrez-le lorsque vous commencez screenpar faire screen -L(ou de l'intérieur screen). Ou, de l'intérieur également screen, vous pouvez appuyer sur Ctrl- a : H.

Si vous souhaitez avoir la connexion par défaut, ajoutez la ligne suivante à votre ~/.screenrcfichier:

deflog on

Vous voudrez peut-être définir le nom de fichier en utilisant quelque chose comme:

logfile /tmp/screenlog.%n
En pause jusqu'à nouvel ordre.
la source
1
On ne devrait peut-être pas le stocker sur / tmp, car il est généralement nettoyé au redémarrage (par exemple en raison d'une panne de courant).
maxelost
@maxelost: C'est quelque chose à considérer. Mais ce n'était qu'un exemple. Le but était d'inclure un répertoire absolu car le comportement par défaut est de créer le fichier journal dans le répertoire courant. De plus, les screensessions (même détachées) ne survivent pas au redémarrage.
pause jusqu'à nouvel ordre.
2

Option 1: examinez la commande de script. "script homme"

"Le script crée un texte dactylographié de tout ce qui est imprimé sur votre terminal. Il est utile pour les étudiants qui ont besoin d'un enregistrement papier d'une session interactive comme preuve d'un devoir, car le fichier dactylographié peut être imprimé plus tard avec lpr"

Fondamentalement, tapez "script" (sans guillemets) - faites votre travail et tapez exit une fois pour mettre fin à la session.

Option 2: utilisez le mode "copie papier" de l'écran. 'Crtl-a' puis 'h' Ceci enregistrera la session en cours dans un fichier.

Remarque: l'écran GNU a la possibilité de défiler. Utilisez 'crtl-]' (crochet droit) pour passer en mode copie, puis 'ctrl-b' et 'ctrl-f' pour déplacer p et descendre une page à la fois.

Sirex
la source
1

Vous voudrez utiliser l'opération «log», généralement liée à Ctrl-a H. Cela ouvre un nouveau fichier appelé screenlog. NN est le numéro de fenêtre. Si le fichier existe, la sortie est ajoutée au fichier. Toutes les sorties de cette fenêtre sont enregistrées dans le journal des écrans. N fichier jusqu'à ce que vous désactiviez en appuyant à Ctrl-a Hnouveau sur . Vous pouvez également obtenir cette fonctionnalité avec Ctrl-a :log. Vous pouvez modifier le nom à l'aide de la logfile {filename}commande. Le fichier est placé dans le répertoire dans lequel l'écran a été démarré pour la première fois, mais cela peut être modifié avec la commande logfile ou avec chdir [{directory}].

Notez que ce n'est pas la même chose que la copie papier ou le tampon de défilement. Il s'agit de la même fonctionnalité que le programme script (1), mais liée à une seule fenêtre et sans appeler un nouveau programme.

Si vous souhaitez enregistrer l'intégralité du contenu du tampon de défilement, utilisez Ctrl-a ] g <space> G <space> Ctrl-a :writebuf Ceci enregistre le tampon de défilement dans le fichier / tmp / screen-exchange. si vous ne souhaitez enregistrer qu'une partie, changez le «g» et le «G» pour d'autres touches de mouvement.

Arcege
la source