La cronologia di Bash non è stata ricordata nel Terminale

3

La mia cronologia di Bash viene ricordata quando mi collego al mio Mac tramite SSH, uso iTerm2 o lancio bash nell'app Terminal incorporata (ogni comando che ho digitato in bash viene salvato) ma non è quando uso solo l'app Terminal integrata. Ho già provato a ripristinare i profili in Terminal. Ho anche controllato la proprietà e le autorizzazioni di .bash_history . Più tardi ho anche provato a cancellare questo file. Questa risposta non ha aiutato neanche. La mia shell predefinita è sicuramente bash .

    
posta Ph99Ph 25.12.2015 - 14:32
fonte

2 risposte

1

Inizia ad isolare la fonte del problema rimuovendo eventuali personalizzazioni della cronologia di Bash. Ad esempio, qualsiasi codice che imposta le variabili di shell che iniziano con HIST o utilizza set -o per impostare le opzioni di history o histexpand .

Il codice della cronologia dei comandi per sessione in /etc/bashrc_Apple_Terminal tenta di mantenere la compatibilità con le variabili di cronologia di Bash e tenta di rilevare quando l'utente sta probabilmente facendo qualcosa che non può essere compatibile e disabilita il meccanismo in quel caso (perché l'utente sta facendo qualcosa di arbitrario, come caricare, salvare o modificare la cronologia). Tuttavia, se hai script che eseguono il comando history , quel codice non ha modo di sapere in anticipo; dovrai aggiornare il tuo codice per mantenere la compatibilità con la nuova cronologia dei comandi per sessione, oppure disabilitare la cronologia delle sessioni impostando SHELL_SESSION_HISTORY=0 come descritto nella documentazione in /etc/bashrc_Apple_Terminal .

Se non stai personalizzando HISTFILE , HISTTIMEFORMAT o l'opzione histappend shell, un'altra cosa da verificare è se gli script di avvio della shell modificano o la variabile PROMPT_COMMAND o la trappola EXIT senza concatenando il valore precedente per evitare di cancellarlo.

Vedi i commenti in /etc/bashrc_Apple_Terminal per una descrizione di come funziona il meccanismo e come personalizzarlo o disabilitarlo.

    
risposta data 30.12.2015 - 14:05
fonte
0

Vedi questa risposta da una domanda simile. El Capitan ha apportato alcune modifiche per cui tenta di fare la cronologia dipendente dalla sessione. È probabile che tu possa risolvere il problema eseguendo touch ~/.bash_sessions_disable per creare un file flag per disabilitare questo comportamento.

    
risposta data 01.01.2016 - 21:34
fonte

Leggi altre domande sui tag