Can I create a separate bash history file for each terminal profile?

I suppose you can use a gnome-terminal custom command for each profile, for example

bash -c 'PROFILE=default_profile exec bash'

or

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

or similar.

Then in ~/.bashrc

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

As long as the tty command gives you separate results (which it certainly should in any standard Unix environment, though I've had occasional misbehaviors in cygwin with certain terminal emulators), you could use that to separate things, as well.

I have something like the following in my .bashrc:

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

Which may seem like overkill, but you get the idea. It splits it out out based on

  1. what machine I'm on,
  2. who I am, and
  3. what terminal I'm on.

And you could add even more if you think of things that are relevant to you.