Я учу использовать установку с двумя мониторами, поэтому то, что я вижу на своем рабочем столе, отличается от того, что видит моя аудитория. Это хорошо работает для презентаций: пока студенты видят слайды, я вижу свои заметки.
Но я хочу использовать терминал для запуска оболочки. Однако терминал должен быть на моем рабочем столе ИЛИ на внешнем экране.
Есть ли способ показать содержимое терминала на обоих экранах одновременно? Я не хочу отражать экраны, но придерживаюсь режима двух мониторов.
Есть намеки?
Я использую Ubuntu с Gnome.
Ответы:
Портативное решение
Используйте
script
! Например:Персональный терминал:
Презентационный терминал:
Как это работает
Команда
script
копирует все, что написано на экране терминала (включая то, что вы вводите!) В файл, который он принимает в качестве параметра. Обычно все записывается в файл после того, как вы завершили скрипт (набравexit
). Однако,-f
опция заставляетscript
очищать свой буфер после каждой записи (в MacOS это будет-F
или-t 0
). Затем в терминале презентации вы можете использоватьtail -F
для непрерывного просмотра содержимого в том виде, как оно написано.Что стоит отметить
Поскольку один терминал выполняет запись в файл, а другой - чтение, это может быть сделано разными пользователями! Это означает, что вы можете иметь кого-то ssh с очень ограниченными правами доступа, и пока вы размещаете файл сценария в месте, которое он может прочитать, вы все равно сможете представить его. (то есть: если у вас есть сервер, к которому у ваших учеников есть доступ, вы можете создать файл .scrpt, который будет доступен только для чтения, чтобы они могли следить за ним на своих экранах)
Учитывая характер этого метода, один терминал управляет, а другой только наблюдает.
Этот метод также имеет дополнительный бонус, позволяющий вам легко прекратить зеркалирование, выполнить некоторую секретную работу и снова начать зеркалирование, не выходя из личного терминала. Это можно сделать с помощью следующего:
Персональный терминал:
Больше веселья с
script
!Цель
script
- записать сеанс терминала, чтобы он мог быть воспроизведен позже (у нас просто есть особый случай воспроизведения во время записи). Чтобы помочь с этим,script
есть-t
возможность записывать время вместе с тем, что написано на экране. Чтобы использовать его, начните сеанс скрипта с:И воспроизведите его (со временем!) С помощью:
Есть ли студент, который написал вам, что он будет болен и не сможет читать лекции? Или просто хотите дать своим студентам больше лекционного материала? Если вы записываете свой голос во время лекции (и запускаете сценарий примерно в то же время, что и запись), тогда ваши студенты могут воспроизвести вашу терминальную сессию своим голосом и получить полный опыт лекции!
Есть студент, который любит играть все свои видео в 2х скоростях?
scriptreplay
принимает "делитель", который умножает скорость воспроизведения на! Просто перейдите-d 2
к игре с 2-кратной скоростью (обратите внимание, что это двойное значение, так что вы могли бы сделать даже-d .5
половину скорости!).источник
tail
. (Я думаюtmux
, что на практике все еще лучше, потому что у него также нет проблем, например, с сессией редактора.)tmux
аscreen
может и не может.tail
на самом деле делает. Если вы посмотрите на файл сценария с чем-то вроде этогоvim
илиless
увидите, что он добавляет ужасные экранированные символы, поскольку он пытается управлять прокруткой экрана и размещением символов.vim
? Насколько я могу судить, похоже, это работает нормально (до тех пор, пока презентационный терминал больше, чем персональный терминал)Один элегантный способ заключается в использовании
tmux
для выполнения этой задачи:sudo apt install tmux
. Вот пример:Создайте сеанс с именем
my_session
(удалить,-d
чтобы прикрепить во время создания):Откройте одно или несколько новых окон терминала и присоедините к тому же сеансу:
Чтобы отсоединиться от сеанса, введите:
Или нажмите Ctrl+b , затем отпустите Ctrlи нажмите d.
Чтобы отправить команду сеансу, не подключаясь к нему:
Обратите внимание, что
exit
команда, выполненная изнутри, закроет сеанс.источник
Не могу придумать способ напрямую достичь того, чего ты хочешь - возможно, другие могут. Но я могу придумать обходной путь.
Установить
screen
сsudo apt install screen
. Запустите два терминала. В первом из них введитеscreen
и нажмите ввод на появившемся экране. Во втором введитеscreen -x
.Они будут эффективно показывать один и тот же контент. Это не то же самое окно терминала, но это будет тот же контент.
Экран может делать больше трюков, таких как несколько окон, между которыми вы можете переключаться. Это краткое руководство по доступным функциям.
источник
Помимо ответа pa4080 выше, чтобы использовать tmux, я хотел бы предложить расширенную версию:
Дайте tmate попробовать. Он также доступен в виде пакета Ubuntu. Хотя его можно использовать в качестве замены tmux, он может сделать больше: я могу реплицировать ваш сеанс терминала, используя общедоступный сервер tmate, доступный через ssh или http (только для чтения или полный общий доступ). Таким образом, ваши учащиеся могут использовать либо проекцию вашего проектора, либо иметь возможность просмотра сеанса терминала только для чтения прямо в браузере на своем ПК / планшете и т. Д.
источник
tmate
выглядит интересно. Вот простая демонстрация: youtube.com/watch?v=is_VpIx3Z4M