GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo della funzione di cronologia su Bash Shell su Ubuntu 16.04 LTS Server

La Bash (di nuovo Bourne shell) è una shell popolare utilizzata sulla maggior parte dei sistemi simili a UNIX. Bash è scritto da Brian Fox come GNU Project. Incorpora funzionalità di Bourne shell, C shell e Korn shell. Gli utenti che trascorrono il loro tempo sulla riga di comando usando la shell bash spesso vorranno ripetere i comandi eseguiti in passato. La funzione di cronologia della shell di Bash aiuta a ricordare i comandi recenti e a riutilizzarli in seguito; risparmiando così tempo per ridigitare. Iniziamo!

Cronologia annunci

Quando storia comando utilizzato senza argomenti passati, visualizzerà i comandi recenti utilizzati con i numeri di riga corrispondenti.

$ history 

L'output sarà simile al seguente:

Elenco degli ultimi 'n' comandi eseguiti

Utilizzando la "storia ", gli ultimi "n" comandi eseguiti possono essere recuperati come segue:

$ history 7 

Esegui un comando specifico dalla cronologia

È possibile eseguire un comando specifico dalla cronologia. L'uso dei punti esclamativi seguiti dal numero del comando come elencato dalla cronologia farà la magia. Ad esempio, il comando seguente riesegui il comando con il numero 7 (du –sh) come segue:

$ !7 

Esegui di nuovo un comando precedente

In molte situazioni, è necessario eseguire un comando ancora e ancora. I comandi seguenti faranno quel lavoro eseguendo il comando precedente utilizzato.

$ !!
Or
$ !-1  

Ricerca dei comandi

L'output generato dalla cronologia può essere utilizzato in diversi modi. Ad esempio, l'output della cronologia può essere passato a – more, tail, grep per recuperare l'output desiderato.

Cerca nella cronologia dei comandi "gratuitamente":$ history | grep free Per visualizzare solo gli ultimi 4 comandi:

$ history | tail -4 

Il comando more consente di visualizzare l'output nel terminale una pagina alla volta:

$ history | more   

Esegui un comando precedente che inizia con una parola specifica

L'uso dell'esclamazione seguita dalla parola specifica del comando farà la magia!. Supponiamo che l'utente abbia eseguito – ”free –h”. Digitando "!free" verrà eseguito nuovamente il comando "free -h".

Cancellazione cronologia

È possibile cancellare la cronologia con il comando seguente: ​ $ history -c Questo cancella tutti i comandi nella memoria della shell bash per la sessione utente corrente.

Utili pseudonimi

Un alias è un nome breve dato a un comando lungo e complesso. Semplice alias di carattere singolo per il comando della cronologia.

$ alias 'h=history' 

L'alias sottostante "ht" mostra i dieci comandi più recenti:

$ alias 'ht=history | tail' 

L'alias sottostante "hg" consente di visualizzare tutti i comandi che corrispondono alla stringa data -

$ alias 'hg=history | grep' 

Aggiungi questi alias nel file "~/.bashrc" per renderli persistenti ogni volta che il sistema si avvia.

Impostazioni di configurazione della cronologia

Variabile Bash Shell Descrizione
ARCHIVIO ​Posizione del file fisico in cui la cronologia memorizza i comandi. Per impostazione predefinita, la shell bash è "~/.bash_history". L'impostazione "/dev/null", disabiliterà la registrazione della cronologia.
HISTFILESIZE ​Si riferisce a una serie di comandi da memorizzare nel file della cronologia.
HISTSIZE ​Si riferisce a una serie di comandi archiviati in memoria in un elenco cronologico. L'impostazione di un valore di 0 (zero) disabiliterà la registrazione della cronologia.
HISTIGNORE ​A volte è necessario non memorizzare alcun tipo di comando. Questa variabile accetta un elenco di modelli separati da due punti. Ad esempio, la configurazione seguente fa in modo che la funzione di cronologia non registri i comandi:ls, top e clear.

HISTIGNORE=”ls*:top:clear” 
HISTTIMEFORMAT ​Questa variabile HISTTIMEFORMAT consente di visualizzare la cronologia con timestamp.

