Як відобразити дзеркальний термінал на другому екрані в двох моніторах?


25

Я вчу використовувати налаштування двох моніторів, тому те, що я бачу на своєму робочому столі, відрізняється від того, що може бачити моя аудиторія. Це чудово працює для презентацій: поки студенти бачать слайди, я бачу свої замітки.

Але я хочу використовувати термінал для запуску оболонки. Однак термінал повинен бути на моєму робочому столі АБО на зовнішньому екрані.

Чи є спосіб відобразити вміст терміналу на обох екранах одночасно? Я не хочу дзеркально відображати екрани, але дотримуюся режиму двох моніторів.

Якісь підказки?

Я використовую Ubuntu з Gnome.


Ну, ви можете відобразити дзеркальний стіл і показати емулятор терміналу, це один із способів, якщо ви просто хочете показати термінал будь-яким способом, поки він працює. Ви конкретно говорите про TTY? Тоді два вже існуючих відповіді на екран і tmux можуть працювати. Дійсно залежить від ваших потреб
Сергій Колодяжний

Не дублікат, оскільки це питання стосується конкретних терміналів, а значить, доступні й інші варіанти (наприклад, екран, tmux), але це питання дуже тісно пов'язане, і відповідь там має працювати і для цієї проблеми.
psmears

@ Сергій Колодяжний: Я не хочу дзеркально виглядати на робочому столі, тому що це псується з презентацією. Коли я переключаюсь назад на окремі екрани, слайди більше не відповідають екрану; іноді слайди переходять на мій робочий стіл. tmux добре працює для мене.
Джандер

Відповіді:


15

Портативне рішення

Використовуйте 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постійно переглядати вміст за їх написанням.


Що слід зазначити

  • Оскільки один термінал записує у файл, а другий читає, це можна зробити між різними користувачами! Це означає, що ви можете мати когось, в кого не вдається ввійти з дуже невеликими дозволами, і поки ви розмістите файл сценарію там, де він може прочитати, ви все одно зможете їх представити. (тобто: якщо у вас є сервер, до якого ваші студенти мають доступ, ви можете створити .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на половину швидкості!).


Вау, цікаво! Дивовижне, що це, здається, бездоганно обробляє перегляд історії, видалення, кольори ... Не подумав би, що це можливо tail. (Я думаю tmux, що все-таки краще на практиці, оскільки він також не має проблем, наприклад, із сеансом редактора.)
приблизно

Дійсно цікавий підхід! Він може обробляти зміни розміру вікна, хоча tmuxі screenне можу, наскільки я можу сказати.
Джендер

@leftaroundabout магія тут насправді так мало, tailяк насправді робиться. Якщо ви подивитеся на файл сценарію з чимось подібним, vimабо lessви побачите, що він додає некрасиві втечі, оскільки він намагається контролювати прокрутку екрана та розміщення символів.
scohe001

@leftaroundabout "редакторська сесія" ти маєш на увазі щось подібне vim? Наскільки я можу сказати, це, здається, працює добре (доки термін презентації більший, ніж особистий термінал)
scohe001

35

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


27

Не можете придумати жодного способу безпосередньо досягти того, що ви хочете - можливо, можуть і інші. Але я можу придумати рішення.

Встановити за screenдопомогою sudo apt install screen. Запустіть два клеми. У першому введіть screenта натисніть клавішу Enter на екрані, який ви отримаєте. У другому введіть screen -x.

Вони ефективно показуватимуть однаковий зміст. Це не те саме вікно терміналу, але це буде той самий вміст.

Екран може робити і більше хитрощів, наприклад, декілька вікон, на які можна перемикатися. Це швидкий підручник доступних функцій.


Вибачте, що я не можу вибрати дві відповіді як правильну ...
Джандер,

1
Це зовсім чудово :) Я підтримав іншу відповідь :)
vidarlo

4

крім того pa4080 відповідь «s вище для використання tmux, я хотів би запропонувати розширену версію:

Спробуйте спробувати. Він також доступний як пакет Ubuntu. Хоча він може використовуватися як заміна tmux, він може зробити більше: я можу копіювати ваш термінальний сеанс за допомогою загальнодоступного сервера tmate, доступного через ssh або http (лише для читання або повного доступу). Таким чином, ваші студенти можуть використовувати або вашу проекцію променів, або мати перегляд лише для читання вашого термінального сеансу безпосередньо у своєму браузері на своєму персональному комп'ютері / планшеті тощо


tmateвиглядає цікаво. Ось проста демонстрація: youtube.com/watch?v=is_VpIx3Z4M
pa4080
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.