私は2モニター構成を使用して教えているため、デスクトップに表示されるものは、視聴者が見ることができるものとは異なります。これはプレゼンテーションでは問題なく機能します。生徒がスライドを見ている間、メモを見ることができます。
しかし、シェルを実行するためにターミナルを使用したいです。ただし、端末は外部画面のデスクトップORにある必要があります。
端末の内容を両方の画面に同時に表示する方法はありますか?画面をミラーリングしたくありませんが、2モニターモードに固執します。
ヒントはありますか?
GnomeでUbuntuを使用しています。
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
を実行することもできます!)。
エレガントな方法の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
コマンドがセッションを閉じることに注意してください。
直接あなたが望むものを達成する方法を考えることはできません-他の人ができるかもしれません。しかし、私は回避策を考えることができます。
Sudo apt install screen
でscreen
をインストールします。 2つのターミナルを起動します。最初のものでは、screen
と入力し、表示されるナグ画面でEnterキーを押します。 2番目のものには、screen -x
と入力します。
それらは同じコンテンツを効果的に表示します。同じ端末ウィンドウではありませんが、同じコンテンツになります。
Screenは、切り替え可能な複数のウィンドウなど、さらに多くのトリックを実行できます。 これは簡単なチュートリアルです 利用可能な機能の。
上記の pa408 のtmuxを使用する回答に加えて、拡張バージョンを提案したいと思います。
Tmateを試してみてください。 Ubuntuパッケージとしても利用可能です。 tmuxの代替として使用できますが、さらに多くのことができます。sshまたはhttp(読み取り専用または完全共有)を介してアクセスできるtmateパブリックサーバーを使用してターミナルセッションを複製できます。そのため、生徒はビーマープロジェクションを使用するか、パソコン/タブレットなどのブラウザで直接ターミナルセッションの読み取り専用ビューを表示できます。