Come salvare manualmente la cronologia dei terminali?


33

Comprendo che il file della cronologia viene aggiornato alla chiusura del terminale. Ma a volte il mio computer si arresta in modo anomalo e il terminale non si chiude in modo pulito, quindi perdo quei comandi della mia cronologia che è fastidioso. Come posso farlo immediatamente, in modo che le voci vadano ancora lì anche se il mio computer ha un tracollo? Al momento sto usando questa soluzione alternativa, ma sento che dovrebbe esserci un modo migliore.

Sto usando gnome-terminal su Ubuntu 12.10.

Risposte:


17

Le risposte nel collegamento fornite dal sito dei Super utenti non devono necessariamente essere visualizzate come "soluzioni alternative" al historycomportamento predefinito del comando. La shell bash ha alcuni comportamenti predefiniti, pronti all'uso.

Consiglio vivamente di leggere Come posso evitare di perdere le righe della cronologia? per una spiegazione di cosa historystanno facendo queste modifiche . Inoltre, ci sono alcune ragionevoli preoccupazioni da tenere presenti sul perché questo non è il comportamento predefinito del historycomando.

  • prestazioni - Dato che stai salvando tutti i comandi da ogni finestra history -a, il .bash_historyfile può diventare piuttosto grande e richiedere maggiori risorse per caricare la shell bash. Ciò può comportare tempi di avvio più lunghi (per le sessioni del terminale, non l'avvio generale del sistema, di per sé).

  • organizzazione - (dall'articolo precedente) "i comandi di cronologia delle shell interattive simultanee (per un determinato utente) saranno intrecciati. Pertanto la cronologia non è un elenco sequenziale garantito di comandi poiché sono stati eseguiti in una singola shell."

Se sei preoccupato di proteggere ulteriormente la shell bash e il file. bash_historyfile attraverso il controllo, dai un'occhiata a questo articolo: Come posso accedere alla cronologia o bash "sicuro" contro la rimozione della cronologia?

A volte (ad esempio un sistema instabile o mancanza di corrente), ho trovato utili i comandi seguenti.

Aggiungi le seguenti righe al tuo ~/.bashrcfile:

unset HISTFILESIZE
HISTSIZE=3000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND

shopt -s histappend

Assicurati di fare il sorgente del tuo .bashrcfile usando il comandosource ~/.bashrc



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.