GNU/Linux >> Linux Esercitazione >  >> Linux

Come acquisire le sessioni del terminale e l'output con il comando di script Linux

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 utilizza script .
  • --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.


Linux
  1. Lavorare con l'output di input e il reindirizzamento degli errori in Linux

  2. Come utilizzare il comando Tar in Linux

  3. Come riprodurre le sessioni del terminale registrate con il comando di script Linux

  4. Come aggiungere l'output a un file?

  5. Come acquisire l'output di un comando top in un file in Linux?

Come utilizzare il comando head di Linux

Come usare il comando diff di Linux

Come registrare e riprodurre sessioni del terminale Linux utilizzando i comandi "script" e "scriptreplay".

Come acquisire e analizzare i pacchetti con il comando tcpdump su Linux

Come utilizzare il comando Linux rm con esempi

Come salvare l'output del comando in un file utilizzando il terminale Linux