Ich unterrichte mit einem Zwei-Monitor-Setup, sodass sich das, was ich auf meinem Desktop sehe, von dem unterscheidet, was mein Publikum sehen kann. Dies funktioniert gut für Präsentationen: Während die Schüler die Folien sehen, kann ich meine Notizen sehen.
Aber ich möchte ein Terminal verwenden, um eine Shell auszuführen. Das Terminal muss sich jedoch auf meinem Desktop ODER auf dem externen Bildschirm befinden.
Gibt es eine Möglichkeit, den Terminalinhalt auf beiden Bildschirmen gleichzeitig anzuzeigen? Ich möchte die Bildschirme nicht spiegeln, sondern mich an den Zwei-Monitor-Modus halten.
Irgendwelche Hinweise?
Ich benutze Ubuntu mit Gnome.
Antworten:
Die tragbare Lösung
Verwenden
script
! Beispielsweise:Persönliches Terminal:
Präsentationsterminal:
Wie es funktioniert
Der
script
Befehl kopiert alle auf dem Terminalbildschirm geschriebenen Daten (einschließlich der von Ihnen eingegebenen Daten) in eine Datei, die als Parameter verwendet wird. Normalerweise wird alles in die Datei geschrieben, nachdem Sie das Skript beendet haben (durch Eingabeexit
). Die-f
Option bewirkt jedoch, dassscript
der Puffer nach jedem Schreibvorgang geleert wird (unter MacOS ist dies-F
oder-t 0
). Anschließend können Sie im Präsentationsterminaltail -F
den Inhalt fortlaufend anzeigen, während er geschrieben wird.Dinge zu beachten
Da ein Terminal in eine Datei schreibt und das andere liest, kann dies zwischen verschiedenen Benutzern erfolgen! Dies bedeutet, dass Sie jemanden mit sehr wenigen Berechtigungen haben können. Solange Sie die Skriptdatei an einem Ort ablegen, an dem sie gelesen werden kann, können Sie sie weiterhin präsentieren. (dh wenn Sie einen Server haben, auf den Ihre Schüler Zugriff haben, können Sie eine .scrpt-Datei erstellen, die nur für sie lesbar ist, damit sie auf ihren eigenen Bildschirmen mitlesen können.)
In Anbetracht der Art dieser Methode fährt ein Terminal und das andere sieht nur zu.
Diese Methode hat auch den zusätzlichen Vorteil, dass Sie die Spiegelung ganz einfach beenden, geheime Arbeiten ausführen und wieder mit dem Spiegeln beginnen können, ohne Ihr persönliches Terminal zu verlassen. Dies kann folgendermaßen geschehen:
Persönliches Terminal:
Mehr Spaß mit
script
!Der Zweck von
script
ist es, Ihre Terminalsitzung aufzuzeichnen, damit sie später wiedergegeben werden kann (wir sind nur der Spezialfall der Wiedergabe während der Aufzeichnung). Um dies zu unterstützen,script
besteht die-t
Möglichkeit, das Timing zusammen mit den auf dem Bildschirm angezeigten Informationen aufzuzeichnen. Um es zu benutzen, starte deine Skriptsitzung mit:Und spielen Sie es ab (mit Timing!) Mit:
Hat ein Student, der Ihnen eine E-Mail geschickt hat, gesagt, dass er krank ist und keinen Vortrag halten kann? Oder möchten Sie Ihren Schülern einfach mehr Vorlesungsmaterial geben? Wenn Sie Ihre Stimme während der Vorlesung aufzeichnen (und das Skript ungefähr zur gleichen Zeit wie die Aufzeichnung starten), können Ihre Schüler Ihre Terminalsitzung mit Ihrer Stimme wiedergeben und die gesamte Vorlesungserfahrung nutzen!
Haben Sie einen Schüler, der alle seine Videos mit 2x Geschwindigkeit abspielen möchte?
scriptreplay
Nimmt man einen "Divisor", multipliziert dieser die Spielgeschwindigkeit mit! Übergeben Sie einfach-d 2
, um mit doppelter Geschwindigkeit zu spielen (beachten Sie, dass dies ein doppelter Wert ist, sodass Sie sogar die-d .5
halbe Geschwindigkeit erreichen können!).quelle
tail
. (Ich denke, estmux
ist in der Praxis immer noch besser, weil es auch kein Problem mit z. B. einer Redaktionssitzung gibt.)tmux
undscreen
kann nicht, soweit ich das beurteilen kann.tail
wirklich tut. Wenn man sich eine Skriptdatei mit so etwas wievim
oderless
Sie werden sehen , es das Hinzufügen hässlich entkommt , da es versucht , Ihren Bildschirm scrollen und Charakter Platzierung zu steuern.vim
? Soweit ich dasEine elegante Art und Weise zu verwenden ist
tmux
für diese Aufgabe:sudo apt install tmux
. Hier ist ein Beispiel:Erstellen Sie eine Sitzung mit dem Namen
my_session
(entfernen Sie sie-d
, um sie während der Erstellung anzuhängen):Öffnen Sie ein oder mehrere neue Terminalfenster und stellen Sie eine Verbindung zu derselben Sitzung her:
So trennen Sie sich von einem Sitzungstyp:
Oder drücken Sie Ctrl+b , lassen Sie dann los Ctrlund drücken Sie d.
So senden Sie einen Befehl an die Sitzung, ohne ihn anzuhängen:
Beachten Sie
exit
, dass der von innen ausgeführte Befehl die Sitzung beendet.quelle
Kann mir auf keinen Fall direkt vorstellen erreichen, was Sie wollen - vielleicht können es auch andere. Aber ich kann mir einen Workaround vorstellen.
Installieren Sie
screen
mitsudo apt install screen
. Starten Sie zwei Terminals.screen
Geben Sie in das erste Feld ein und drücken Sie die Eingabetaste. Im zweiten geben Sie einscreen -x
.Sie zeigen effektiv den gleichen Inhalt. Es ist nicht dasselbe Terminalfenster, aber es wird derselbe Inhalt sein.
Der Bildschirm kann auch weitere Tricks ausführen, z. B. mehrere Fenster, zwischen denen Sie wechseln können. Dies ist eine kurze Einführung in die verfügbaren Funktionen.
quelle
Neben der obigen Antwort von pa4080 auf die Verwendung von tmux möchte ich eine erweiterte Version vorschlagen:
Probieren Sie es aus. Es ist auch als Ubuntu-Paket erhältlich. Es kann zwar als tmux-Ersatz verwendet werden, kann aber noch mehr: Ich kann Ihre Terminalsitzung mithilfe eines öffentlichen tmate-Servers replizieren, auf den über ssh oder http (schreibgeschützt oder vollständige Freigabe) zugegriffen werden kann. So können Ihre Schüler entweder Ihre Beamer-Projektion verwenden oder eine schreibgeschützte Ansicht Ihrer Terminalsitzung direkt in ihrem Browser auf ihrem PC / Tablet usw. haben.
quelle
tmate
sieht interessant aus. Hier ist eine einfache Demo: youtube.com/watch?v=is_VpIx3Z4M