Портативное решение
Используйте script
! Например:
Персональный терминал:
> script -f /tmp/lecture1.scrpt #use -F instead on MacOS
> ... #start doing things here!
Презентационный терминал:
> #after this, terminal will continuously print whatever's written to personal terminal
> tail -F /tmp/lecture1.scrpt
Как это работает
Команда script
копирует все, что написано на экране терминала (включая то, что вы вводите!) В файл, который он принимает в качестве параметра. Обычно все записывается в файл после того, как вы завершили скрипт (набрав exit
). Однако, -f
опция заставляет script
очищать свой буфер после каждой записи (в MacOS это будет -F
или -t 0
). Затем в терминале презентации вы можете использовать tail -F
для непрерывного просмотра содержимого в том виде, как оно написано.
Что стоит отметить
Поскольку один терминал выполняет запись в файл, а другой - чтение, это может быть сделано разными пользователями! Это означает, что вы можете иметь кого-то ssh с очень ограниченными правами доступа, и пока вы размещаете файл сценария в месте, которое он может прочитать, вы все равно сможете представить его. (то есть: если у вас есть сервер, к которому у ваших учеников есть доступ, вы можете создать файл .scrpt, который будет доступен только для чтения, чтобы они могли следить за ним на своих экранах)
Учитывая характер этого метода, один терминал управляет, а другой только наблюдает.
Этот метод также имеет дополнительный бонус, позволяющий вам легко прекратить зеркалирование, выполнить некоторую секретную работу и снова начать зеркалирование, не выходя из личного терминала. Это можно сделать с помощью следующего:
Персональный терминал:
> exit #end script session; stop writing to /tmp/lecture1.scrpt
> ... #do secret things not safe for student eyes!
> script -f -a /tmp/lecture1.scrpt #begin writing again with -a to append
Больше веселья с script
!
Цель script
- записать сеанс терминала, чтобы он мог быть воспроизведен позже (у нас просто есть особый случай воспроизведения во время записи). Чтобы помочь с этим, script
есть -t
возможность записывать время вместе с тем, что написано на экране. Чтобы использовать его, начните сеанс скрипта с:
> script -f -t 2>/tmp/lecture1.timing /tmp/lecture1.scrpt
И воспроизведите его (со временем!) С помощью:
> scriptreplay -t /tmp/lecture1.timing -s /tmp/lecture1.scrpt
Есть ли студент, который написал вам, что он будет болен и не сможет читать лекции? Или просто хотите дать своим студентам больше лекционного материала? Если вы записываете свой голос во время лекции (и запускаете сценарий примерно в то же время, что и запись), тогда ваши студенты могут воспроизвести вашу терминальную сессию своим голосом и получить полный опыт лекции!
Есть студент, который любит играть все свои видео в 2х скоростях? scriptreplay
принимает "делитель", который умножает скорость воспроизведения на! Просто перейдите -d 2
к игре с 2-кратной скоростью (обратите внимание, что это двойное значение, так что вы могли бы сделать даже -d .5
половину скорости!).