Зберегти поточний прокрутку терміналу у файл?


24

Я шукав відповіді на це і не знаходив нічого, що змушує мене думати, що це неможливо, але ...

Чи можливо зберегти поточний буфер прокрутки терміналу Gnome у файл?

Я знаю, що я можу зробити щось на зразок command > output.txtперенаправити весь вихід на файл або command | tee output.txtрозділити вихід на термінал, а також на файл. Що я намагаюся зробити - це зафіксувати це після факту. Я хотів би зберегти вміст прокрутки поточної вкладки терміналу у файл.


kittyце одна термінальна програма, яка може це зробити, на жаль, шрифти виглядають жахливо (без субпіксельної візуалізації)
jberryman

Дякую, @jberryman Добре знати.
Карл Вільбур

Відповіді:


37

Трохи погравши, я виявив, що ви можете:

  • triple-click останній рядок
  • хіт shift + home
  • shift + click перша лінія
  • скопіюйте ctrl + shift + c(або right-click> «Копіювати»)

Тепер вставте його в текстовий файл ... або, використовуючи xselви можете засунути буфер обміну в новий файл, просто відкривши нову вкладку і виконайте такі дії:

xsel -o > out.txt

(Щоб встановити xseldo sudo apt-get install xsel)


5
Виділення можна зробити простіше: Edit-> Select All.
Егмонт

3
Це чудова відповідь, тому що ви змушуєте усвідомити, що ви можете скористатись triple-click the last lineта shift + home or the scrollbarперейти до потрібного місця для початку виводу.
Фараон шеф-кухаря

2
Попередження: Не намагайтеся це робити з великим відступником (багато мегабайт), оскільки він може повісити X (трапилося зі мною).
Кевін Кокс

Маючи багато мегабайт, очікується повільна обробка. Будьте терплячі і нехай комп'ютер працює. "Дайте секунду! Це йде в космос! Ви можете дати йому секунду, щоб повернутися з космосу ?!"
Карл Вільбур

Я просто спробував скопіювати великий прокрутки (вихід rsync з резервного копіювання двох дискових дисків 2 ТБ протягом ночі), використовуючи метод Edit-> Select Allдля фіксації виводу. Зараз пройшло 25-30 хвилин, і термінал Gnome все ще замкнений. Використовуючи Byobu, я зміг запустити, topпобачивши, що Gnome Terminal все ще працює (збільшується час процесора); В даний час використовується понад 4,176 г оперативної пам’яті і повільно піднімається. Так, так, з дуже великою прокруткою, це займе певний час. X все ще працює (і Chrome, YouTube, Nautilus, Byobu тощо), але терміналу Gnome знадобиться хвилина. Я повинен був запланувати краще.
Карл Вільбур

2

scriptкоманда підходить, коли потрібно зберегти сеанс терміналу у файлі та відобразити його пізніше. Коли ви телефонуєте, scriptвін запускає вашу оболонку, а коли ви закінчите, просто введіть вихід. Все буде у typescriptфайлі, якщо не вказано інше.

Наприклад,

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 2015年10月27日 星期二 11时37分55秒

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 2015年10月27日 星期二 11时38分18秒

У файлі машинопису можуть бути контрольні символи, наприклад, з команди lscomand, тому використовуйте cat typescript | col -b > outputfile.txtкоманду для перенаправлення чистого виводу на файл


5
Дякую, але це щось, що потрібно зробити, перш ніж зібрати цінну інформацію у своєму терміналі. Мені потрібно було фактичне рішення.
Карл Вільбур

1
Це дуже добре знати, хоча. Я дам це в майбутньому.
Карл Вільбур

@KarlWilbur :) Я впевнений, що вам це буде корисно. Я його дуже використовую для домашнього завдання з програмування. Насправді є можливість скинути те, що на екрані, на консолях TTY, але gnome-термінал трохи складніше
Сергій Колодяжний

@SergiyKolodyazhnyy я намагаюся реалізувати це у своєму скрипті python, але я не можу вийти зі сценарію, виконуючи "os.system (" exit "). Однак він робить вихід з терміналу і зберігає вихід у файл.
mtkilic

@mtkilic scriptКоманда запускає окремий процес, тому ваш сценарій python, який є батьком підпроцесу, чекає, коли дитина вийде. Він призначений більше для інтерактивних сесій, але якщо ви хочете записати сеанс в інтерпретаторі Python, scriptспочатку запускайте команду, а другий запускайте інтерпретатор. Команда також повинна мати -cпрапор, щоб ви могли дзвонити, script -c pythonале двічі перевірити man script.
Сергій Колодяжний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.