Где хранятся переменные окружения UBUNTU?
Переменные окружения хранятся в памяти процесса, в вашем случае это bash - командный интерпретатор, который в терминала или в консоли.
Чтобы установить переменную среды используйте команду export.export DB_HOST=localhost
Маленькое замечание, переменная устанавливается ТОЛЬКО в текущем интерпретаторе, и если запустить второй терминал, то ее там уже не будет!
Чтобы установить переменную для всех интерпретаторов используйте файл .bash_profile в корневой папке пользователя.
Но! Если запускать например из systemd как системный сервис, то нужно передавать переменные отдельно!
В общем и целом, переменные среды хранятся в памяти, а аак они туда попадают - зависит от вызывающей программы или сервиса.
В частном случае легче всего написать скриптовый файл для запуска и установки переменных среды типа start.sh (тоько сделайте его исполняемым #!/bin/bash

export MYENV=myvalue
python myscript.pychmod +x start.sh
./start.sh
Вообще-то, понятие "переменные окружения" - очень многозначное. Например, есть переменные окружения в каждом процессе - как Вам сказали, при fork и exec они копируются от родителя к ребёнку, потом оба могут их менять. В шеллах есть два экземпляра таких переменных: один для наследования, второй для внутреннего использования.
А есть переменные окружения в ядре. Этот набор - один на всю систему (хотя в вирт.машинах он м.б. свой).
Попробуйте погуглить по " os.environ" - там хорошо разжёвано.