DEV Community

Lucas Nobre Barbosa
Lucas Nobre Barbosa

Posted on • Edited on

Uma Introdução a Variáveis de Ambiente em Linux

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.

export NAME=VALUE
Enter fullscreen mode Exit fullscreen mode

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.

export MAX_NUMBER_FILES=3
Enter fullscreen mode Exit fullscreen mode

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

echo $MAX_NUMBER_FILES
Enter fullscreen mode Exit fullscreen mode

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

export CAMINHO_DADOS_VENDAS="~/algum/caminho/valido/dados_vendas"
Enter fullscreen mode Exit fullscreen mode

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

unset MAX_NUMBER_FILES
Enter fullscreen mode Exit fullscreen mode

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.

set
Enter fullscreen mode Exit fullscreen mode

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

export
Enter fullscreen mode Exit fullscreen mode

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

export -p
Enter fullscreen mode Exit fullscreen mode

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.

vim ~/.bash_profile
Enter fullscreen mode Exit fullscreen mode

No final do arquivo, adicione

export CAMINHO_DADOS_VENDAS="~/algum/caminho/valido/dados_vendas"
Enter fullscreen mode Exit fullscreen mode

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

source ~/.bash_profile
Enter fullscreen mode Exit fullscreen mode

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.
sudo touch /etc/profile.d/http_proxy.sh
Enter fullscreen mode Exit fullscreen mode
  1. Abra o arquivo criado usando um editor de texto
sudo vim /etc/profile.d/http_proxy.sh
Enter fullscreen mode Exit fullscreen mode
  1. Adicione as variáveis de ambientes no arquivo
export HTTP_PROXY=http://my.proxy:8080
export HTTPS_PROXY=https://my.proxy:8080
export NO_PROXY=localhost,::1,.example.com
Enter fullscreen mode Exit fullscreen mode
  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.

Top comments (0)