2台のモニターのセットアップで端末を2番目の画面にミラーリングする方法は?


25

私は2モニター構成を使用して教えているため、デスクトップに表示されるものは、視聴者に表示されるものとは異なります。これはプレゼンテーションでは問題なく機能します。生徒がスライドを見ている間、メモを見ることができます。

しかし、シェルを実行するためにターミナルを使用したいです。ただし、端末はデスクトップまたは外部画面上にある必要があります。

端末の内容を両方の画面に同時に表示する方法はありますか?画面をミラーリングしたくありませんが、2モニターモードに固執します。

ヒントはありますか?

GnomeでUbuntuを使用しています。


まあ、デスクトップをミラーリングしてターミナルエミュレーターを表示することもできます。それが機能する限り、ターミナルを何らかの方法で表示したい場合は、これが1つの方法です。TTYについて具体的に話しているのですか?次に、screenとtmuxの2つの既存の回答が機能します。本当にあなたのニーズに依存
Sergiy Kolodyazhnyy

重複ではありません。この質問は特に端末に関するものであり、他のオプション(画面、tmuxなど)が利用可能であることを意味しますが、この質問は非常に密接に関連しており、答えもこの問題で機能するはずです。
-psmears

@Sergiy Kolodyazhnyy:プレゼンテーションが台無しになるため、デスクトップをミラーリングしたくありません。別の画面に切り替えると、スライドが画面に収まりません。スライドがデスクトップに表示されることがあります。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、コンテンツが記述されている間、コンテンツを継続的に表示するために使用できます。


注意事項

  • 1つの端末がファイルに書き込みを行い、もう1つの端末が読み取りを行うため、異なるユーザー間でこれを行うことができます!これは、非常に少ない権限で誰かが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 22倍の速度でプレイするだけです(これは2倍の値であるため-d .5、半分の速度でも可能です!)。


わあ、面白い!驚くべきことは、これが過去の閲覧、削除、色を完璧に処理しているように見えることです。これが可能だとは思わなかっただろうtail。(tmux編集セッションなどでも問題がないため、実際にはなお良いと思います。)
leftaroundabout

本当に面白いアプローチ!それはしばらくの間、ウィンドウサイズの変更を扱うことができるtmuxscreenすることはできません、私の知る限り。
ジャンダー

@leftaroundここでの魔法については、実際にtailはほとんど何もしていません。あなたのようなもので、スクリプトファイルを見ればvimまたはlessあなたはあなたの画面のスクロールや文字の配置を制御しようとしているので、それは醜いエスケープを追加表示されます。
scohe001

「エディタセッション」による@leftaroundaboutのようなものvimですか?私の知る限り、これはうまく機能しているようです(プレゼンテーション端末が個人端末よりも大きい場合)
-scohe001

35

1つのエレガントな方法はtmux、このタスクに使用することですsudo apt install tmux。以下に例を示します。

  • というセッションを作成しますmy_session(作成-d時にアタッチして削除します)。

    tmux new-session -d -s my_session
    
  • 1つ以上の新しいターミナルウィンドウを開き、同じセッションに接続します。

    tmux attach -t my_session
    
  • セッションタイプからデタッチするには:

    tmux detach
    

    または、Ctrl+bCtrlを押してから放し、を押しdます。

  • 接続せずにセッションにコマンドを送信するには:

    tmux send-keys -t my_session "echo Hello World!" 入る  Enter
  • exit内部から実行されたコマンドがセッションを閉じることに注意してください。


27

あなたが望むものを直接達成する方法は考えられません-おそらく他の人はできます。しかし、私は回避策を考えることができます。

でインストールscreensudo apt install screenます。2つのターミナルを起動します。最初のものでは、screen入力するナグ画面でEnterキーを押します。2番目に、と入力しscreen -xます。

それらは同じコンテンツを効果的に表示します。同じ端末ウィンドウではありませんが、同じコンテンツになります。

Screenは、切り替え可能な複数のウィンドウなど、さらに多くのトリックを実行できます。これは、利用可能な機能の簡単なチュートリアルです。


申し訳ありませんが、2つの答えを正しいものとして選択することはできません...
ジャンダー

1
それはまったく問題ありません:)私は他の答えを自分で支持しました:)
vidarlo

4

tmuxを使用するための上記のpa4080の回答に加えて、拡張バージョンを提案したいと思います。

tmateを試してみてください。Ubuntuパッケージとしても利用可能です。tmuxの代替として使用できますが、さらに多くのことができます。sshまたはhttp(読み取り専用または完全共有)経由でアクセスできるtmateパブリックサーバーを使用してターミナルセッションを複製できます。そのため、生徒はビーマープロジェクションを使用するか、パソコン/タブレットなどのブラウザでターミナルセッションの読み取り専用ビューを直接表示できます。


tmate面白そうです。:ここでは簡単なデモであるyoutube.com/watch?v=is_VpIx3Z4M
pa4080
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.