Come fare in modo che bash (Terminal.app) ricordi la storia delle sessioni precedenti?

11

Nel mio computer al lavoro, la mia shell bash ricorda la cronologia delle sessioni precedenti, anche se ho appena aperto un nuovo terminale.
Nel mio computer a casa, questo non succede.
Ho lo stesso OS 10.6.8 in entrambe le macchine e non ho alcuna impostazione relativa alla cronologia in .bash_profile .
Come posso configurarlo sul mio computer di casa in modo che ricordi la cronologia tra le sessioni?

    
posta Petruza 07.05.2012 - 16:01
fonte

5 risposte

9

Dovrai dire a bash dove conservare il tuo file di cronologia e quante righe tenere:

# Set the location of your HISTFILE
echo "export HISTFILE=/Users/<USERNAME>/.bash_history" >> ~/.bash_profile

# Number of lines to keep (1000 in this example)
echo "export HISTFILESIZE=1000" >> ~/.bash_profile

# Set how many commands to keep in the current session history list
echo "export HISTSIZE=80" >> ~/.bash_profile

# Ignore commands that start with a space
echo "export HISTIGNORE=\"&:[ ]*:exit\"" >> ~/.bash_profile
    
risposta data 07.05.2012 - 16:19
fonte
4

Ho appena scoperto di avere un problema simile, anche se il mio datore di lavoro ha solo due Mac e nessuno si siede sulla scrivania my . Inaccettabile, ma una battaglia per un'altra volta.

Comunque, a casa, Mac Mini (migrato da MacBook Pro) non ha collaborato anche dopo aver impostato .bashrc e / o .profile . Poi ho scoperto che il mio file ~/.bash_history era misteriosamente di proprietà di root. Dovevo fare questo:

sudo -iu root
cd ~(myusername)
chown (myusername) .bash_history

(Sì, so che può essere fatto con meno comandi.).

Poi sono uscito da Terminal e ne ho avviato uno nuovo. Woot! Tutti i tipi di storia precedentemente persi tornarono di corsa. Che bello!

Probabilmente chiunque leggendo questo si è casualmente messo in questa situazione: lo 0,2%. Sono sicuro di averlo messo a tacere quando ho "aggiustato" zelantemente qualcos'altro.

    
risposta data 26.01.2014 - 18:13
fonte
4

Ho avuto questo problema e ciò che ha funzionato per me è stato creare un file chiamato .bash_sessions_disable nella mia cartella utente ( ~/ ).

Fondamentalmente OS X crea file di cronologia nella cartella .bash_sessions per ogni sessione (nel mio caso, uno per ogni Tab). E anche chiudendo correttamente queste sessioni, OS X non ripete lo storico su .bash_history .

Crea .bash_sessions_disable per disabilitare questo comportamento.

touch ~/.bash_sessions_disable
    
risposta data 15.04.2016 - 14:36
fonte
1

Questa risposta di questo thread Reddit mi ha salvato:

It's probably RVM preventing the exit "hook" for bash_sessions to run. If you comment out the following line in your .bash_profile, it should work.

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
    
risposta data 01.06.2016 - 11:36
fonte
0

Ho avuto anche un problema simile, nessuna cronologia registrata. Le soluzioni fornite non funzionavano, ma alla fine ho scoperto che il problema era semplice come una mancanza .bash_history

La soluzione era andare a /home/[username]/ e aggiungere un file .bash_history , quindi

nano .bash_history

e poi scrivi qualsiasi cosa nel file (altrimenti non verrà creato), esci e salva. Successivamente, la cronologia ha iniziato a funzionare normalmente.

    
risposta data 12.12.2014 - 15:18
fonte

Leggi altre domande sui tag