a script
comando permite que você grave e reproduza a atividade em seu terminal. Isso é útil quando você deseja criar uma referência das etapas executadas ou está criando um tutorial para outros seguirem..
script
gera texto digitado de todos os comandos que você executou. Funciona colocando você em um sub-shell que registra tudo o que você executa. Sua sessão será salva como texto simples quando você sair do shell. Isto faz script
mais confiável do que fluxos de entrada redirecionados.
Uso básico
a script
O comando pode ser executado sem nenhum argumento:
roteiro
Uma nova sessão de captura começará. Sua sessão de terminal será salva em ./typescript
em seu diretório de trabalho. Você pode especificar um arquivo diferente, dando script
um argumento:
script example_session
Use seu shell para executar o script que deseja gravar. Quando você terminar, pressione Ctrl+D
Ou escreva exit
para sair do sub-shell. Você retornará à sua sessão shell principal.
Agora você pode inspecionar o log da sessão que foi criado:
exemplo_sessão de gato
Você verá o resultado do seu script
sessão intercalada com anotações entre colchetes. Essas anotações são usadas por script
para registrar detalhes sobre o próprio terminal e os eventos que ocorrem dentro dele.
Uma vez que os arquivos de log são texto simples, você pode manipulá-los livremente em seu editor favorito. Apenas corte as linhas que você não deseja reter ou que outras pessoas não deveriam ver.
Isso é útil se sua sessão gerar inadvertidamente informações potencialmente confidenciais ou se você quiser excluir caracteres estranhos do registro.. script
registra tudo o que acontece em seu terminal, incluindo teclas de retrocesso, novas linhas e personagens de controle, alguns dos quais podem não ser necessários no texto datilografado final.
script
mostra o nome do arquivo que você está escrevendo no início e no final da sua sessão. Você pode desativar esta saída adicionando o -q
sinalizar para ativar o modo silencioso.
a SHELL
A variável de ambiente é lida ao determinar o shell para ramificar para o procedimento interno. Quando a variável não está definida, script
padrão para sh
.
Adicionar a um arquivo existente
É possível adicionar novos comandos a um texto datilografado existente. Isso permite que você “pausa” e “retomar” la grabación saliendo de su sub-shell e iniciando una nueva sesión.
Adicione o -a
sinalize para adicionar seus comandos ao arquivo especificado. script
irá sobrescrever o conteúdo do arquivo quando o sinalizador não for fornecido.
script -a example_session
Adicionar dados de tempo
A digitação básica é ideal quando você simplesmente deseja gravar seus passos para ler ou compartilhar mais tarde. script
você também pode economizar dados de tempo junto com seu registro de texto. Esta informação pode ser usada para reproduzir toda a sua sessão de terminal com atrasos apropriados entre os comandos.
Para correr script
com ele -t
marque para especificar um caminho para escrever tempos. Os arquivos de hora têm um formato de duas colunas. Cada entrada contém o tempo decorrido desde o último registro na primeira coluna. A segunda coluna registra o número de caracteres que foram digitados, permitindo repetições com velocidade de digitação precisa.
script -q -t example_session_timings example_session
Sessões de jogo
a scriptreplay
comando lê datilografado e arquivos de tempo criados por script
. Jogue sua saída em seu terminal. Os dados de tempo serão usados para combinar o comprimento de cada caractere digitado com seu comprimento em seu script original.
scriptreplay -t example_session_timings example_session
Algunos scripts pueden contener retrasos no deseados o ejecutarse a una velocidad incómodamente lenta. Use o -d
bandera para acelerar la salida. Todos los tiempos registrados se dividirán por el número que pase.
# Run 4 times faster scriptreplay -d 4 -t timings typescript
Você também pode usar o -m
marca para limitar el retraso máximo entre actualizaciones individuales. Esto le posibilita especificar la pausa más larga permitida en segundos antes scriptreplay
pasará al siguiente comando, inclusive si el texto mecanografiado especifica un retraso mayor.
# Maximum delay of 2 seconds scriptreplay -m 2 -t timings typescript
Uso con comandos interactivos
No se recomienda utilizar script
con comandos muy interactivos. Es probable que los editores de texto de terminal, las aplicaciones sustentadas en maldiciones y los mensajes de diálogo inserten caracteres basura contaminantes en su texto mecanografiado. script
se centra en capturar la salida típica basada en texto, no en comandos que manipulan su terminal para producir una interfaz gráfica.
script
não é adequado para uso com shells não interativos, pois seu shell interno é sempre interativo por natureza. O comando não deveria ser espera-se que funcione com entrada canalizada.
Outras opções
a -c
sinalizar um script
permite que você especifique um comando. Ao usar este modo, script
execute o comando e capture sua saída, em vez de bifurcar um novo shell interativo. Isso pode ser mais eficaz na captura da saída de alguns processos que se comportam de maneira diferente quando não estão diretamente conectados a um TTY..
a -f
bandeira instrui script
para escrever diretamente no log da sessão após cada evento. Isso melhora a segurança, garantindo que a saída seja capturada imediatamente.
a script
página man sugere este sinalizador também pode ser usado para monitorar o terminal de um usuário em tempo real, como em um cenário de professor e aluno. O aluno iria correr script -f
, mais tarde, o mestre usaria SSH para conectar e transmitir o texto datilografado ao vivo.
script
geralmente não aceita um link simbólico como um caminho digitado. a --force
flag ativa este comportamento, instruindo script
para resolver hard links e soft links para seu destino.
Resumo
script
permite que você grave suas sessões de terminal em arquivos de texto simples com dados de tempo precisos. Pode inspecionar, compartilhar e imprimir os scripts digitados manualmente ou reproduzi-los em seu terminal usando scriptreplay
.
Os comandos estão incluídos nas distribuições Linux mais populares. Eles funcionam com todos os tipos de terminais, mas scripts individuais podem não tocar corretamente em um terminal diferente daquele usado para gravação. Para melhores resultados, corre scriptreplay
no mesmo tipo de terminal que você usou com script
.