La cronologia dei comandi di Bash non funziona

13

La cronologia dei comandi tra le sessioni non viene salvata. Sto usando Guake e la cronologia della sessione sta funzionando bene.

Ho notato che .bash_history aveva alcuni comandi che ho eseguito in modalità sudo -s e ho provato di nuovo lo stesso e tutti i comandi durante la sessione sono stati salvati, quindi ho provato chmod 777 .bash_history

Ora i vecchi comandi appaiono all'inizio di una sessione ma nessun nuovo comando viene salvato

Grazie in anticipo

    
posta v2r 19.03.2011 - 15:01
fonte

4 risposte

15

I comandi non sono visibili perché Bash salva la cronologia nel file .bash_history solo dopo che la shell si è chiusa e ciò accade molto raramente con Guake. C'è una soluzione semplice per fare in modo che Bash aggiunga la cronologia (anziché sovrascrivere il file) dopo ogni comando

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
    
risposta data Adam Byrtek 20.03.2011 - 01:32
fonte
7

Relativo, tipicamente, il modo in cui questo viene interrotto è se sudo un comando prima di avere un file .bash_history, poiché verrà creato di proprietà di root invece che dell'utente.

    
risposta data khamer 29.03.2011 - 15:25
fonte
3

Vedi link su come evitare di perdere le linee della cronologia e una spiegazione degli effetti collaterali di ciò.

    
risposta data geirha 20.03.2011 - 02:59
fonte
2

Potrebbe anche essere root: root possiede il tuo .bash_history (ROOT NON DEVE ESSERE IL PROPRIETARIO, IL TUO UTENTE DEVE ESSERE IL PROPRIETARIO!), in tal caso devi:

#chown user:user .bash_history

Questo potrebbe accadere apparentemente se fai sudo bash molto!

    
risposta data mahatmanich 10.07.2013 - 15:58
fonte

Leggi altre domande sui tag