Uma Introdução a Variáveis de Ambiente em Linux
Tags: beginners, tutorial, linux, braziliandevs
Published: 2023-09-11 12:55:35

## **Introdução**

Em sua jornada pelo Linux você já deve ter ouvido falar sobre variáveis de ambiente, como uma das mais famosa delas, a variável de ambiente PATH. Mas, o que são essas variáveis? Para o que elas são úteis? São difíceis de aprender? Nesse artigo eu espero te ajudar a responder essas perguntas e talvez até mesmo atiçar sua curiosidade para se aprofundar nesse conteúdo.

Observe que esse artigo é sobre variáveis de ambiente de forma bem genérica, não falaremos de forma aprofundada sobre PATH, todavia escreverei um outro artigo inteiramente sobre essa variável de ambiente tão importante e famosa.

## **O que são Variáveis de Ambiente?**

Nas linguagens de programação existem as variáveis, espaços de memória o qual damos nomes e um valor, como preco = 5.32, em Python. Variáveis de Ambiente são como constantes, que são definidas fora do programa através de alguns comandos ou configurando alguns arquivos.

Elas são muito úteis para esconder informações importantes como senhas, porque colocar essas senhas direto na aplicação é uma péssima ideia (principalmente quando se trata de um repositório público). Definir as senhas em variáveis de ambiente ajuda a esconder elas de pessoas mal intencionadas. Variáveis de Ambiente também são úteis para auxiliar na manutenção do código, pois centralizam algumas configurações em um único lugar e evitam acidentes durante a edição do código. Algumas aplicações são: nomes de domínios, grupo de emails ou URLs/URIs de APIs.

## **Criando Variáveis de Ambiente**

Em linux, para configurar variáveis de ambiente, normalmente é usado o comando export.

```shell
export NAME=VALUE
```

O comando é simples de entender, ao usar ele, você cria uma variável de ambiente com nome NAME e valor VALUE. Por exemplo, podemos criar a variável de ambiente MAX_NUMBER_FILES, que define o número máximo de arquivos que uma aplicação suporta.

```shell
export MAX_NUMBER_FILES=3
```

Para verificar o valor da variável de ambiente, basta usar o comando echo

```shell
echo $MAX_NUMBER_FILES
```

Se a variável não existir, uma linha em braco vai aparecer no terminal.

Outro exemplo seria passar o caminho comumente usado para seus projetos

```shell
export CAMINHO_DADOS_VENDAS="~/algum/caminho/valido/dados_vendas"
```

## **Apagando Variáveis de Ambiente**

Tão simples quanto criar uma variável de ambiente é apagá-la, mas também não se engane, não basta reconfigurá-la com um valor “vazio”, ela vai continuar lá, só que sem valor. A forma correta de apagar uma variável de ambiente é através do comando unset

```shell
unset MAX_NUMBER_FILES
```

Simples assim você apagou sua variável de ambiente. Todavia, cuidado com o que apaga.

## **Listando as Variáveis de Ambiente**

Quer saber quais variáveis de ambiente já existem no seu sistema ou verificar se as que você criou estão configuradas corretamente? O comando para isso é set.

```shell
set
```

O output para isso vai ser **gigantesco**, então não se assuste, mas com um pouco de paciência você encontra o que quer.

Um outro comando que só mostra as variáveis exportadas é o export

```shell
export
```

Você pode usar a flag -p para mostrar somente as variáveis de ambiente exportadas nessa sessão

```shell
export -p
```

Procurando com atenção você verá as duas variáveis de ambiente que criamos

## **Variáveis de Ambiente Persistentes entre Sessões de um Usuário**

Quando um usuário cria variáveis de ambiente através do terminal de comando linux SHELL, essas variáveis vão existir enquanto a sessão do usuário estiver ativa. Se você quiser que essas variáveis continuem existindo sempre que o sistema for inicializado, você precisa colocar elas em um arquivo de configuração.

O arquivo bash_profile é um excelente candidato para isso, ele armazena diversas configurações do bash shell e também variáveis de ambiente padrão ou que o usuário define. Use o editor de texto de sua preferência, no meu caso será o vim.

```shell
vim ~/.bash_profile
```

No final do arquivo, adicione

```shell
export CAMINHO_DADOS_VENDAS="~/algum/caminho/valido/dados_vendas"
```

Salve o arquivo, no caso do vim isso se faz com :w (e :q para sair do editor), e assim você tem uma variável de ambiente que vai ser inicializada sempre que a sua sessão como usuário iniciar.

Observe que ao fazer isso, a variável de ambiente não vai ser inicializada automaticamente, pois esse arquivo roda quando uma sessão de usuário inicia. Se você quiser já usar essa variável de ambiente, rode também o comando

```shell
source ~/.bash_profile
```

## **Variáveis de Ambiente Persistentes entre Sessões de todos os Usuários**

Por fim, supondo que você precise de uma variável de ambiente que funcione para todo e qualquer usuário que use o mesmo computador ou servidor(chamadas de variáveis de ambiente globais), você precisa criar um arquivo tipo shell no diretório /etc/profile.d. Os passos são simples:

1. Crie um novo arquivo em /etc/profile.d para armazenar as variáveis de ambiente globais. É recomendado que o nome desse arquivo seja contextualizado com as variáveis de ambiente que ele vai armazenar.

```shell
sudo touch /etc/profile.d/http_proxy.sh
```

1. Abra o arquivo criado usando um editor de texto

```shell
sudo vim /etc/profile.d/http_proxy.sh
```

1. Adicione as variáveis de ambientes no arquivo

```shell
export HTTP_PROXY=http://my.proxy:8080
export HTTPS_PROXY=https://my.proxy:8080
export NO_PROXY=localhost,::1,.example.com
```

1. Salve suas alterações e saia do editor de texto.

## **Conclusão**

Variáveis de ambiente são ferramentas extremamente poderosas e têm o potencial de aprimorar e muito o seu processo de Desenvolvimento, de Ciência de Dados ou de engenharia de Machine Learning. Nesse artigo você aprendeu como criar variáveis de ambiente temporárias, persistentes para um usuário e variáveis de ambiente globais. A partir daqui, continue seus estudos para dominar essa ferramenta. Obrigado pela leitura.