Se HISTTIMEFORMAT è impostato su '%F %T  ' si ottengono i risultati seguenti.​ Questo è un comando molto utile per gli amministratori di sistema.
CONTROLLO STORICO ​HISTCONTROL aiuta a ignorare i duplicati. HISTCONTROL può essere impostato con valori: erasedups, ignorespace, ignoreups o ignoreboth. (separati da due punti) Di seguito sono riportati alcuni esempi: HISTCONTROL=ignoredups:erasedups
HISTCONTROL=ignorebothSupponiamo che le voci della cronologia contengano duplicati come segue ("top" e "ls –latr" vengono ripetuti consecutivamente)​Se HISTCONTROL è stato impostato su "ignoredups ” quindi la cronologia sarebbe stata visualizzata come di seguito:

Impostazioni di configurazione avanzate

Bash mantiene l'elenco dei comandi internamente in memoria e vengono scritti nel file configurato (l'impostazione predefinita è .bash_history) all'uscita. Quando l'utente esce dalla shell, le ultime righe $HISTSIZE vengono copiate dall'elenco della cronologia nel file impostato su $HISTFILE. Se un utente ha effettuato l'accesso con molte sessioni bash, solo l'ultimo a uscire avrà la sua cronologia salvata. Nel caso in cui la cronologia dei comandi debba essere scritta immediatamente come e quando un comando viene eseguito in una sessione utente, è possibile impostare la seguente configurazione nel file “.bashrc”.

$ shopt -s istappend $ PROMPT_COMMAND=”storia -a; storia -c; history -r" "shopt –s histappend" abilita append invece di sovrascrivere la cronologia.
"history -a" viene utilizzato per aggiungere i comandi della cronologia in memoria a ~/.bash_history
"history -c" viene utilizzato per cancellare i comandi della cronologia in memoria
"history -r" viene utilizzato per leggere i comandi della cronologia da ~/.bash_history alla memoria
Un tipico file "~/.bashrc" con l'impostazione di configurazione relativa alla cronologia verrà appaiono come di seguito:# controlla la dimensione dei comandi da registrare in memoria
HISTSIZE=2000# controlla la dimensione dei comandi da memorizzare nel file
HISTFILESIZE=10000

# posizione del file fisico in cui vengono scritti i comandi
HISTFILE=/var/users/rjujare/.bash_history

#Formato per scopi di registrazione e visualizzazione:inclusione del timestamp
HISTTIMEFORMAT='%F %T '

# ignora i comandi comuni come ls
HISTIGNORE="ls:id:uname:clear:top"

# ignora i comandi duplicati e i comandi che iniziano con spazio
HISTCONTROL=ignoreboth
# append, non sovrascrivere la cronologia
shopt -s histappend
PROMPT_COMMAND=”history -a; storia -c; cronologia -r"

Come si salva la configurazione?

Apri il file ~/.bashrc con il tuo editor preferito per modificare le impostazioni. Al termine delle modifiche, salva il file ed esci. Per ottenere l'effetto di modifica, crea il file utilizzando il comando 'sorgente' come segue:

$ source ~/.bashrc   

Conclusione

Il guscio Bash viene fornito con molte funzioni utili e una di queste è la cronologia. Queste funzionalità migliorano notevolmente la produttività degli amministratori e anche degli utenti regolari. Non dimenticare di condividere le tue esperienze con la storia!


Linux
  1. Come cancellare la cronologia di Bash su Linux

  2. Come applicare la digitazione preliminare alla ricerca nella cronologia di Bash (ctrl-r)?

  3. Utilizzo del comando di sospensione di Linux negli script Bash

  4. Dividi l'output del comando per colonne usando Bash?

  5. Come disabilitare la modifica della mia cronologia in bash

Come aggiornare Ubuntu 16.04 LTS a 20.04 LTS usando il terminale di comando

Comando per installare il guscio di pesce su Ubuntu 20.04 LTS

Aggiorna Ubuntu 20.04 a 22.04 LTS Jammy usando Command o GUI

Come installare TeamViewer su Ubuntu 20.04 LTS

Come installare Wine su Ubuntu 22.04 LTS

Installazione di Fish Shell su Ubuntu su Windows 10