Programmazione BASH

Utilizzo e personalizzazione della cronologia dei comandi di Bash

Utilizzo e personalizzazione della cronologia dei comandi di Bash
La shell bash è l'ambiente della riga di comando predefinito disponibile nella maggior parte delle distribuzioni Linux. Simile a tutti gli ambienti shell, mantiene un registro dei comandi che sono stati eseguiti in precedenza dall'utente. Questo record viene mantenuto e mantenuto anche se riavviamo il nostro sistema.

Potresti conoscere l'uso di base del comando history, ma può fare molto di più. La cronologia di Bash è solitamente memorizzata nel file ~/.bash_history. Ti consente di richiamare e riutilizzare il record archiviato in modo efficiente per ottenere il meglio dalla funzione di salvataggio della cronologia di bash. Non solo questo, ma puoi anche personalizzare e controllare l'output del comando bash nel modo che preferisci.

In questo articolo, spiegheremo come utilizzare e personalizzare efficacemente la cronologia dei comandi bash per ottenere il massimo dalle sue funzionalità.

Abbiamo usato Debian 10 per eseguire i comandi e la procedura menzionati in questo articolo.

Utilizzo della cronologia dei comandi bash

1. Visualizzazione della cronologia bash

Per visualizzare l'intera cronologia dei comandi della shell, puoi eseguire il seguente comando in Terminale:

$ storia

Elencherà l'intera cronologia per un utente specifico dal file di cronologia memorizzato specificamente per quell'utente. Vedrai tutti i comandi che iniziano con un numero assegnato a ciascuno di essi. Elencherà i comandi più vecchi in alto a partire dal numero 1 e i comandi più recenti in basso.

2. Ricerca nell'output della cronologia

Puoi anche cercare una parola chiave specifica dall'output della cronologia. Associa il comando cronologia con grep e una parola chiave specifica per cercare i comandi che corrispondono alla parola chiave specificata come segue:

$ storia | grep [parola chiave]

Ad esempio, per elencare tutti i comandi che includono la parola chiave "trova", il comando sarebbe:

$ storia | grep trova

3. Visualizzazione degli ultimi n comandi

Il comando cronologia per impostazione predefinita elenca gli ultimi 1000 numeri di comandi eseguiti da un utente. Nel caso in cui desideri elencare solo un numero specifico, diciamo n numero dell'ultimo comando eseguito, esegui il seguente comando in Terminale:

$ storia n

Ad esempio, per elencare gli ultimi 7 comandi eseguiti, il comando sarebbe:

$ storia 7

Per visualizzare il numero degli ultimi n comandi di esecuzione che includono una parola chiave specifica, è possibile utilizzare la seguente sintassi:

$ storia | parola chiave grep |coda -n

Un esempio di ciò potrebbe essere visualizzare gli ultimi 4 comandi eseguiti con la parola chiave "java".

$ storia | grep java |coda -n

4. Visualizzazione dei comandi più vecchi

Per visualizzare il numero n di comandi più vecchio, puoi utilizzare la seguente sintassi in Terminale:

$ storia | testa -n

Per visualizzare il numero n più vecchio di comandi che include una parola chiave specifica, utilizzare la seguente sintassi:

$ storia | parola chiave grep |head -n

Un esempio di ciò sarebbe visualizzare i 4 comandi eseguiti più vecchi con la parola chiave "java".

$ storia | grep java |testa -4

5. Cancella completamente la cronologia di Bash

Per rimuovere l'intera cronologia bash, esegui il seguente comando in Terminale:

$ cronologia -cw

Personalizzazione della cronologia dei comandi bash

Per personalizzare la cronologia dei comandi bash, dovremo apportare modifiche al ~/.bashrc file. Per modificare il ~/.bashrc, usa il seguente comando:

$ nano ~/.bashrc

Una volta che hai finito di modificare il file, usa Ctrl+O e Ctrl+X per salvare e chiudere l'editor nano.

Quindi eseguire il seguente comando per applicare le modifiche:

$ fonte ~/.bashrc

1. Aggiungi data e timestamp alla cronologia di Bash

Se desideri visualizzare data e timestamp insieme alla cronologia dei comandi, puoi farlo aggiungendo la seguente riga in ~/.bashrc:

$ export HISTTIMEFORMAT='%F, %T '

Ora esegui il storia comando e mostrerà la cronologia dei comandi con i dati e il timestamp corrispondenti.

