Как иметь терминал, зеркально отраженный на второй экран в установке с двумя мониторами?

Я преподаю использование установки с двумя мониторами, поэтому что я вижу в своем рабочем столе, отличается от того, что видит моя аудитория. Это хорошо работает для презентаций: в то время как студенты видят слайды, я вижу свои примечания.

Но я хочу использовать терминал для выполнения оболочки. Однако терминал должен быть на моем рабочем столе ИЛИ на внешнем экране.

Существует ли способ показать терминальное содержание на обоих экранах одновременно? Я не хочу зеркально отражать экраны, но придерживаться двух режимов монитора.

Какие-либо подсказки?

Я использую Ubuntu с Gnome.

25
задан 24 April 2018 в 09:56

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

Имейте студента, который послал Вам по электронной почте говорящий, что он будет болен и не может сделать лекцию? Или просто хотите дать Вашим студентам больше материала лекции? Если Вы записываете свою речь во время лекции (и запускаете сценарий приблизительно в то же время как запись), то Ваши студенты могли воспроизвести Ваш терминальный сеанс с Вашей речью и получить полный опыт лекции!

Имейте студента, которому нравится играть все его видео в 2x скорость? scriptreplay берет "делитель", который это умножает, игра проносятся! Просто передача -d 2 для проигрывания в 2x, скорость (отмечают это, является двойным значением, таким образом, Вы могли даже сделать -d .5 для половины скорости!).

15
ответ дан 23 November 2019 в 01:10

Один изящный путь состоит в том, чтобы использовать 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 команда, выполняемая изнутри, закроет сеанс.

35
ответ дан 23 November 2019 в 01:10

Не может думать ни о каком способе непосредственно достигнуть того, что Вы хотите - возможно, другие могут. Но я могу думать об обходном решении.

Установка screen с sudo apt install screen. Запустите два терминала. В первом ввести screen и нажмите Enter в экране ворчания, который Вы получаете. Во втором ввести screen -x.

Они эффективно покажут то же содержание. Это не то же окно терминала, но это будет то же содержание.

Экран может сделать больше приемов также, таких как несколько окон, между которыми можно переключиться. Это - быстрое учебное руководство доступных функций.

27
ответ дан 23 November 2019 в 01:10

помимо ответа pa4080 выше для использования tmux я хотел бы предложить расширенную версию:

Дайте tmate попытку. Его доступное как пакет Ubuntu также. В то время как это может использоваться в качестве tmux замена, это могло сделать больше: Я могу копировать Ваш терминальный сеанс с помощью tmate общедоступного сервера, доступного через ssh или http (или полная доля только для чтения). Таким образом, Ваши студенты могли использовать или Вашу beamer проекцию или иметь представление только для чтения Вашего терминального сеанса непосредственно в их браузере на их персональном компьютере / планшет и т.д.

4
ответ дан 23 November 2019 в 01:10

Другие вопросы по тегам:

Похожие вопросы: