Обычно вам нужно добавить shell=True
аргумент к вашему Popen
вызову:
co = subprocess.Popen(['history'], shell=True, stdout = subprocess.PIPE)
Или вручную указать оболочку, которую вы хотите вызвать.
co = subprocess.Popen(['/bin/bash', '-c', 'history'], stdout = subprocess.PIPE)
К сожалению, в данном конкретном случае это не поможет, потому что bash
имеет пустую историю, когда используется неинтерактивно.
Рабочим решением было бы прочитать ${HOME}/.bash_history
вручную.