Overvisão

Neste tutorial, aprenderá como definir variáveis de ambiente em Ubuntu, CentOS, Red Hat, basicamente qualquer distribuição Linux para um único utilizador e globalmente para todos os utilizadores. Aprenderá também como listar todas as variáveis de ambiente e como desactivar (limpar) as variáveis de ambiente existentes.

As variáveis de ambiente são normalmente utilizadas dentro do Bash shell. É também um meio comum de configuração de serviços e manipulação de segredos de aplicações web.

Não é raro que informações específicas do ambiente, tais como pontos finais e palavras-passe, por exemplo, sejam armazenadas como variáveis de ambiente num servidor. São também utilizados para definir as localizações de directórios importantes para muitos pacotes populares, tais como JAVA_HOME para Java.

Configurar uma Variável de Ambiente

Para definir uma variável de ambiente é utilizado o comando de exportação. Damos um nome à variável, que é o que é usado para aceder a ela em scripts e configurações shell e depois um valor para guardar quaisquer dados necessários na variável.

export NAME=VALUE

Por exemplo, para definir a variável de ambiente para o directório home de uma instalação manual OpenJDK 11, usaríamos algo semelhante ao seguinte.

export JAVA_HOME=/opt/openjdk11

Para produzir o valor da variável de ambiente a partir da shell, usamos o comando echo e prependemos o nome da variável com um sinal de dólar ($).

echo $JAVA_HOME

E desde que a variável tenha um valor, ela será ecoada. Se nenhum valor for definido, então será exibida uma linha vazia.

Desactivar uma Variável de Ambiente

Desactivar uma variável de ambiente, o que elimina a sua existência em conjunto, utilizamos o comando unset. A simples substituição da variável de ambiente por uma string vazia não a removerá, e na maioria dos casos causará provavelmente problemas com scripts ou aplicações que esperam um valor válido.

Para a seguinte sintaxe é usado para anular uma variável de ambiente

unset VARIABLE_NAME

Por exemplo, para anular a variável de ambiente JAVA_HOME, usaríamos o seguinte comando.

unset JAVA_HOME

Listing All Set Environment Variables

Para listar todas as variáveis de ambiente, simplesmente usamos o comando set sem quaisquer argumentos.

set

Um exemplo da saída pareceria algo semelhante ao seguinte, que foi truncado para brevidade.

BASH=/bin/bashBASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=(="0") BASH_ARGV=() BASH_CMDS=() BASH_COMPLETION_VERSINFO=(="2" ="8") BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=(="5" ="0" ="3" ="1" ="release" ="x86_64-pc-linux-gnu") BASH_VERSION='5.0.3(1)-release' COLUMNS=208 DIRSTACK=() EUID=1000 GROUPS=() HISTCONTROL=ignoreboth HISTFILE=/home/ubuntu/.bash_history HISTFILESIZE=2000 HISTSIZE=1000 HOME=/home/ubuntu HOSTNAME=ubuntu1904 HOSTTYPE=x86_64 IFS=$' \t\n' LANG=en_US.UTF-8 LESSCLOSE='/usr/bin/lesspipe %s %s' LESSOPEN='| /usr/bin/lesspipe %s' LINES=54

Persisting Environment Variables for a User

Quando uma variável de ambiente é definida a partir da shell utilizando o comando de exportação, a sua existência termina quando as sessões do utilizador terminam. Isto é problemático quando precisamos que a variável persista através das sessões.

Para tornar um ambiente persistente para o ambiente de um utilizador, exportamos a variável a partir do script de perfil do utilizador.

  1. Abrir o perfil do utilizador actual num editor de texto
    vi ~/.bash_profile
  2. Adicionar o comando de exportação para cada variável de ambiente que se pretende persistir.
    export JAVA_HOME=/opt/openjdk11
  3. Guardar as suas alterações.

Adicionar a variável de ambiente apenas ao perfil de bash de um utilizador não a exportará automaticamente. No entanto, a variável será exportada na próxima vez que o utilizador iniciar sessão.

Para aplicar imediatamente todas as alterações ao bash_profile, utilize o comando de origem.

source ~/.bash_profile

Export Environment Variable

Export é um comando shell incorporado para Bash que é usado para exportar uma variável de ambiente para permitir que novos processos filhos a herdem.

Para exportar uma variável de ambiente executa-se o comando export enquanto se define a variável.

export MYVAR="my variable value"

Podemos ver uma lista completa de variáveis de ambiente exportadas executando o comando de exportação sem quaisquer argumentos.

export
SHELL=/bin/zshSHLVL=1SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.1pB5Pry8Id/ListenersTERM=xterm-256colorTERM_PROGRAM=vscodeTERM_PROGRAM_VERSION=1.48.2

Para visualizar todas as variáveis exportadas na shell actual usa-se o -p bandeira com exportação.

export -p

Configurar variáveis de ambiente globais permanentes para todos os utilizadores

Uma variável de ambiente permanente que persiste após uma reinicialização pode ser criada adicionando-a ao perfil padrão. Este perfil é carregado por todos os utilizadores no sistema, incluindo contas de serviço.

Todas as definições de perfil global são armazenadas em /etc/profile. E embora este ficheiro possa ser editado, na verdade recomenda-se armazenar variáveis de ambiente globais num directório chamado /etc/profile.d, onde encontrará uma lista de ficheiros que são utilizados para definir variáveis de ambiente para todo o sistema.

  1. Create a new file under /etc/profile.d para armazenar a(s) variável(eis) de ambiente global. O nome da variável deve ser contextual para que outros possam compreender a sua finalidade. Para demonstrações, iremos criar uma variável de ambiente permanente para HTTP_PROXY.
    sudo touch /etc/profile.d/http_proxy.sh
  2. Abrir o perfil padrão num editor de texto.
    sudo vi /etc/profile.d/http_proxy.sh
  3. Adicionar novas linhas para exportar as variáveis de ambiente
    export HTTP_PROXY=http://my.proxy:8080

    export HTTPS_PROXY=https://my.proxy:8080

    export NO_PROXY=localhost,::1,.example.com
  4. Guardar as suas alterações e sair do editor de texto

Conclusão

Este tutorial cobriu como definir e desajustar variáveis de ambiente para todas as distribuições Linux, de Debian para Red Hat. Aprendeu também a definir variáveis de ambiente para um único utilizador, bem como para todos os utilizadores.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *