Posso creare un file di cronologia bash separato per ogni profilo del terminale?

17

Uso uno script bash per avviare gnome-terminal con più schede, ogni scheda utilizza un profilo diverso, una directory di lavoro e, in alcuni casi, esegue un comando all'interno della scheda.

In questa situazione, mi piacerebbe che il tasto freccia su recuperi i comandi utilizzati in una scheda specifica. È possibile?

    
posta Inkayacu 10.01.2012 - 22:03

2 risposte

14

Suppongo che tu possa usare un comando personalizzato gnome-terminal per ogni profilo, per esempio

bash -c 'PROFILE=default_profile exec bash'

o

bash -c 'PROFILE=screen_profile exec screen -U'

o simili.

Quindi in ~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi
    
risposta data enzotib 10.01.2012 - 22:34
8

Finché il comando tty ti dà risultati separati (che certamente dovrebbe in ogni ambiente Unix standard, anche se ho avuto occasionali comportamenti scorretti in cygwin con alcuni emulatori di terminale), puoi usarlo per separare le cose, come bene.

Ho qualcosa del genere nel mio .bashrc :

export HISTFILE="${HOME}/.history.d/history-"'uname -n'"-"'id -nu'"-"'tty|cut -c6-'

Che può sembrare eccessivo, ma tu hai l'idea. Si divide in base a

  1. quale macchina sono su,
  2. chi sono e
  3. quale terminale sono attivo.

E potresti aggiungere ancora di più se pensi a cose che sono rilevanti per te.

    
risposta data Philipp Hanes 26.02.2013 - 21:32

Leggi altre domande sui tag