Existem variáveis de ambiente para melhorar e padronizar o seu ambiente shell em sistemas Linux. Existem variáveis de ambiente padrão que o sistema configura para si, mas também pode configurar as suas próprias variáveis de ambiente, ou opcionalmente alterar as variáveis padrão para satisfazer as suas necessidades.

Iniciar com o comando env

Se quiser ver as variáveis de ambiente, use o comando env e procure as palavras em todas as letras maiúsculas na extrema esquerda do output. Estas são as variáveis de ambiente, e os seus valores estão à direita:

Omiti a saída da variável LS_COLORS porque é muito longa. Experimente este comando no seu sistema para ver como é a saída completa.

Muitas variáveis de ambiente são definidas e depois exportadas do ficheiro /etc/profile e do ficheiro /etc/bashrc. Há uma linha em /etc/profile que lê:

 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

Para fazer alterações permanentes às variáveis de ambiente para todas as novas contas, vá para o seu /etc/skel ficheiros, tais como .bashrc, e altere as que já lá estão ou introduza as novas contas. Quando se criam novos utilizadores, estes /etc/skel ficheiros serão copiados para o directório home do novo utilizador.

Explorar níveis shell (SHLVL)

Para chamar o valor de uma única variável de ambiente, introduza o seguinte comando, usando SHLVL (Nível Shell) como exemplo:

 $ echo $SHLVL 1

Esta variável muda dependendo de quantas subcasas tiver abertas. Por exemplo, introduza bash duas vezes e depois emita novamente o comando:

 $ bash $ bash echo $SHLVL 3

Um nível de concha de três significa que tem duas conchas profundas, portanto digite exit duas vezes para regressar à sua concha normal.

Manipulando a sua variável PATH

A variável PATH contém o caminho de pesquisa para executar comandos e scripts. Para ver o seu PATH, introduza:

 $ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

Mudeporáriamente o seu PATH introduzindo o seguinte comando para adicionar /opt/bin:

 $ PATH=$PATH:/opt/bin$ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin

A alteração é temporária para a sessão actual. Não é permanente porque não foi introduzida no ficheiro .bashrc. Para tornar a alteração permanente, introduza o comando PATH=$PATH:/opt/bin no ficheiro .bashrc do seu directório home.

Ao fazer isto, está a criar uma nova variável PATH anexando um directório à variável actual PATH$PATH. Um dois pontos (:) separa PATH entradas.

Desfazendo $USER, $PWD, e $LOGNAME

Tinha uma teoria que penso ter sido dissipada pelo meu próprio bom senso. A minha teoria era que os comandos pwd e whoami provavelmente apenas leram e ecoaram o conteúdo das variáveis da concha $PWD e $USER ou $LOGNAME, respectivamente. Para minha surpresa, depois de olhar para o código fonte, eles não o fazem. Talvez devesse reescrevê-los para fazer exactamente isso. Não há razão para adicionar múltiplas bibliotecas e quase 400 linhas de código C para exibir o directório de trabalho. Pode simplesmente ler $PWD e ecoar isso para o ecrã (stdout). O mesmo vale para whoami com $USER ou $LOGNAME.

Se quiser ver o código fonte por si próprio, está no GitHub e noutros locais. Se verificar que estes programas (ou outros) utilizam variáveis shell, gostaria de saber mais sobre isso. É certo que não sou muito bom a ler código fonte C, por isso poderiam muito bem usar variáveis shell e eu nunca o saberia. Apenas não pareciam saber, pelo que li e consegui compreender.

Jogando o jogo $SHELL

Nesta última visão geral das variáveis de ambiente, quero mostrar-vos como o $SHELL variável vem a calhar. Não tem de permanecer na sua concha predefinida, que é provavelmente o Bash. Pode entrar e trabalhar em qualquer shell que esteja instalada no sistema. Para descobrir que shells estão instaladas no seu sistema, use o seguinte comando:

 $ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash

Pode usar qualquer uma destas shells e ter coisas diferentes a acontecer em cada uma delas se estiver tão inclinado. Mas, digamos que você é um administrador Solaris e quer usar a concha Korn. Pode alterar a sua concha padrão para /bin/ksh usando o comando chsh:

 $ chsh Changing shell for khess. New shell : /bin/ksh Password: Shell changed.

Agora, se escrever echo $SHELL, a resposta será /bin/bash, pelo que terá de sair e entrar novamente para ver a alteração. Uma vez que saia e entre, receberá uma resposta diferente a echo $SHELL.

Pode introduzir outras conchas e echo $SHELL deve comunicar a sua concha actual e $SHLVL, o que o manterá orientado quanto ao número de conchas profundas que possui.

Configurando as suas próprias variáveis de ambiente

Pode definir as suas próprias variáveis na linha de comando por sessão, ou torná-las permanentes colocando-as no ficheiro ~/.bashrc~/.profile, ou seja qual for o ficheiro de arranque que utilize para a sua shell padrão. Na linha de comando, introduza a variável de ambiente e o seu valor como fez anteriormente ao alterar o PATH variável.

Embrulhando

Variável de ambiente ou de concha são úteis tanto para utilizadores, administradores de sistema, como para programadores. São úteis na linha de comando e em scripts. Utilizei-as ao longo dos anos para muitos propósitos diferentes, e embora algumas delas sejam provavelmente um pouco pouco pouco convencionais, funcionaram e ainda funcionam. Crie os seus próprios ou utilize os que lhe são dados pelo sistema e as aplicações instaladas. Eles podem verdadeiramente enriquecer a sua experiência de utilizador Linux.

Como nota lateral sobre variáveis e shells, alguém pensa que aqueles que programam no JSON só deveriam ser autorizados a utilizar o Bourne Shell? Discuta.

Categorias: Articles

0 comentários

Deixe uma resposta

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