Buscar

variaveisdeambiente (2)

Prévia do material em texto

Variáveis de ambiente
Definição:
 
São variáveis que guardam informações sobre preferências pessoais usadas por 
programas para que eles peguem dados sobre seu ambiente sem que você tenha que passar 
sempre os mesmos dados.
As variáveis de ambiente normalmente são escritas em letras maiúsculas.
Imagine você ter que digitar o caminho completo de um comando para poder executá-
lo ou então a todo momento que você fazer paginamento de uma arquivo você passar o 
tamanho e o qual terminal usado... Tudo isso seria muito chato e trabalhoso!!!
Se não existisse uma variável de ambiente chamada PATH você teria que digitar todo o 
caminho do comando para listar por exemplo:
$ /bin/ls
Quando você digita o comando ls , o sistema busca esse comando em algum diretório 
que esteja na variável PATH.
Para ver o conteúdo da variável PATH:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
Veja que o ls está em /bin com o comando which:
$ which ls
/bin/ls
Curiosidade: Você algum dia já precisou digitar ./ antes de um script que você fez? 
Certamente sim... Já se perguntou o motivo disso? 
Primeiro, o que significa esse ponto antes da barra?
Significa diretório corrente.
Diretório corrente, mas o que é isso???
Diretório corrente é aquele em que você está dentro dele no momento...
Exemplo:
Entre no diretório temporário:
$ cd /tmp
Verifique agora onde você está:
$ pwd
/tmp
Logo, seu diretório corrente é /tmp
Vamos supor que você criou um script chamado script.sh em /tmp e que seu diretório 
corrente também é /tmp, então para executar o script você precisaria digitar:
$ ./script.sh
Para que você não precise mais usar o ./ basta incluir o diretório corrente que é 
representado por ponto (.) na variável PATH. Há duas formas para resolver isso: uma é 
temporária e outra é permanente.
Na forma temporária, basta incluir o diretório corrente na variável PATH e exportar com 
o comando export, para que essa variável com novo valor seja reconhecida pelo sistema. O 
comando export torna global o valor da variável.
# PATH=$PATH:.
# export PATH
A variável PATH recebeu seu conteúdo novamente só que agora recebeu também o 
diretório corrente (.). Depois foi só exportá-la.
Para que essa alteração fique permanente para todos os usuários no sistema faça:
# vi /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "`id -u`" -eq 0 ]; then
 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
 PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:." # o Diretório corrente foi acrescentado 
 
fi
if [ "$PS1" ]; then
 if [ "$BASH" ]; then
 PS1='\u@\h:\w\$ '
 else
 if [ "`id -u`" -eq 0 ]; then
 PS1='# '
 else
 PS1='$ '
 fi
 fi
fi
export PATH
umask 022
Salve o arquivo e logue-se novamente.
Outras variáveis de ambiente muito comuns:
$TERM
Define o terminal padrão.
$ echo $TERM
xterm
$HOME
Indica o diretório pessoal do usuário em questão. Exemplo:
$ echo $HOME
/home/leo
Essa variável é muito usada em scripts que necessitam saber o qual diretório pessoal do 
usuário, ou seja, ao invés de indicar diretamente o diretório pessoal do usuário, a própria 
variável retorna o valor automaticamente. E esse script pode ser usado por qualquer usuário 
que tenha permissão de executá-lo.
$USER
Guarda o nome do usuário no momento.
$ echo $USER
leo
$SHELL
Guarda o valor do shell padrão:
$ echo $SHELL
/bin/bash
No Linux, o shell padrão é o bash.
$HISTSIZE
Guarda o tamanho máximo do log de comandos executados no shell é usado pelo 
comando history.
Para ver seu valor padrão:
$ echo $HISTSIZE
500
Você pode alterar para 1000 por exemplo:
$ HISTSIZE=1000
$ export HISTSIZE
$ echo $HISTSIZE
1000
$PWD
Guarda o valor do diretório corrente, ou seja, no que você está atualmente.
$ echo $PWD
/home/leo
$ cd /tmp
$ echo $PWD
/tmp
$PS1
Guarda o valor do prompt primário. Você pode personalizá-la.
Veja meu prompt:
leo@saturnov:~$
Códigos para configurar o prompt:
\w Diretório corrente
\d Exibe data
\t Exibe hora
\s Exibe o shell corrente
\u Exibe o nome do usuário
\h Exibe o nome do host (máquina)
Para mudar seu prompt temporariamente faça:
PS1='\u@\h:\w$'
Isso vai gerar um prompt assim: leo@saturnov:~$
Ou então:
PS1='\h@\u:\w$ \t '
Isso vai gerar um prompt assim: saturnov@leo:/tmp 12:29:36$
$PS2
Guarda o valor do prompt secundário. Você pode personalizá-la. O padrão é um sinal de 
maior.
$ echo $PS2
>
$EDITOR
Guarda o valor do editor de textos padrão, por exemplo se você quer que o editor de 
texto padrão seja o VIM para editar quotas em disco ou agendar tarefas com o cron basta 
alterar o valor dessa variável.
Exemplo:
$ EDITOR=vim
$ export EDITOR
Para que essas configurações não se percam durante um reboot, faça:
# vim /root/.bash_profile
Adicione no arquivo:
EDITOR=vim
export EDITOR
Salve o arquivo.
# source /root/.bash_profile (Para o arquivo ser lido novamente)
Agora, o editor de textos padrão do root é o VIM.
Tente editar quotas ou agendar tarefas, o editor que vai ser usado é o VIM agora.
$OSTYPE
Guarda o nome do sistema operacional.
Exemplo:
$ echo $OSTYPE
linux-gnu
$TMOUT
Essa variável define o tempo máximo que o shell ficará inativo. Essa variável é de 
grande utilidade quando se pensa em segurança, pois se você sai e deixa o terminal de texto 
aberto, se tiver um valor com 30 setado nela, após 30 segundos de inatividade o shell se 
fecha.
TMOUT=15
$ export TMOUT
Agora aguarde 15 segundos sem fazer nada no shell...
Para que você possa ver todas as variáveis já definidas, digite:
$ set | more
Para limpar o valor de uma variável:
$ unset VARIAVEL
Exemplo:
Atribuindo um valor para uma variavel:
$ BRASIL=1000
$ echo $BRASIL
1000
O valor da variável é 1000, vamos limpá-la:
$ unset BRASIL
$ echo $BRASIL
Veja que não vai aparecer nada agora. 
Um comando interessante também é o printenv (o comando env também faz a mesma 
coisa)
Esse comando exibe uma lista de variáveis de ambiente.
Exemplo:
$ printenv
USER=leo
PWD=/home/leo
EDITOR=vim
LANG=pt_BR.UTF-8
HOME=/home/leo
LOGNAME=leo
DISPLAY=:0.0
TERM=xterm
SHELL=/bin/bash

Continue navegando