Я преподаю использование установки с двумя мониторами, поэтому что я вижу в своем рабочем столе, отличается от того, что видит моя аудитория. Это хорошо работает для презентаций: в то время как студенты видят слайды, я вижу свои примечания.
Но я хочу использовать терминал для выполнения оболочки. Однако терминал должен быть на моем рабочем столе ИЛИ на внешнем экране.
Существует ли способ показать терминальное содержание на обоих экранах одновременно? Я не хочу зеркально отражать экраны, но придерживаться двух режимов монитора.
Какие-либо подсказки?
Я использую Ubuntu с Gnome.
Использовать 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
Имейте студента, который послал Вам по электронной почте говорящий, что он будет болен и не может сделать лекцию? Или просто хотите дать Вашим студентам больше материала лекции? Если Вы записываете свою речь во время лекции (и запускаете сценарий приблизительно в то же время как запись), то Ваши студенты могли воспроизвести Ваш терминальный сеанс с Вашей речью и получить полный опыт лекции!
Имейте студента, которому нравится играть все его видео в 2x скорость? scriptreplay
берет "делитель", который это умножает, игра проносятся! Просто передача -d 2
для проигрывания в 2x, скорость (отмечают это, является двойным значением, таким образом, Вы могли даже сделать -d .5
для половины скорости!).
Один изящный путь состоит в том, чтобы использовать tmux
для этой задачи: sudo apt install tmux
. Вот пример:
Создайте названную сессию my_session
(удалите -d
присоединить во время создания):
tmux new-session -d -s my_session
Откройте одно или несколько новых окон терминала и присоединения к той же сессии:
tmux attach -t my_session
Отсоединяться от типа сессии:
tmux detach
Или нажмите Ctrl+b, затем выпустите Ctrl и нажмите d.
Отправить команду в сессию, не присоединяя к нему:
tmux send-keys -t my_session "echo Hello World!" ENTER Enter
Отметьте exit
команда, выполняемая изнутри, закроет сеанс.
Не может думать ни о каком способе непосредственно достигнуть того, что Вы хотите - возможно, другие могут. Но я могу думать об обходном решении.
Установка screen
с sudo apt install screen
. Запустите два терминала. В первом ввести screen
и нажмите Enter в экране ворчания, который Вы получаете. Во втором ввести screen -x
.
Они эффективно покажут то же содержание. Это не то же окно терминала, но это будет то же содержание.
Экран может сделать больше приемов также, таких как несколько окон, между которыми можно переключиться. Это - быстрое учебное руководство доступных функций.
помимо ответа pa4080 выше для использования tmux я хотел бы предложить расширенную версию:
Дайте tmate попытку. Его доступное как пакет Ubuntu также. В то время как это может использоваться в качестве tmux замена, это могло сделать больше: Я могу копировать Ваш терминальный сеанс с помощью tmate общедоступного сервера, доступного через ssh или http (или полная доля только для чтения). Таким образом, Ваши студенты могли использовать или Вашу beamer проекцию или иметь представление только для чтения Вашего терминального сеанса непосредственно в их браузере на их персональном компьютере / планшет и т.д.