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