il script
comando ti consente di registrare e riprodurre l'attività sul tuo terminale. Questo è utile quando vuoi creare un riferimento ai passaggi che hai eseguito o stai creando un tutorial che gli altri possano seguire..
script
genera il testo digitato di tutti i comandi che hai eseguito. Funziona mettendoti in una sub-shell che registra tutto ciò che esegui. La tua sessione verrà salvata come testo normale quando esci dalla shell. Questo sì script
più affidabile dei flussi di input reindirizzati.
Uso di base
il script
Il comando può essere eseguito senza argomenti:
sceneggiatura
Inizierà una nuova sessione di acquisizione. La tua sessione del terminale verrà salvata in ./typescript
nella tua directory di lavoro. Puoi specificare un file diverso dando script
un argomento:
script example_session
Usa la tua shell per eseguire lo script che vuoi registrare. Quando finisci, premere Ctrl+D
o scrivi exit
per uscire dalla sub-shell. Tornerai alla sessione principale della shell.
Ora puoi ispezionare il registro della sessione che è stato creato:
cat example_session
Vedrai l'output del tuo script
sessione intervallata da annotazioni tra parentesi. Queste annotazioni sono usate da script
per registrare dettagli sul terminale stesso e gli eventi che si verificano al suo interno.
Poiché i file di registro sono di testo normale, puoi manipolarli liberamente nel tuo editor preferito. Basta tagliare le linee che non vuoi mantenere o che gli altri non dovrebbero vedere.
Questo è utile se la tua sessione genera inavvertitamente informazioni potenzialmente sensibili o se desideri eliminare caratteri strani dal registro.. script
registra tutto ciò che accade nel tuo terminale, comprese le sequenze di tasti backspace, nuove linee e caratteri di controllo, alcuni dei quali potrebbero non essere necessari nel dattiloscritto finale.
script
restituisce il nome del file su cui stai scrivendo all'inizio e alla fine della sessione. Puoi disabilitare questo output aggiungendo il pulsante -q
flag per abilitare la modalità silenziosa.
il SHELL
La variabile d'ambiente viene letta quando si determina la shell da ramificare per la procedura interna. Quando la variabile non è impostata, script
predefinito su sh
.
Aggiungi a un file esistente
È possibile aggiungere nuovi comandi a un dattiloscritto esistente. Questo ti abilita “pausa” e “riprendere” registrazione uscendo dalla sub-shell e avviando una nuova sessione.
Aggiungi il -a
flag per aggiungere i comandi al file specificato. script
sovrascriverà il contenuto del file quando il flag non è fornito.
script -a example_session
Aggiungi i dati dell'ora
Il dattiloscritto di base è l'ideale quando vuoi semplicemente registrare i tuoi passi per leggerli o condividerli in seguito. script
puoi anche salvare i dati temporali insieme al tuo registro di testo. Queste informazioni possono essere utilizzate per riprodurre l'intera sessione del terminale con ritardi appropriati tra i comandi.
Correre script
con il -t
seleziona per specificare un percorso per scrivere i tempi. I file temporali hanno un formato a due colonne. Ogni voce contiene il tempo trascorso dall'ultimo record nella prima colonna. La seconda colonna registra il numero di caratteri che sono stati digitati, consentendo ripetizioni con velocità di digitazione precisa.
script -q -t esempio_sessione_temporizzazioni esempio_sessione
Sessioni di gioco
il scriptreplay
il comando legge i file dattiloscritti e temporali creati da script
. Riproduci il tuo output sul tuo terminale. I dati temporali verranno utilizzati per abbinare la lunghezza di ogni carattere digitato alla sua lunghezza nel suo script originale.
scriptreplay -t example_session_timings example_session
Alcuni script potrebbero contenere ritardi indesiderati o essere eseguiti a una velocità fastidiosamente lenta. Utilizzare il -d
bandiera per accelerare la partenza. Tutti i tempi registrati verranno divisi per il numero che passa.
# Correre 4 times faster
scriptreplay -d 4 -t tempi dattiloscritto
Puoi anche usare il -m
flag per limitare il ritardo massimo tra i singoli aggiornamenti. Ciò consente di specificare la pausa più lunga consentita in secondi prima scriptreplay
passerà al comando successivo, anche se il dattiloscritto specifica un ritardo più lungo.
# Ritardo massimo di 2 seconds
scriptreplay -m 2 -t tempi dattiloscritto
Utilizzare con comandi interattivi
Non è consigliabile utilizzarlo script
con comandi molto interattivi. È probabile che gli editor di testo del terminale lo facciano, le applicazioni e i messaggi di dialogo supportati da curse inseriscono caratteri spazzatura inquinanti nel testo digitato. script
si concentra sull'acquisizione del tipico output basato su testo, non nei comandi che manipolano il tuo terminale per produrre un'interfaccia grafica.
script
non adatto per l'uso con shell non interattive poiché la sua shell interna è sempre di natura interattiva. Il comando non dovrebbe essere dovrebbe funzionare con l'input convogliato.
Altre opzioni
il -c
bandiera a script
consente di specificare un comando. Quando si utilizza questa modalità, script
esegui il comando e acquisisci il suo output, invece di biforcare una nuova shell interattiva. Questo può essere più efficace nel catturare l'output di alcuni processi che si comportano diversamente quando non sono direttamente connessi a un TTY..
il -f
bandiera istruisce script
per scrivere direttamente nel log della sessione dopo ogni evento. Ciò migliora la sicurezza garantendo che l'output venga acquisito immediatamente.
il script
pagina man suggerisce questo flag potrebbe essere utilizzato anche per monitorare il terminale di un utente in tempo reale, come in uno scenario di insegnante e studente. Lo studente correrebbe script -f
, in seguito il master avrebbe usato SSH per connettersi e trasmettere in streaming il dattiloscritto dal vivo.
script
di solito non accetta un collegamento simbolico come percorso digitato. il --force
flag abilita questo comportamento, istruire script
per risolvere i collegamenti hard e soft verso la loro destinazione.
Riepilogo
script
consente di registrare le sessioni del terminale in file di testo semplice con dati temporali precisi. Può ispezionare, condividi e stampa gli script digitati manualmente o riproducili sul tuo terminale usando scriptreplay
.
I comandi sono inclusi con le distribuzioni Linux più popolari. Funzionano con tutti i tipi di terminali, ma i singoli script potrebbero non essere riprodotti correttamente su un terminale diverso da quello utilizzato per la registrazione. Per i migliori risultati, correre scriptreplay
nello stesso tipo di terminale che hai usato con script
.