GNU/Linux >> Linux Esercitazione >  >> Linux

Comando della cronologia in Linux (Cronologia di Bash)

Se trascorri molto tempo sulla riga di comando, visualizzare la cronologia dei comandi che hai eseguito in precedenza potrebbe essere una funzione utile che può semplificare il tuo lavoro quotidiano e migliorare la tua produttività.

In questo articolo parleremo della history comando, che consente di visualizzare un elenco di comandi eseguiti in precedenza, cercare nell'elenco e manipolare il file della cronologia.

Utilizzo della history Espansioni dei comandi e della cronologia #

history è una shell incorporata e il suo comportamento può differire leggermente da shell a shell. Tratteremo la versione incorporata di Bash di history .

Nella sua forma più semplice, quando viene invocata senza alcuna opzione o argomento, la history il comando visualizza l'intero elenco della cronologia con i numeri di riga.

history
...
467  git push
468  tail -f var/logs/error
469  nano +22,5 functions.sh
470  source project-env/bin/activate
471  history

Digitando !n esegue l'n-esimo comando dall'elenco della cronologia e !-n il comando n righe indietro. Nell'esempio seguente stiamo eseguendo il comando sulla riga 467 :

!467

Un altro modo per eseguire un comando è usare !word espansione. word si riferisce al comando più recente che inizia con "parola".

In genere, history visualizza molte righe di output che non si adattano allo schermo. Per visualizzare l'output una pagina alla volta, invialo tramite pipe a un programma cercapersone come more o less comando:

history | less

Per visualizzare l'ultimo n righe, passare il numero come argomento al comando. Ad esempio, per visualizzare solo le ultime cinque righe dell'elenco della cronologia, digitare:

history -5

Usa il up e down tasti freccia per navigare tra le voci nell'elenco. Quando viene visualizzato il comando che hai cercato, premi Enter per eseguirlo.

Digita !! per eseguire il comando precedente:

!!

Ciò è particolarmente utile quando ti dimentichi di eseguire un comando con sudo e invece di riscrivere il comando puoi digitare:

sudo !!

!-1 è lo stesso di !! ed esegue l'ultimo comando dall'elenco della cronologia, !-2 penultimo e così via.

^word1^word2^ L'espansione permette di rieseguire l'ultimo comando sostituendo “word1” con “word2”. Se hai digitato accidentalmente sduo command invece di sudo command puoi ripetere il comando usando la parola corretta con:

^sduo^sudo^

Usa grep comando per filtrare l'output. Ad esempio, per visualizzare tutti i comandi, incluso "nano", eseguire:

history | grep nano
302  sudo nano /etc/resolv.conf
356  nano setup.py
413  sudo nano /etc/hosts
469  nano +22,5 functions.sh

Ora, se vuoi rieseguire nano setup.py comando digita semplicemente:

!356

Un altro modo per cercare nella cronologia dei comandi è premere Ctrl-R . Il prompt cambierà nel seguente e potrai iniziare a cercare un comando eseguito in precedenza.

(reverse-i-search)`':

La shell visualizzerà una linea corrispondente. Per passare al suggerimento successivo corrispondente, premi Ctrl-R di nuovo.

Consulta il manuale di Bash per ulteriori informazioni sull'espansione della cronologia, sui modificatori e sui designatori.

Salvataggio dell'elenco cronologia #

Per impostazione predefinita, quando si avvia una nuova sessione, Bash legge l'elenco della cronologia da .bash_history file . L'elenco dei comandi che vengono eseguiti nella sessione corrente vengono mantenuti in memoria e salvati nel file alla chiusura della sessione.

Se hai aperto più sessioni di shell, viene salvata solo la cronologia dell'ultima sessione chiusa.

Il -a l'opzione ti consente di salvare l'elenco della cronologia della sessione corrente in .bash_history file:

history -a

Il -w l'opzione scrive l'elenco completo della cronologia nel file della cronologia.

history -w

Cronologia di cancellazione #

La history Il comando consente di cancellare l'elenco completo della cronologia o di rimuovere alcune parti.

Per cancellare l'elenco della cronologia, usa -c opzione:

history -c

Per eliminare una o più righe specifiche tra una posizione iniziale e finale dall'elenco della cronologia, utilizzare il -d opzione.

Ad esempio, per rimuovere le righe comprese tra 365 e 375 (comprese quelle righe), devi digitare:

history -d 365 375

Se fornisci un solo numero a -d opzione, il comando rimuove la riga data.

Quando viene utilizzato un numero intero negativo, le righe vengono conteggiate a ritroso dalla fine dell'elenco della cronologia.

I comandi sopra cancellano l'elenco della cronologia, che è tenuto in memoria, ma non rimuove le voci da .bash_history file sul disco. Per cancellare il file, devi scrivere l'elenco della cronologia nel file:

history -chistory -w

Modifica del comportamento della cronologia #

Il comportamento della cronologia di Bash può essere definito utilizzando diverse variabili di ambiente. Quando modifichi il comportamento della cronologia, imposta le variabili in ~/.bashrc o qualsiasi altro file di configurazione che viene caricato quando l'utente effettua l'accesso.

Per impostazione predefinita Bash mantiene 500 righe nell'elenco della cronologia dei comandi. Il HISTSIZE variabile consente di modificare questo valore. Per impostarlo su 10000 aggiungi la seguente riga al tuo .bashrc file:

HISTSIZE=10000

Il HISTCONTROL La variabile accetta un elenco di valori separato da due punti che definisce come i comandi vengono salvati nell'elenco della cronologia:

  • ignorespace - i comandi che iniziano con uno spazio non vengono salvati nell'elenco della cronologia.
  • ignoredups - i comandi duplicati non vengono salvati.
  • ignoreboth - è una scorciatoia, che include entrambi ignorespace e ignoredups .
HISTCONTROL=ignoreboth

Quando il HISTTIMEFORMAT è impostata, Bash antepone un timestamp di esecuzione per il comando su ogni riga.

Ad esempio, se imposti:

HISTTIMEFORMAT="%F %T: "

La cronologia verrà visualizzata nel seguente formato:

413  2019-10-27 21:13:07: sudo nano /etc/hosts

Conclusione #

La history comando visualizza un elenco di comandi eseguiti in precedenza. Ad esempio, puoi utilizzare la cronologia per visualizzare un lungo comando che hai utilizzato in precedenza e che non ricordi.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Analisi della cronologia di Bash in Linux

  2. Comando Linux mv

  3. Linux du comando

  4. 15 Esempi di espansione della cronologia di Linux Bash che dovresti conoscere

  5. UNIX / Linux:esempi di comando bash history per ripetere gli ultimi comandi

Comando W in Linux

Al comando in Linux

Comando della cronologia in Linux con esempi

Come abilitare il timestamp nella cronologia di Bash in Linux

Comando Df in Linux

Comando cronologia in Linux:visualizza la cronologia del terminale Linux