web-dev-qa-db-ja.com

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

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

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

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

ヒントはありますか?

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

25
Jander

ポータブルソリューション

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 2を渡して2倍の速度で再生します(これは2倍の値なので、半分の速度で-d .5を実行することもできます!)。

15
scohe001

エレガントな方法の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+b、リリース Ctrl そしてを押しますd

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

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

36
pa4080

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

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

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

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

28
vidarlo

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

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

4
pdr