Come registrare i comandi del terminale Linux con “sceneggiatura”

Contenuti

Illustrazione che mostra lo schermo di un terminale Linux

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.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.