45 votes

Enregistrer l'historique des défilements du terminal actuel dans un fichier ?

J'ai cherché une réponse à cela et je n'ai rien trouvé ce qui me fait penser que ce n'est pas possible mais ...

Est-il possible de sauvegarder le tampon de défilement actuel de Gnome Terminal dans un fichier ?

Je sais que je peux faire quelque chose comme commande > sortie.txt pour rediriger toute la sortie vers un fichier, ou commande | tee sortie.txt pour diviser la sortie vers le terminal ainsi que vers un fichier. Ce que j'essaie de faire, c'est de capturer cela après coup. J'aimerais sauvegarder le contenu du défilement de l'onglet terminal actuel dans un fichier.

60voto

Danilo Campos Points 4760

Après avoir joué un peu, j'ai découvert que vous pouvez :

  • triple-clic sur la dernière ligne
  • appuyez sur shift + home
  • shift + clic sur la première ligne
  • copier avec ctrl + shift + c (ou clic-droit > 'Copier')

Maintenant collez-le dans un fichier texte ...ou, en utilisant xsel, vous pouvez pousser votre presse-papiers dans un nouveau fichier en ouvrant simplement un nouvel onglet et en faisant :

xsel -o > out.txt

(Pour installer xsel, faites sudo apt-get install xsel)

7voto

Sergiy Kolodyazhnyy Points 97292

script command is appropriate when you want to save a terminal session to a file and display it later. When you call script it launches your shell, and when you are done, just type in exit. Everything will be in typescript file unless you specify otherwise.

For instance,

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015 10 27  11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit
Script done, file is typescript
xieerqi@eagle:~$ cat typescript 
Script started on 20151027  113755

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015 10 27  11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit

Script done on 20151027  113818

There may be control characters in the typescript file though ,such as from the ls comand, so use cat typescript | col -b > outputfile.txt command to redirect clean output to file

5voto

Kronos Points 951

Vous pouvez également le faire après coup. Vous recherchez la mémoire de la console virtuelle (man vcs contient plus d'informations et quelques exemples).

Dans votre cas, si vous travaillez sur un terminal virtuel via /dev/tty1, le code suivant vous permettra de stocker le backlog dans un fichier output-file:

cat /dev/vcs1 >output-file

Notez que les numéros de périphériques tty1 et vcs1 correspondent.

Édit: Je tiens à préciser que cela ne fonctionne que pour les terminaux virtuels et non pour les pseudo-terminaux (les pseudo-terminaux sont utilisés pour mettre en œuvre des émulateurs de terminal comme gnome-terminal, xterm, etc. voir man pts pour plus d'informations).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X