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


18

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

In questa situazione, vorrei che il tasto freccia SU recuperasse i comandi utilizzati in una scheda specifica. È possibile?


Ho paura, non penso che ci sia un modo per determinare il profilo dalla shell.
tumbleweed,

Risposte:


16

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 dentro ~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi

10

Fintanto che il ttycomando ti dà risultati separati (cosa che certamente dovrebbe in qualsiasi ambiente Unix standard, anche se ho avuto comportamenti occasionali in cygwin con alcuni emulatori terminali), puoi anche usarli per separare le cose.

Ho qualcosa di simile al seguente nel mio .bashrc:

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

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

  1. su che macchina sono,
  2. chi sono e
  3. su che terminale sono.

E potresti aggiungerne ancora di più se pensi a cose rilevanti per te.

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.