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

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

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

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

Есть намеки?

Я использую 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 (только для чтения или полный общий доступ). Таким образом, ваши учащиеся могут использовать либо проекцию вашего проектора, либо иметь возможность просмотра сеанса терминала только для чтения прямо в браузере на своем ПК / планшете и т. Д.

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