A solução portátil
Use script
! Por exemplo:
Terminal pessoal:
> script -f /tmp/lecture1.scrpt #use -F instead on MacOS
> ... #start doing things here!
Terminal de apresentação:
> #after this, terminal will continuously print whatever's written to personal terminal
> tail -F /tmp/lecture1.scrpt
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 (digitando exit
). No entanto, a -f
opção faz script
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 usar tail -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:
> 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
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:
> script -f -t 2>/tmp/lecture1.timing /tmp/lecture1.scrpt
E reproduza-o (com tempo!) Com:
> scriptreplay -t /tmp/lecture1.timing -s /tmp/lecture1.scrpt
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!).