É importante entender que todo processo tem seu próprio conjunto de variáveis de ambiente.
Quando um processo chama a chamada de sistema fork() , um segundo processo (o filho ) idêntico ao primeiro ( o pai ) é criado (este copy inclui o ambiente, que reside logo acima da pilha (ou logo abaixo, dependendo de como você pensa em pilhas :-) - mas em unix / linux a pilha cresce para baixo em endereços altos) .
Normalmente, o processo filho chamará a chamada de sistema execve() , que descartará tudo em sua memória (virtual) e reconstruirá a partir das seções de código e dados no arquivo binário especificado .
No entanto, quando reconstrói a pilha, ele copia as seqüências de caracteres do ambiente e do argumento passadas para execve() na pilha primeiro (nessa ordem), antes de chamar a função main() (muito do trabalho é feito no código de bootstrap crt0 após o execve() retorna (para o ponto de entrada especificado no binário)).
Existem invólucros para a chamada de sistema execve() na biblioteca C que passará no ambiente atual (ou seja, uma cópia do ambiente dos pais), em vez de o chamador fornecer (assim, de fato, a criança herdará o ambiente do pai) - veja environ(7) .
Tente executar (como root) o comando ps axeww | less ... isto mostrará o ambiente para os processos all ! Um interessante é o id do processo 1 (ou seja, o init process - o primeiro processo criado pelo kernel no momento da inicialização).
Se você quiser olhar o ambiente para um processo específico (e você sabe qual é o id do processo), tente executar o comando cat /proc/<PID>/environ (substituindo <PID> pelo ID do processo).
Note que se um processo tem privilégios suficientes, ele pode reescrever sua própria pilha, o que pode tornar difícil saber qual é o seu ambiente - você verá alguns processos daemon como este na saída do ps.
Mas no final, todo esse waffle se resume ao que @chaos disse acima, se você quiser ver o valor atual de uma variável de ambiente específica no seu processo shell, apenas use o comando (builtin) echo "$<NAME>" ( substituindo <NAME> pelo nome da variável de ambiente em que você está interessado ... apenas esteja ciente de que a mesma variável pode ter um valor diferente, ou não existir, em outro processo.