já passou pela frustração de declarar uma variável na linha de comando do linux e ao iniciar uma nova sessão do shell a variável não está mais lá ?
Esse é um problema comum para quem está começando a trabalhar com o terminal no linux. Sem o ajuste correto, as variáveis são limitadas à sessão atual.
Neste post, será explicado como declarar variáveis de ambiente no linux, para que possa utiliza-las novamente ao iniciar novas instâncias do shell.
O que são variáveis e como declarar variáveis no Linux ?
As variáveis são áreas da memória que armazenam temporariamente dados para processamento do programa durante a sua execução.
Os principais propósitos de uma variável é:
- Reutilizar dados durante a execução do programa, você pode usar o valor armazenado na variável várias vezes sem precisar repetir ou reescrever.
- Fazer cálculos, operações matemáticas e lógicas, controlando o comportamento do código.
- Alterar o valor da variável durante a execução do programa.
Para declarar uma variável no shell (por exemplo: shell bash) do linux tem algumas regras:
- A identificação (nome) da variável deve ser composta somente de letras (exceção da letra “Ç”), números e o caractere “_” (underline).
- O nome da variável deve iniciar com o caractere “_” (underline) ou letras.
- Após o nome da variável deve incluir o caractere “=” (igual). Não pode haver espaços entre o nome da variável e o caractere “=”.
- Após o caractere “=” (igual) deve-se atribuir o valor da variável. Caso o valor contenha espaços em branco, é recomendável incluir o valor entre aspas.
Para declarar uma variável, por exemplo, com a identificação BLOG e o valor dlncloud, execute na linha de comando:
BLOG=dlncloudoutra forma de declarar a variável:
BLOG=”dlncloud”Para visualizar o valor de uma variável execute o comando echo e passe como argumento o caractere “$” (cifrão) seguido da identificação (nome) da variável.
Por exemplo para visualizar o conteúdo da variável BLOG, execute o comando:
echo $BLOGQuando a variável é declarada no shell do linux ela somente pode ser usada na sessão atual. Ao iniciar uma nova sessão a partir da sessão atual a variável não existe mais.

Caso precise usar em novas sessões do shell é necessário exportar a variável, tornando-a uma variável de ambiente.
O que é uma variável de Ambiente no linux e por que usar ?
No linux, uma variável de ambiente é uma variável criada na atual sessão do shell e herdada pelos processos filhos.
Ao iniciar o shell algumas variáveis de ambiente são declaradas automaticamente, sem intervenção do usuário. Elas são criadas a partir de arquivos que o shell lê e executa e também por processos do sistema.
As variáveis de ambiente no linux são usadas para passar informações que influenciam o comportamento dos processos iniciados a partir do shell. Assim, é possível adaptar o ambiente às necessidades de diferentes usuários e programas que utilizam o sistema.
Por exemplo, ao alterar o valor da variável LANG para en_US.UTF-8, o idioma usado pelos programas muda para inglês e a codificação de caracteres para UTF-8.
Outro exemplo, ao alterar a variável EDITOR, significa que você está instruindo os comandos linux (que usam um editor de texto) a usar como editor padrão o que foi definido na variável EDITOR.
Como declarar Variáveis de Ambiente no linux ?
Para declarar uma variável de ambiente no linux é necessário exportar a variável executando o comando export ou declare (com opções -x) seguido da identificação (nome) da variável e seu valor.
Por exemplo, para declarar (criar) uma variável chamada system que receba o valor RHEL, execute o comando:
export system=RHELou utilize o comando declare:
declare -x system=RHEL
A imagem acima mostra que a variável (system) de ambiente exportada pode ser usada em uma nova sessão filho do shell bash.
Para alterar o escopo de uma variável existente na linha de comando transformando-a em variável de ambiente utilize o comando export seguido do nome da variável sem o caractere “$” (cifrão):
export BLOG
No exemplo, a variável BLOG foi exportada, por isso que na imagem anterior ela existe na nova sessão do shell bash.
Ao declarar variáveis dentro de um shell script, essas variáveis podem ser usadas somente para os comandos executados no shell script.
Para a variável ficar disponível para outro um segundo shell script executado dentro do primeiro shell script onde variável foi criada, é preciso exportar a variável.
Um shell script só pode exportar variáveis para processos filhos, ou seja, apenas para comandos ou processos que esse script específico inicia.
Um script invocado a partir da linha de comando não pode exportar variáveis de volta para o ambiente da linha de comando. Processos filhos não podem exportar variáveis de volta para os processos pais que os criaram.
Como declarar variáveis de forma persistente ?
Ao abrir um console virtual ou uma nova aba em um emulador de terminal a variável exportada no shell não existe. Porque o novo shell não foi iniciado a partir da sessão do shell em que a variável foi declarada.
Para que suas variáveis de ambiente no Linux não sumam após o logoff ou para existirem em outros terminais que serão iniciados, você deve inseri-las em arquivos que o shell lê automaticamente ao iniciar.
Caso tenha permissão administrativa inclua a variável no fim do arquivo /etc/profile, o código desse arquivos é lido após a autenticação da conta de usuário no sistema.
Se a conta de usuário não tem permissão administrativa, inclua no arquivo .bashrc (para o shell Bash) ou .zshrc (para o shell zsh), localizados na pasta Home da conta de usuário que está utilizando.
Tanto para o arquivo /etc/profile quanto para os arquivos “~/.bashrc” ou “~/.zshrc” inclua a variável com seu valor usando o comando export ou declare como já ensinado.
Por exemplo, para adicionar uma variável permanentemente, siga estes passos:
1. Abra o arquivo com o comando:
nano ~/.bashrcou com:
vi ~/.bashrc2. Vá até o final do arquivo e adicione: export NOME_DA_VARIAVEL=”VALOR”
3. Salve as alterações e saia do editor de texto.
4. Aplique as mudanças imediatamente na sessão atual:
source ~/.bashrcAgora, toda vez que você iniciar uma nova sessão, a variável criada dentro de “~/.bashrc” poderá ser usada pelos processos executados na sessão do shell.
Removendo variáveis de ambiente no linux
No linux, para remover uma variável seja de ambiente ou não utilize o comando unset seguido do nome da variável, sem incluir o caractere “$” (cifrão).
Caso seja uma variável de ambiente, antes de remove-la verifique se a variável de ambiente existe executando o comando printenv:
printenvO comando printenv exibe na tela a lista de variáveis de ambiente no linux e seus valores.
Para remover uma variável da sessão atual, utiliza-se o comando unset. No exemplo a seguir será removida a variável chamada BLOG:
unset BLOGIMPORTANTE
Lembre-se que o comando unset apenas remove a variável da memória da sessão atual, se ela estiver escrita no arquivo /etc/profile ou ~/.bashrc, por exemplo, ela voltará na próxima vez que você abrir o terminal.
Conclusão
Agora que foi explicado como declarar variáveis no linux tornando-as persistentes, você pode criar ou alterar variáveis de ambiente no linux existentes para adequar ao seu uso.
É recomendado a leitura do manual do shell bash para saber mais sobre as variáveis que o shell bash usa e qual é a finalidade de cada uma.
Ficou com alguma dúvida ou tem alguma sugestão ? Deixe seu comentário abaixo, pois sua participação é muito importante para nós!