2. Aumento delle dimensioni della cronologia di Bash

Bash per impostazione predefinita mantiene 500 comandi nell'elenco della cronologia. Tuttavia, possiamo modificare questo valore utilizzando il valore HISTSIZE.

Per visualizzare la dimensione corrente della cronologia bash, esegui il seguente comando in Terminale:

$ echo $HISTSIZE

Allo stesso modo, la dimensione predefinita del file di cronologia bash è 500. È il numero massimo di voci contenute nel file di cronologia.

Per aumentare la dimensione della cronologia di bash, diciamo 10000, aggiungi le seguenti righe in  ~/.bashrc file:

$ HISTSIZE=10000
$ HISTFILESIZE=10000

Per verificare se la dimensione della cronologia bash è cambiata correttamente, esegui i seguenti comandi in Terminale:

$ echo $HISTSIZE
$ echo $HISTFILESIZE

3. Aggiungi i comandi Bash al file di cronologia

Quando una sessione bash viene chiusa, puoi scegliere se sovrascrivere o aggiungere i comandi nel file di cronologia usando la variabile histappend. Per visualizzare le impostazioni correnti, esegui il seguente comando in Terminale:

$ shopt histappend

L'opzione "on" nell'output mostra che l'opzione histappend è abilitata e i comandi verranno aggiunti nel file di cronologia invece di sovrascrivere. Mentre viene visualizzato "off", l'opzione histappend è disabilitata e il file verrà sovrascritto.

Apri il ~/.bashrc e:

Aggiungi la seguente riga, se vuoi aggiungere i comandi al file della cronologia invece di sovrascrivere:

$ shopt -s istappend

Oppure aggiungi la seguente riga, se vuoi disabilitare l'opzione append e vuoi sovrascrivere il file all'uscita:

$ shopt -u istappend

4. Memorizza immediatamente la cronologia di Bash

Bash per impostazione predefinita salva la sessione nel file di cronologia bash solo una volta terminata la sessione. Per modificare questo comportamento predefinito e farlo salvare istantaneamente ogni comando che hai eseguito, puoi utilizzare PROMPT_COMMAND.

Modifica il ~/.bashrc e aggiungi la seguente riga:

$ PROMPT_COMMAND='storia -a'

Ora ogni volta che esegui un comando, verrà immediatamente aggiunto al file della cronologia.

5. Controlla la cronologia di Bash

Possiamo controllare il modo in cui bash salva la nostra cronologia dei comandi tramite la variabile HISTCONTROL. Possiamo specificarlo per ignorare le voci duplicate e/o per ignorare le voci con spazi bianchi iniziali.

Per applicare queste funzioni, apri il ~/.bashrc e aggiungi la seguente riga con i valori separati dai due punti come segue:

$ export HISTCONTROL=ignorespace:ignoredups

6. Ignora comandi specifici

Possiamo anche controllare quali comandi ignorare nella cronologia usando una variabile HISTIGNORE. È un elenco di pattern separati da due punti in cui possiamo specificare tutti i comandi che vogliamo ignorare dalla cronologia.

Ad esempio, se non vogliamo elencare i comandi di base come history, ls, comandi pwd nell'elenco della cronologia, aggiungiamo la seguente riga nel ~/.bashrc file:

$ export HISTIGNORE="storia:ls:pwd:"

Con la cronologia dei comandi bash di Linux, puoi fare molto di più che ripetere i vecchi comandi. In questo articolo, abbiamo imparato come utilizzare la cronologia di bash per visualizzare i comandi eseguiti in precedenza e abbiamo anche imparato a controllare il modo in cui bash salva la cronologia dei comandi.

Come aggiornare le reti Wi-Fi in Ubuntu
Per connettersi a una rete Wi-Fi, si dovrebbe andare nella barra in alto e fare clic sull'icona Wireless e quindi selezionare la rete wireless dall'el...
Come installare il tema dell'icona di macOS Catalina su Ubuntu
Le icone predefinite di Ubuntu hanno un bell'aspetto, ma se vuoi ravvivarlo con un tema brillante ispirato a macOS, sei nel posto giusto. Nel tutorial...
Come eseguire Ubuntu utilizzando il sottosistema Windows per Linux
All'inizio di questa settimana, abbiamo riportato la prima conferenza Windows Linux, WSLconf 1, il prossimo marzo.  WSLConf 1 promette di concentrarsi...