# Variável de ambiente

Uma variável de ambiente é um valor nomeado dinamicamente que pode afetar o modo como os processos em execução irão se comportar em um computador.
Elas são parte do ambiente no qual um processo executa. Por exemplo, um processo em execução pode consultar o valor da variável de ambiente TEMP para descobrir um local adequado para armazenar arquivos temporários, ou a variável HOME ou USERPROFILE para encontrar a estrutura de diretórios pertencente ao usuário que está executando o processo. Desta forma, elas podem afetar a forma como um processo se comporta, e cada processo pode ler e escrever variáveis de ambiente.
Elas foram introduzidas em sua forma moderna em 1979 com o Unix Versão 7, desta forma foram incluídas em todos os tipos e variantes de sistema operacional Unix a partir daquele ponto em diante incluindo o Linux e macOS. A partir do PC-DOS 2.0 em 1982, todos os sistemas operacionais Microsoft posteriores, incluindo o Microsoft Windows e OS/2, também incluíram as variáveis de ambiente como um recurso, apesar de que com uma sintaxe, utilização e nomes padrões de variáveis um pouco diferentes.

## Design

Em todos os sistemas Unix e Unix-like, cada processo possui seu conjunto privado de variáveis de ambiente. Por padrão, quando um processo é criado ele herda uma cópia das variáveis de ambiente do processo pai, exceto por mudanças explícitas feitas pelo pai quando o novo processo é criado (entre as chamadas fork e exec). Todos os tipos de Unix assim como o DOS e o Microsoft Windows possuem variáveis de ambiente; entretanto, variáveis para funções parecidas entre os sistemas possuem nomes distintos. Programas podem acessar os valores das variáveis de ambiente para efeitos de configuração.
Shell scripts e arquivos de lote usam variáveis de ambiente para armazenar dados temporários e também para comunicar dados e preferências a processos filhos.
No Unix, as variáveis de ambiente são normalmente inicializadas durante a inicialização do sistema, e portanto é herdada por todos os outros processos do sistema. No Microsoft Windows, os valores padrão das variáveis de ambiente são armazenados no registro do sistema e configurados através do autoexec.bat.

## Acesso

As variáveis podem ser usadas tanto por scripts quanto pela linha de comando. São geralmente referenciadas usando-se símbolos especiais na frente ou nas extremidades no nome da variável. Por exemplo, para mostrar o caminho de busca em um sistema DOS ou Windows, usa-se o comando echo %PATH%, em Unix usa-se echo $PATH.
Em DOS e Windows o comando SET sem argumentos lista as variáveis de ambiente disponíveis e seus valores. Para escrever um valor, usa-se SET VARIAVEL=novo_valor. Entretanto, a mudança é temporária, e para ser permanente deve-se editar o registro do sistema. Já em Unix, os comandos env, set e printenv listam as variáveis de ambiente disponíveis e seus valores. env e set também são usadas para escrever valores.

## Variáveis de ambiente comuns
### DOS

* %COMSPEC% - caminho completo do command.com.
* %PATH% - lista de diretórios que são acessos durante uma busca do shell, por exemplo, para comandos globais do sistema (executáveis fora da pasta corrente).
* %TEMP% e %TMP% - caminho para o diretório em que o sistema operacional armazena arquivos temporários.

### Unix

* $PATH - lista de diretórios que são acessados durante uma busca do shell, por exemplo, para comandos globais do sistema (executáveis fora da pasta corrente).
* $HOME - diretório raiz do usuário atual.
* $LANG, $LC_ALL - locale padrão.
* TERM - tipo do terminal ou emulador de terminal sendo usado.
* $TZ - fuso horário em uso.

### Windows

* %CD% - diretório atual.
* %DATE% - data atual, formatada de acordo com a preferência do utilizador.
* %TIME% - hora atual, formatada de acordo com a preferência do utilizador.
* %RANDOM% - número aleatório entre 0 e 32767.
* %ProgramFiles% - caminho completo do diretório "Arquivos de programas".
* %SystemDrive% - drive de instalação do sistema operacional.
* %systemroot% - diretório de instalação do sistema operacional.
* %WinDir% - diretório de instalação do sistema operacional.
* %SystemDirectory% - diretório de instalação da pasta system32.
* %USERNAME% - o nome do usuário logado.
* %HomePath% - diretório do usuário logado(sem o drive).
* %HomeDrive% - drive do diretório do usuário logado.
* %TEMP% - diretório temporário do usuário logado.
* %Tmp% - diretório temporário do usuário logado.
* - O nome do controlador de domínio onde o usuário está autenticado.
* %UserDomain% - O nome do domínio que detém a conta do usuário.
* %ComSpec% - diretório onde se encontra o comando (cmd.exe) - prompt do ms-dos.
* %ComputerName% - Exibe o nome do computador atual.
* %userprofile% - diretório de arquivos do usuário logado.
* %PUBLIC% - diretório de arquivos público

## Notas e Referências

* ↑ Haeder, Adam. Alta Books, ed. Certificação Linux LPI: rápido e prático. 2012 3 ed. Rio de Janeiro: [s.n.] 520 páginas. 9788576086444