Introduzione
La history command in Linux è uno strumento shell integrato che mostra un elenco di comandi utilizzati nella sessione del terminale. history consente agli utenti di riutilizzare qualsiasi comando elencato senza ridigitarlo.
In questo tutorial, ti mostreremo come funziona la history il comando funziona e diversi modi per usarlo.
Prerequisiti
- Un sistema che esegue Linux.
- Un account con privilegi sudo.
- Accesso alla finestra del terminale.
Come utilizzare il comando cronologia di Linux
Utilizzando la history comando senza opzioni mostra l'elenco dei comandi utilizzati dall'inizio della sessione del terminale:
history
Per visualizzare l'elenco della cronologia dei comandi con un numero limitato di voci, aggiungi quel numero alla history comando. Ad esempio, per mostrare solo le ultime cinque voci, usa:
history 5
Una volta chiuso il terminale, la shell Bash salva le nuove voci della cronologia dei comandi in .bash_history file.
Utilizza data e timestamp
Il .bashrc file memorizza le impostazioni della shell Bash. La modifica di questo file consente di modificare il formato di output della history comando.
Apri il .bashrc file utilizzando un editor di testo come Nano:
sudo nano .bashrc Per modificare il formato di output per includere data e timestamp, aggiungi la seguente riga a .bashrc file:
export HISTTIMEFORMAT="%c "
Utilizzo di argomenti diversi dopo HISTTIMEFORMAT ti consente di personalizzare il livello di dettaglio nel timestamp:
%d:Giorno%m:Mese%y:Anno%H:Ora%M:Minuti%S:Secondi%F:Data completa (formato A-M-G)%T:Ora (formato H:M:S)%c:data e ora complete (formato Day-D-M-Y H:M:S)
Salva le modifiche in .bashrc file, riavvia il terminale ed esegui la history comando per confermare il nuovo formato di output:
history
Visualizza la dimensione del buffer della cronologia
Il .bashrc contiene due voci che controllano la dimensione del buffer della cronologia:
HISTSIZE:il numero massimo di voci per l'elenco della cronologia.HISTFILESIZE:il numero massimo di voci in .bash_history file.
Modifica del HISTSIZE e HISTFILESIZE values cambia il modo in cui la shell Bash visualizza e salva la cronologia dei comandi.
Ad esempio, modificando il HISTSIZE valore a 10 crea la history l'elenco dei comandi mostra un massimo di 10 voci più recenti.
Salvataggio delle modifiche in .bashrc file, riavviando il terminale ed eseguendo la history il comando conferma il nuovo formato di output:
history
Ripeti un comando
Esecuzione della history comando consente di riutilizzare qualsiasi comando nell'elenco. Ad esempio, per eseguire il primo comando (sudo apt update ) di nuovo, usa:
!1
Aggiunta di un trattino (- ) prima che il numero del comando inizi il conteggio dalla fine dell'elenco. Ad esempio, per riutilizzare il penultimo comando (history 5 ), usa:
!-10
Usa i doppi punti esclamativi per ripetere l'ultimo comando:
!!
Cerca un comando per stringa
L'aggiunta di una stringa dopo il punto esclamativo esegue l'ultimo comando che inizia con quella stringa. Ad esempio, per riutilizzare l'ultimo comando che inizia con sudo , usa:
!sudo
L'utilizzo di questo metodo può causare problemi se la shell esegue un comando imprevisto, soprattutto durante la ricerca di un comando che inizia con sudo . Per precauzione, aggiungi il :p argomento mostra il comando senza eseguirlo, consentendoti di rivedere il comando e decidere se eseguirlo.
!sudo:p
Per cercare un comando che contiene una stringa, ma che potrebbe non iniziare con essa, aggiungi un punto interrogativo accanto al punto esclamativo. Ad esempio, per riutilizzare l'ultimo comando che contiene echo :
!?echo
Nell'esempio sopra, la shell riutilizza l'ultimo comando che contiene echo string anche se il comando inizia con sudo .
Elenca i comandi corrispondenti
Combinando history e grep consente di visualizzare un elenco di comandi che contengono una stringa. Ad esempio, per elencare tutti i comandi che contengono ufw , usa:
history | grep ufw
Cambia il comando eseguito
Utilizzare la seguente sintassi per modificare l'ultimo comando eseguito:
^[old string]^[new string]^
Ad esempio, il ufw il comando per abilitare la porta 20 mostra che la porta è già abilitata:
sudo ufw allow 20/tcp
Usa la sintassi sopra per cambiare il numero di porta da 20 a 22:
^20^22^
Impedisci la registrazione dei comandi nella cronologia
Per impedire la registrazione dei comandi nell'elenco della cronologia, disabilita temporaneamente la registrazione utilizzando:
set +o history Per riattivare la registrazione, usa:
set -o history Elimina cronologia
Usa il -d opzione con la history comando per eliminare un comando dall'elenco della cronologia. Ad esempio, elimina il comando numero 87 con:
history -d 87
Usa il -c opzione per cancellare l'intero elenco della cronologia:
history -c Aggiorna il file della cronologia
La shell Bash salva tutti gli aggiornamenti nell'elenco della cronologia dei comandi quando esci dalla sessione del terminale. La history Il comando consente anche di salvare le modifiche durante la sessione del terminale.
Utilizzando il -a l'opzione ti consente di aggiungere le voci della cronologia dei comandi da questa sessione a .bash_history file:
history -a
Un altro metodo consiste nell'usare il -w opzione per salvare l'intero elenco della cronologia in .bash_history file:
history -w