Я знаю, что могу использовать --private или -P, но он удаляет историю только при закрытии терминала.
Что делает "--private", так это предотвращает историю от хранения на диске. Он не «удаляет» историю после выхода, поскольку она никогда не сохраняется нигде, кроме вашей оперативной памяти.
Ничто не мешает fi sh хранить даже интерактивную историю на глобальной основе.
Если вы хотите, чтобы fi sh не запоминал какую-либо конкретную командную строку, начните ее с пробела:
> echo sad # is remembered
> echo happy # is not