Registrare sequenza comandi

Esempio di macro Vim
Il comando script di Linux esiste da secoli e fornisce un servizio semplice ma utile. Permette di registrare l’attività della linea di comando – sia l’input che l’output. Questo può essere molto utile nella risoluzione di problemi o per verificare cosa è stato fatto in seguito, rivedendo i comandi che sono stati eseguiti insieme al loro output. Anche se avete usato il comando script di tanto in tanto, esso offre più opzioni di quanto molti di noi si rendano conto. Il modo più semplice per usare il comando script è semplicemente quello di digitare “script” nella finestra del terminale e premere ^d quando si vuole fermare la registrazione. L’output, per impostazione predefinita, sarà salvato in un file chiamato “typescript”. Vedrete il nome del file utilizzato nella prima riga dell’output.
Notate che il file usato per registrare l’attività della sessione include non solo i comandi digitati e l’output generato, ma anche l’ora e la data in cui la registrazione del file è iniziata e finita. Aggiungere l’output a un file esistenteSe volete aggiungere la registrazione dell’attività della sessione a un file esistente, potete usare l’opzione -a (o –append).
Cos’è la registrazione in vim
Il numero di registrazione è il numero assoluto/fisico di una registrazione. Un numero di record viene assegnato automaticamente ad ogni nuovo record e rimane costante per il record fino a quando il record viene cancellato. I numeri di record iniziano da zero. Non sono unici perché i numeri di record dei record cancellati sono riutilizzati per i nuovi record. Cambiano anche quando il database viene compattato o riparato.
Il numero di record selezionato è la posizione del record nella selezione corrente, e quindi dipende dalla selezione corrente. Se la selezione viene cambiata o ordinata, il numero del record selezionato probabilmente cambierà. La numerazione per il numero di record selezionato inizia da uno (1).
Il numero di sequenza è un numero unico non ripetitivo che può essere assegnato a un campo di un record. Non viene memorizzato automaticamente con ogni record. Inizia da 1 e viene incrementato per ogni nuovo record che viene creato. A differenza dei numeri di record, un numero di sequenza non viene riutilizzato quando un record viene cancellato o quando un database viene compattato o riparato. I numeri di sequenza forniscono un modo per avere numeri identificativi unici per i record. Se un numero di sequenza viene incrementato durante una transazione, il numero non viene decrementato se la transazione viene cancellata.
Uscita dalla registrazione Vi
Supponiamo che riceviate un file CSV contenente una lista di host nella vostra rete da un ipotetico sistema di monitoraggio. Volete convertirlo nel formato /etc/hosts per permettere la risoluzione locale dei nomi degli host.
Per ottenere l’output previsto, è necessario modificare l’input cambiando la posizione di alcuni campi, eliminando le virgolette e inserendo opportunamente i caratteri Tab o di commento (#). Usiamo le macro di Vim per gestire questo compito.
Il flusso di lavoro di base di una macro Vim consiste nel registrare i vostri comandi e le vostre battute mentre fate le modifiche richieste per risolvere il problema sulla prima riga, salvando la sequenza di comandi in un registro, e poi riproducendo la macro per fare lo stesso sulle righe rimanenti.
Per registrare una macro e salvarla in un registro, digitate il tasto q seguito da una lettera dalla a alla z che rappresenta il registro in cui salvare la macro, seguito da tutti i comandi che volete registrare, e poi digitate nuovamente il tasto q per fermare la registrazione.
Registrare macro in Vim è un esercizio di logica e di uso appropriato dei comandi Vim. Tieni a mente che vuoi che questa macro sia ripetibile su altre linee, anche se l’input varia un po’. Per esempio, è meglio usare il comando dw per cancellare una parola piuttosto che ripetere il comando x per rimuovere i caratteri, perché il numero di caratteri nella parola potrebbe variare da riga a riga.
Macro di Vim
Quindi il comando script è utile per fornirvi una potente funzionalità che vi aiuta a registrare tutto ciò che viene stampato sul vostro terminale in un file di log. Potete poi fare riferimento a questo file in seguito nel caso in cui vogliate visualizzare l’output di un comando nella cronologia dal log_file.
Per esempio, nell’output qui sotto, i permessi del file typescript non permettono la lettura, la scrittura e l’esecuzione del file non da nessun utente o gruppo. Quando si esegue il comando script senza un nome di file di log, esso tenta di scrivere sul file predefinito, typescript, mostrando quindi un errore.
Il file time.txt ha due colonne, la prima colonna mostra quanto tempo è trascorso dall’ultima visualizzazione e la seconda colonna mostra il numero di caratteri che sono stati visualizzati questa volta.
Questi due comandi, script e scriptreplay sono facili da usare e aiutano molto quando è necessario eseguire lo stesso gruppo di comandi più volte. Aiutano molto nella gestione dei server che hanno solo un’interfaccia a riga di comando per interagire con il vostro sistema. Spero che questa guida sia stata utile e se hai qualcosa da aggiungere o affronti una sfida mentre li usi, non esitare a postare un commento.