Configuração de programas com variáveis de ambiente


O shell fornece um ambiente para os programas que você executa a partir desse shell. Entre outras coisas, esse ambiente inclui informações sobre:

  • O diretório de trabalho atual no sistema de arquivos;

  • Opções de linha de comando transmitidas para o programa;

  • Valores de variáveis de ambiente.

Os programas podem usar essas variáveis de ambiente para alterar seu comportamento ou suas configurações padrão.

Se uma variável de shell não for uma variável de ambiente, somente o shell poderá usá-la. No entanto, se uma variável de shell for uma variável de ambiente, o shell e todos os programas executados a partir desse shell poderão usar a variável.

As variáveis HISTFILE, HISTFILESIZE e PS1 da seção anterior não precisam ser exportadas como variáveis de ambiente porque são usadas apenas pelo próprio shell, e não pelos programas que você executa a partir do shell.

Você pode atribuir qualquer variável definida no shell em uma variável de ambiente marcando-a para exportação com o comando export.

[user@host ~]$ EDITOR=vim
[user@host ~]$ export EDITOR

Você pode definir e exportar uma variável em uma única etapa:

[user@host ~]$ export EDITOR=vim

Aplicativos e sessões usam essas variáveis para determinar seu comportamento.

Por exemplo, o shell define automaticamente a variável HOME para o nome do arquivo do diretório pessoal do usuário quando ele é iniciado. Você pode usar essa variável para ajudar os programas a definir onde salvar os arquivos.

Outro exemplo é a variável LANG, que define a codificação do local. Essa variável ajusta o idioma preferido para a saída do programa, o conjunto de caracteres, a formatação de datas, números e moeda e a ordem de classificação dos programas. Se estiver configurado para en_US.UTF-8, o idioma usará inglês dos EUA com codificação de caracteres UTF-8 Unicode. Se estiver configurado para, por exemplo, fr_FR.UTF-8, o idioma usará francês com codificação UTF-8 Unicode.

[user@host ~]$ date
Tue Jan 22 16:37:45 CST 2019
[user@host ~]$ export LANG=fr_FR.UTF-8
[user@host ~]$ date
mar. janv. 22 16:38:14 CST 2019

Outra variável de ambiente importante é PATH. A variável PATH contém uma lista de diretórios separados por dois-pontos (:) que contêm programas:

[user@host ~]$ echo $PATH
/home/user/.local/bin:/home/user/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

Quando você executa um comando como o comando ls, o shell procura pelo arquivo executável ls em cada um desses diretórios em ordem e executa o primeiro arquivo correspondente encontrado. (Em um sistema típico, esse arquivo é /usr/bin/ls.)

Você pode anexar diretórios facilmente à sua variável PATH. Por exemplo, talvez queira usar programas executáveis ou scripts como comandos regulares no diretório /home/user/sbin . Você pode anexar o diretório /home/user/sbin ao seu PATH para a sessão atual da seguinte maneira:

[user@host ~]$ export PATH=${PATH}:/home/user/sbin

Para listar todas as variáveis de ambiente para um shell, execute o comando env:

[user@host ~]$ env
...output omitted...
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
HOSTNAME=host.example.com
XDG_SESSION_ID=4
...output omitted...

Referências