Когда я хочу задать вопрос на платформе Linux, мне всегда нужно предоставить скриншот текущей оболочки.Но снимок, загрузка, связывание стоит дорого, есть ли команда для извлечения текста прямо из текущей оболочки?
2 ответа
screen
может сделать это. Подключитесь к экземпляру screen
, запустите команды оболочки и получите "hardcopy" текущего терминала с помощью команды hardcopy
screen (введите Ctrl-A, затем нажмите "h"). Вывод обычно сохраняется в вашем домашнем каталоге в ~/hardcopy.1
, ~/hardcopy.2
и т.д.
Если вам нужно больше, чем на текущем экране, используйте screen
буфер прокрутки.
- Войдите в него (войдите в "режим копирования"), нажав Ctrl-A, затем Esc.
- Прокрутите вверх / вниз с помощью Ctrl-U / Ctrl-D или клавиш со стрелками или движения в стиле vim (j / k / l / h).
- Выйдите из "режима копирования", нажав клавишу Esc.
Используя "режим копирования", вы можете выделить блок текста и получить печатную копию, например:
- Войдите в "режим копирования" (нажмите Ctrl-A, затем Esc).
- Прокрутите до начала текста, который вы хотите скопировать.
- Нажмите пробел. Это отмечает начало.
- Прокрутите до конца текста, который вы хотите скопировать.
- Нажмите пробел снова. Это заполняет буфер копирования и выходит из "режима копирования".
- Запишите буфер копирования в файл (нажмите Ctrl-A, затем
>
). Буфер копирования записывается в/tmp/screen-exchange
. Скопируйте
/tmp/screen-exchange
в любой файл, который вам нравится:cp /tmp/screen-exchange ~/my.terminal.printout.txt
Вывод вашего терминала теперь находится в ~/my.terminal.printout.txt
.
Вы можете просто использовать команду сценария .
Взято из руководства:
Утилита сценария делает набор текста всего, что напечатано на вашем терминале.
Это полезно для студентов, которым нужна бумажная копия интерактивного сеанса в качестве доказательства задания, поскольку файл машинописного текста может быть распечатан позже с помощью lpr(1).Если указан файл аргумента, скрипт сохраняет весь диалог в файл. Если имя файла не указано, машинописный текст сохраняется в машинописном тексте.
Если задана команда аргумента, скрипт выполнит указанную команду с необязательным вектором аргумента вместо интерактивной оболочки.
Пример (информация в машинописном файле):
Script started on Mon Nov 2 21:13:17 2009
bash-3.2$ pwd
/Users/ricbax
bash-3.2$ ps
PID TTY TIME CMD
395 ttys000 0:00.02 -bash
425 ttys000 0:00.00 script
426 ttys001 0:00.01 /bin/bash -i
bash-3.2$ exit
exit
Script done on Mon Nov 2 21:13:44 2009