Pequenos Comandos, Grandes Ações: env

Veja as variáveis atuais do ambiente de usuário com o comando env!
Aprenda também como editá-las.

| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.

PCGA: Pequenos comandos, grandes ações!

Dando continuidade aqui no site dessa série que foi um sucesso na página homônima no Facebook, trago comandos simples, a maioria deles curtos com parâmetros diretos, que podem agilizar seu trabalho como sysadmin de qualquer sistema baseado em UNIX. Comandos como ls, mkdir, chmod, etc são descritos em toda sua glória e praticidade, para enriquecer seu leque de possibilidades de uso para com o Terminal, seja ele qual for, de qual distro Linux você utilizar.

Env

Assim como muitos outros comandos, o env está embutido no GNU CoreUtils e possui a finalidade de exibir os atuais parâmetros de ambiente.

Variáveis de ambiente?

As variáveis de ambiente definem diretório padrão de busca dos executáveis do terminal, idioma, usuário, paleta de cores, sessão da interface gráfica, ID do agente SSH, modulos do GTK, shell padrão, display gráfico padrão e  etc.

Alguns exemplos de variáveis mostradas quando você digita “env” no terminal:

LANG=pt_BR.UTF-8
GDM_LANG=pt_BR
DISPLAY=:0.0
COMPIZ_CONFIG_PROFILE=mate
GTK_OVERLAY_SCROLLING=0
COLORTERM=truecolor
XDG_VTNR=7
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/nathandrake
USER=nathandrake
DESKTOP_SESSION=mate
DEFAULTS_PATH=/usr/share/gconf/mate.default.path
QT_QPA_PLATFORMTHEME=gtk2
PWD=/home/nathandrake
HOME=/home/nathandrake
SSH_AGENT_PID=1843
QT_ACCESSIBILITY=1
XDG_SESSION_TYPE=x11
XDG_DATA_DIRS=/usr/share/mate:/usr/local/share:/usr/share:/var/lib/snapd/desktop
XDG_SESSION_DESKTOP=mate
GTK_MODULES=appmenu-gtk-module:gail:atk-bridge:canberra-gtk-module
SHELL=/bin/bash
LOGNAME=nathandrake
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
XAUTHORITY=/home/nathandrake/.Xauthority
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Alguns importantes:

SHELL: Diretório do shell padrão
PATH: Lista dos diretórios que o shell busca ao executar um comando.
HOME: Diretório da /home do usuário atual
DISPLAY: Saída de vídeo padrão. Quem usa mais de 1 monitor pode se interessar, porque exibe o número do monitor, identificados como 1.0, 2.0, etc.

Todas essas variáveis podem ser editadas, dependendo do sistema e necessidade do usuário.

No caso, a edição é simples. Basta pegar a variável e adicionar os novos parâmetros. Dependendo da variável, você deve respeitar os caminho já definidos para evitar erros.

Por exemplo, eu quero adicionar o caminho /usr/bin/local ao PATH, assim meu programa, chamado TESTE1, cujo binário está em /usr/bin/local, será chamado pelo terminal diretamente.
Assim, eu só preciso digitar: $ teste1 # e o programa vai executar direto, sem precisar dar o caminho completo.

$ PATH=$PATH:/usr/bin/local

Agora a variável PATH terá o caminho novo /usr/bin/local adicionado a ele.

Já o comando EXPORT, permite exportar a variável para todo o ambiente, para além do shell. Isso permite alterar todo o processo de execução de um aplicativo e de onde ele puxará suas dependências.
Por exemplo:

 $ export WINESERVER=$WINEPATH"/bin/wineserver"

Isso permite que a variável padrão do WINE que gera o servidor gráfico mude de lugar, permitindo que você o execute por outro diretório. É basicamente o que o PlayOnLinux faz, gera uma biblioteca com os caminhos virtuais dos Wine Prefixes permitindo que você instale games diferentes em “unidades virtuais” diferentes, coisa que o WINETRICKS não permitiria ao ficar estagnado em  ~/.wine.

Conclusão

As alterações de variáveis do ambiente de usuário só devem ser feitas sob cuidado e grande necessidade, uma vez que implicam na forma como o usuário gerencia o sistema e comandos mal executados podem resultar em problemas graves!

Aos que estão desenvolvendo algum software que faça uso de variáveis do Linux, é importante ter em mãos o comando “env” para ter noção de tudo que está disponível para ser usado.

Fontes:
ComputerHope
HowToForge

Deixe um comentário