Lo script
di Linux comando crea un file dattiloscritto dalla sessione del terminale. Ciò significa che se invochi lo script
comando, vieni trascinato in una sottoshell della sessione del terminale "controllata e registrata" che viene salvata in un file di testo ASCII. Quando viene creato con un file di temporizzazione, è possibile riprodurre la sessione, incluso l'output. Lo scopo di script
è che puoi facilmente acquisire l'output di esempio da qualsiasi comando attraverso una sessione interattiva esattamente come viene visualizzato nel tuo terminale. Puoi usare backspace, modificare file, creare file ed eseguire comandi semplici o complessi.
[ Ai lettori è piaciuto anche: Nozioni di base sui comandi Linux:7 comandi per la gestione dei processi ]
Il valore dello script
comando è nella sua capacità di acquisire l'output durante la sessione del terminale per qualsiasi comando del terminale senza reindirizzamenti, che non sempre funzionano. Sono stato frustrato così tante volte quando ho tentato di acquisire l'output da un comando che in qualche modo sta andando storto finché non ho scoperto script
. Con gli operatori di reindirizzamento standard, alcuni output possono essere reindirizzati a un file, mentre altri comandi mostreranno l'output solo in stdout o sullo schermo. La maggior parte degli amministratori di sistema utilizza lo script
comando per mostrare l'output durante l'installazione del software, durante la risoluzione dei problemi o per scopi di sviluppo e programmazione.
Sorprendentemente, lo script
comando non ti aiuta a creare script di shell.
Opzioni script
Come con la maggior parte dei comandi che uso, uso solo un sottoinsieme delle opzioni disponibili per loro. Lo script
comando ha diverse opzioni che non ho mai trovato utili nel mio lavoro. Gli unici che uso sono:
-a
per aggiungere nuovi comandi e output a un file utilizzato in precedenza.-q
per rimuovere le istruzioni iniziali e finali quando si utilizzascript
.--t
per salvare le informazioni di tempo per la riproduzione.
Quando uso script
, io uso sempre --t
per creare un file di temporizzazione e -q
per la modalità silenziosa. Uso solo -a
quando ho bisogno di aggiungere più informazioni in un file di script esistente, cosa rara.
Utilizzo degli script
I seguenti sono due esempi standard del modo in cui utilizzo script
:
$ script --t=<logfile> -q <script file>
E, per aggiungere a script file
:
$ script --t=<logfile> -q -a <script file>
Dove logfile
e script file
possono essere nomi che scegli. Quando vuoi terminare e salvare il file, usa Ctrl-D sulla tua tastiera. Puoi guardare, modificare o rimuovere il file di script e il file di registro a piacimento. Sono semplici file di testo ASCII.
Ecco un esempio:
$ script --t=script_log -q scriptfile
Ho eseguito ls
comando, il who
comando, quindi ho terminato lo script con Ctrl-D .
$ ls
blah.txt test1 test2 doc.txt
$ who
root tty1 2021-01-18 09:31
khess pts/0 2021-01-20 14:42 (192.168.0.5)
khess pts/1 2021-01-20 14:47
$ exit
Quando premi Ctrl-D , lo script esce e mostra exit .
Usa il cat
comando per visualizzare il contenuto di scriptfile
.
$ ls
blah.txt file_time scriptfile script.rec shell_record1 shell_record3 time_log
file_log record.scr script_log scriptrecord shell_record2 snap typescript
$ who
root tty1 2021-01-18 09:31
khess pts/0 2021-01-20 14:42 (192.168.0.5)
khess pts/1 2021-01-20 14:47
$ exit
Script done on 2021-01-20 14:47:28-06:00
Se vuoi, puoi anche cat
il script_log
file.
$ cat script_log
0.088699 31
3.393729 1
0.246070 1
0.540094 2
0.003060 196
0.000195 31
2.136900 1
0.177266 1
0.179336 1
0.540818 2
0.003883 134
0.000210 31
4.676286 6
Questo è il file di registro dei tempi che si comporta in modo simile a un registro delle transazioni per il tuo script
comandi e risposte. È importante quando riproduci il file, come dimostro nell'articolo successivo, Come riprodurre le sessioni del terminale registrate con il comando di script Linux.
[ Impara le basi dell'uso di Kubernetes in questo cheat sheet gratuito. ]
Concludi
Per me, la migliore applicazione dello script
command serve per addestrare i nuovi utenti Linux su come usare i comandi e per mostrare loro l'output previsto in tempo reale, come se stessero interagendo con la sessione del terminale. Per gli utenti più esperti, è possibile creare una sessione di formazione che insegna l'installazione o la configurazione di un nuovo software. La formazione è l'applicazione a cui penso a causa della mia esperienza con la formazione di nuovi amministratori di sistema e la scrittura di articoli pratici per varie sedi. E poiché l'output è in file di testo ASCII, puoi modificare l'output in base alle tue esigenze e al tuo pubblico.