Como ensino usando uma configuração de dois monitores, o que vejo na minha área de trabalho é diferente do que minha audiência pode ver. Isso funciona bem para apresentações: enquanto os alunos veem os slides, posso ver minhas anotações.
Mas eu quero usar um terminal para executar um shell. No entanto, o terminal deve estar na minha área de trabalho OU na tela externa.
Existe uma maneira de mostrar o conteúdo do terminal nas duas telas simultaneamente? Não quero espelhar as telas, mas ative o modo de dois monitores.
Alguma dica?
Estou usando o Ubuntu com Gnome.
Respostas:
A solução portátil
Use
script
! Por exemplo:Terminal pessoal:
Terminal de apresentação:
Como funciona
O
script
comando copia tudo o que foi gravado na tela do terminal (incluindo o que você digita!) Em um arquivo usado como parâmetro. Normalmente, tudo é gravado no arquivo após o término do script (digitandoexit
). No entanto, a-f
opção fazscript
com que o buffer seja liberado após cada gravação (no MacOS, será-F
ou-t 0
). Em seguida, no terminal de apresentação, você pode usartail -F
para ver o conteúdo continuamente conforme eles são gravados.Coisas a Nota
Como um terminal está gravando em um arquivo e o outro está lendo, isso pode ser feito entre diferentes usuários! Isso significa que você pode ter alguém com permissão ssh com muito poucas permissões e, desde que você coloque o arquivo de script em um local que eles possam ler, você ainda poderá apresentar a eles. (ou seja: se você tem um servidor ao qual seus alunos têm acesso, você pode criar um arquivo .scrpt que seria legível apenas para eles, para que possam seguir em suas próprias telas)
Dada a natureza desse método, um terminal está dirigindo e o outro está apenas assistindo.
Esse método também tem o bônus adicional de facilitar a interrupção do espelhamento, fazer algum trabalho secreto e começar a mirar novamente tudo sem sair do seu terminal pessoal. Isso pode ser feito com o seguinte:
Terminal pessoal:
Mais diversão com
script
!O objetivo
script
é gravar sua sessão do terminal para que ela possa ser reproduzida mais tarde (é o caso especial de reproduzir durante a gravação). Para ajudar com isso,script
tem a-t
opção de gravar o tempo junto com o que está gravado na tela. Para usá-lo, inicie sua sessão de script com:E reproduza-o (com tempo!) Com:
Tem um aluno que lhe enviou um e-mail dizendo que ele ficaria doente e não pode dar palestras? Ou apenas deseja dar aos alunos mais material para palestras? Se você gravar sua voz durante a palestra (e iniciar o script quase ao mesmo tempo que a gravação), seus alunos poderão reproduzir sua sessão terminal com sua voz e obter a experiência completa da palestra!
Tem um aluno que gosta de reproduzir todos os vídeos em velocidade 2x?
scriptreplay
pega um "divisor" que multiplica a velocidade de reprodução! Basta passar-d 2
para jogar na velocidade 2x (observe que esse é um valor duplo, então você pode fazer até-d .5
meia velocidade!).fonte
tail
. (Acho quetmux
ainda melhor é, na prática, porque também não tem nenhum problema com, por exemplo, uma sessão de editor.)tmux
escreen
não pode, tanto quanto eu posso dizer.tail
está realmente fazendo. Se você olhar para um arquivo de script com algo parecidovim
ouless
o ver adicionar fugas feias, já que está tentando controlar a rolagem da tela e o posicionamento dos caracteres.vim
? Tanto quanto eu posso dizer, isso parece funcionar bem (desde que o terminal de apresentação é maior do que o terminal de pessoal)Uma maneira elegante é usar
tmux
para esta tarefa:sudo apt install tmux
. Aqui está um exemplo:Crie uma sessão chamada
my_session
(remova-d
para anexar durante a criação):Abra uma ou mais novas janelas de terminal e conecte-se à mesma sessão:
Para desanexar de um tipo de sessão:
Ou pressione Ctrl+b , depois solte Ctrle pressione d.
Para enviar um comando para a sessão sem anexá-lo:
Observe que o
exit
comando, executado de dentro, fechará a sessão.fonte
Não consegue pensar em nenhuma maneira de alcançar diretamente o que deseja - talvez outros possam. Mas consigo pensar em uma solução alternativa.
Instale
screen
comsudo apt install screen
. Inicie dois terminais. No primeiro, digitescreen
e pressione enter na tela do chat que você obtém. No segundo, digitescreen -x
.Eles mostrarão efetivamente o mesmo conteúdo. Não é a mesma janela do terminal, mas terá o mesmo conteúdo.
A tela também pode fazer mais truques, como várias janelas nas quais você pode alternar. Este é um tutorial rápido dos recursos disponíveis.
fonte
além da resposta do pa4080 acima para usar o tmux, gostaria de sugerir uma versão estendida:
Dê uma chance ao tmate. Também está disponível como pacote Ubuntu. Embora possa ser usado como substituto do tmux, ele pode fazer mais: eu posso replicar sua sessão do terminal usando um servidor público tmate acessível via ssh ou http (compartilhamento somente leitura ou compartilhamento total). Assim, seus alunos podem usar sua projeção beamer ou ter uma visão somente leitura da sua sessão do terminal diretamente no navegador deles no computador / tablet pessoal etc.
fonte
tmate
parece interessante. Aqui está uma demonstração simples: youtube.com/watch?v=is_VpIx3Z4M