Parece que não há solução integrada para isso, mas a implementação manual não é tão difícil. É preciso armazenar o histórico de cada sessão separadamente e recriá-lo em cada prompt (não é tão lento quanto parece). Aqui está a lógica central:
# on every prompt, save new history to dedicated file and recreate full history
# by reading all files, always keeping history from current session on top.
update_history () {
history -a ${HISTFILE}.$$
history -c
history -r
for f in 'ls ${HISTFILE}.[0-9]* | grep -v "${HISTFILE}.$$\$"'; do
history -r $f
done
history -r "${HISTFILE}.$$"
}
export PROMPT_COMMAND='update_history'
# merge session history into main history file on bash exit
merge_session_history () {
cat ${HISTFILE}.$$ >> $HISTFILE
rm ${HISTFILE}.$$
}
trap merge_session_history EXIT
Consulte esta questão para obter uma solução completa, incluindo algumas salvaguardas e otimizações de desempenho.