J'enseigne en utilisant une configuration à deux moniteurs, donc ce que je vois sur mon bureau est différent de ce que mon public peut voir. Cela fonctionne très bien pour les présentations: pendant que les élèves voient les diapositives, je peux voir mes notes.
Mais je veux utiliser un terminal pour exécuter un shell. Cependant, le terminal doit être sur mon bureau OU sur l'écran externe.
Existe-t-il un moyen d'afficher le contenu du terminal sur les deux écrans simultanément? Je ne veux pas refléter les écrans, mais m'en tenir au mode deux moniteurs.
Des indices?
J'utilise Ubuntu avec Gnome.
Réponses:
La solution portable
Utilisez
script
! Par exemple:Terminal personnel:
Terminal de présentation:
Comment ça marche
La
script
commande copie tout ce qui est écrit sur l'écran du terminal (y compris ce que vous tapez!) Dans un fichier qu'elle prend comme paramètre. Normalement, tout est écrit dans le fichier après la fin du script (en tapantexit
). Cependant, l'-f
option faitscript
vider son tampon après chaque écriture (sur MacOS, ce sera-F
ou-t 0
). Ensuite, dans le terminal de présentation, vous pouvez utilisertail -F
pour voir le contenu en continu pendant qu'il est écrit.À noter
Puisqu'un terminal écrit dans un fichier et que l'autre lit, cela peut être fait entre différents utilisateurs! Cela signifie que vous pouvez avoir quelqu'un ssh avec très peu d'autorisations et tant que vous placez le fichier de script dans un emplacement qu'il peut lire, vous pourrez toujours le présenter. (c'est-à-dire: si vous avez un serveur auquel vos élèves ont accès, vous pouvez créer un fichier .scrpt qui ne serait lisible que pour eux afin qu'ils puissent suivre sur leurs propres écrans)
Compte tenu de la nature de cette méthode, un terminal conduit et l'autre ne fait que regarder.
Cette méthode a également l'avantage supplémentaire de vous permettre d'arrêter facilement la mise en miroir, de faire un travail secret et de recommencer la mise en miroir sans quitter votre terminal personnel. Cela peut être fait avec les éléments suivants:
Terminal personnel:
Plus de plaisir avec
script
!Le but de
script
est d'enregistrer votre session de terminal afin qu'elle puisse être lue plus tard (il se trouve que c'est le cas particulier de la lecture pendant l'enregistrement). Pour vous aider,script
a la-t
possibilité d'enregistrer le chronométrage avec ce qui est écrit à l'écran. Pour l'utiliser, démarrez votre session de script avec:Et rejouez (avec le timing!) Avec:
Vous avez un étudiant qui vous a envoyé un e-mail pour vous dire qu'il serait malade et ne pourrait pas faire de cours? Ou voulez-vous simplement donner à vos étudiants plus de matériel de cours? Si vous enregistrez votre voix pendant la conférence (et commencez le script à peu près en même temps que l'enregistrement), alors vos étudiants pourraient rejouer votre session terminale avec votre voix et obtenir l'expérience de conférence complète!
Vous avez un étudiant qui aime lire toutes ses vidéos à une vitesse 2x?
scriptreplay
prend un "diviseur" qui multiplie la vitesse de jeu par! Il suffit de passer-d 2
pour jouer à une vitesse 2x (notez que c'est une valeur double, donc vous pourriez même le faire-d .5
pour la moitié de la vitesse!).la source
tail
. (Je pense quetmux
c'est encore mieux dans la pratique, car cela n'a pas non plus de problème avec, par exemple, une session d'éditeur.)tmux
etscreen
ne le peut pas, pour autant que je sache.tail
fait vraiment. Si vous regardez un fichier de script avec quelque chose commevim
ouless
vous verrez qu'il ajoute des échappements moches car il essaie de contrôler le défilement de l'écran et le placement des caractères.vim
? Pour autant que je sache, cela semble fonctionner correctement (tant que le terminal de présentation est plus grand que le terminal personnel)Une façon élégante est d'utiliser
tmux
pour cette tâche:sudo apt install tmux
. Voici un exemple:Créez une session appelée
my_session
(supprimer-d
pour attacher lors de la création):Ouvrez une ou plusieurs nouvelles fenêtres de terminal et attachez-vous à la même session:
Pour vous détacher d'un type de session:
Ou appuyez sur Ctrl+b , puis relâchez Ctrlet appuyez sur d.
Pour envoyer une commande à la session sans l'attacher:
Notez que la
exit
commande, exécutée de l'intérieur, fermera la session.la source
Je ne peux imaginer aucun moyen d' atteindre directement ce que vous voulez - peut-être que d'autres le peuvent. Mais je peux penser à une solution de contournement.
Installez
screen
avecsudo apt install screen
. Démarrez deux terminaux. Dans le premier, tapezscreen
et appuyez sur Entrée sur l'écran de rappel que vous obtenez. Dans le second, tapezscreen -x
.Ils afficheront effectivement le même contenu. Ce n'est pas la même fenêtre de terminal, mais ce sera le même contenu.
L'écran peut également faire plus d'astuces, telles que plusieurs fenêtres entre lesquelles vous pouvez basculer. Ceci est un rapide tutoriel des fonctionnalités disponibles.
la source
En outre pa4080 la réponse de l' utilisation ci - dessus pour tmux, je voudrais proposer une version étendue:
Essayez tmate. Il est également disponible sous forme de package Ubuntu. Bien qu'il puisse être utilisé comme remplacement de tmux, il pourrait faire plus: je peux répliquer votre session de terminal en utilisant un serveur public tmate accessible via ssh ou http (lecture seule ou partage complet). Ainsi, vos élèves pourraient utiliser soit votre projection beamer, soit avoir une vue en lecture seule de votre session de terminal directement dans leur navigateur sur leur ordinateur / tablette personnel, etc.
la source
tmate
semble intéressant. Voici une démo simple: youtube.com/watch?v=is_VpIx3Z4M