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 comando script
copia tudo escrito na tela do terminal (incluindo o que você digita!) em um arquivo que ele usa como parâmetro. Normalmente, tudo é gravado no arquivo depois que você termina o script (digitando exit
). No entanto, a opção -f
faz com que script
limpe seu buffer após cada gravação (no MacOS, isso será -F
ou -t 0
). Em seguida, no terminal de apresentação, você pode usar tail -F
para ver o conteúdo continuamente conforme ele é escrito.
Coisas a serem observadas
-
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 ssh com poucas permissões e, desde que coloque o arquivo de script em um local que ele possa ler, você ainda poderá apresentá-lo. (ex: se você tem um servidor que seus alunos têm acesso, você pode criar um arquivo .scrpt que só seria legível para eles, para que eles pudessem acompanhar em suas próprias telas)
-
Dada a natureza desse método, um terminal está dirigindo e o outro apenas assistindo.
-
Este método também tem a vantagem adicional de tornar mais fácil para você parar o espelhamento, fazer algum trabalho secreto e começar a mirrar tudo novamente 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 de script
é gravar sua sessão de terminal para que ela possa ser reproduzida mais tarde (nós, por acaso, é o caso especial da reprodução enquanto ela está gravando). Para ajudar com isso, script
tem a opção -t
para registrar o tempo junto com o que está escrito 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
Peça a um aluno que lhe envie um e-mail dizendo que ele estaria doente e não poderá fazer uma palestra? Ou apenas quer dar aos seus alunos mais material de aula? Se você gravar sua voz durante a palestra (e começar o roteiro mais ou menos ao mesmo tempo que a gravação), seus alunos poderão reproduzir sua sessão de terminal com sua voz e obter a experiência completa de palestra!
Tem um aluno que gosta de reproduzir todos os seus vídeos a uma velocidade de 2x? scriptreplay
recebe um "divisor" que multiplica a velocidade de reprodução por! Basta passar -d 2
para jogar com velocidade de 2x (note que este é um valor duplo, então você pode até fazer -d .5
pela metade da velocidade!).