varia ve is de ambient e

Upload: fabrizio171195

Post on 05-Mar-2016

216 views

Category:

Documents


0 download

DESCRIPTION

jhg

TRANSCRIPT

  • Variveis de ambiente

    Definio:

    So variveis que guardam informaes sobre preferncias pessoais usadas por programas para que eles peguem dados sobre seu ambiente sem que voc tenha que passar sempre os mesmos dados.As variveis de ambiente normalmente so escritas em letras maisculas.

    Imagine voc ter que digitar o caminho completo de um comando para poder execut-lo ou ento 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 no existisse uma varivel 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 diretrio que esteja na varivel PATH.

    Para ver o contedo da varivel 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 diretrio corrente.

    Diretrio corrente, mas o que isso???

    Diretrio corrente aquele em que voc est dentro dele no momento...

    Exemplo:

    Entre no diretrio temporrio:$ cd /tmp

    Verifique agora onde voc est:$ pwd/tmp

    Logo, seu diretrio corrente /tmp

    Vamos supor que voc criou um script chamado script.sh em /tmp e que seu diretrio corrente tambm /tmp, ento para executar o script voc precisaria digitar:

    $ ./script.sh

    Para que voc no precise mais usar o ./ basta incluir o diretrio corrente que representado por ponto (.) na varivel PATH. H duas formas para resolver isso: uma temporria e outra permanente.

  • Na forma temporria, basta incluir o diretrio corrente na varivel PATH e exportar com o comando export, para que essa varivel com novo valor seja reconhecida pelo sistema. O comando export torna global o valor da varivel.

    # PATH=$PATH:.# export PATH

    A varivel PATH recebeu seu contedo novamente s que agora recebeu tambm o diretrio corrente (.). Depois foi s export-la.

    Para que essa alterao fique permanente para todos os usurios no sistema faa:

    # 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 Diretrio 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 fifi

    export PATH

    umask 022

    Salve o arquivo e logue-se novamente.

    Outras variveis de ambiente muito comuns:

    $TERM

    Define o terminal padro.

    $ echo $TERMxterm

  • $HOME

    Indica o diretrio pessoal do usurio em questo. Exemplo:$ echo $HOME/home/leo

    Essa varivel muito usada em scripts que necessitam saber o qual diretrio pessoal do usurio, ou seja, ao invs de indicar diretamente o diretrio pessoal do usurio, a prpria varivel retorna o valor automaticamente. E esse script pode ser usado por qualquer usurio que tenha permisso de execut-lo.

    $USER

    Guarda o nome do usurio no momento.

    $ echo $USERleo

    $SHELL

    Guarda o valor do shell padro:

    $ echo $SHELL/bin/bash

    No Linux, o shell padro o bash.

    $HISTSIZE

    Guarda o tamanho mximo do log de comandos executados no shell usado pelo comando history.

    Para ver seu valor padro:

    $ echo $HISTSIZE500

    Voc pode alterar para 1000 por exemplo:$ HISTSIZE=1000$ export HISTSIZE$ echo $HISTSIZE1000

    $PWD

    Guarda o valor do diretrio corrente, ou seja, no que voc est atualmente.

    $ echo $PWD/home/leo

    $ cd /tmp$ echo $PWD/tmp

  • $PS1

    Guarda o valor do prompt primrio. Voc pode personaliz-la.Veja meu prompt:leo@saturnov:~$

    Cdigos para configurar o prompt:\w Diretrio corrente\d Exibe data\t Exibe hora\s Exibe o shell corrente\u Exibe o nome do usurio\h Exibe o nome do host (mquina)

    Para mudar seu prompt temporariamente faa:PS1='\u@\h:\w$'

    Isso vai gerar um prompt assim: leo@saturnov:~$

    Ou ento:PS1='\h@\u:\w$ \t '

    Isso vai gerar um prompt assim: saturnov@leo:/tmp 12:29:36$

    $PS2

    Guarda o valor do prompt secundrio. Voc pode personaliz-la. O padro um sinal de maior.

    $ echo $PS2>

    $EDITOR

    Guarda o valor do editor de textos padro, por exemplo se voc quer que o editor de texto padro seja o VIM para editar quotas em disco ou agendar tarefas com o cron basta alterar o valor dessa varivel.

    Exemplo:$ EDITOR=vim$ export EDITOR

    Para que essas configuraes no se percam durante um reboot, faa:

    # vim /root/.bash_profileAdicione no arquivo:EDITOR=vimexport EDITOR

    Salve o arquivo.

    # source /root/.bash_profile (Para o arquivo ser lido novamente)

    Agora, o editor de textos padro 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 $OSTYPElinux-gnu

    $TMOUT

    Essa varivel define o tempo mximo que o shell ficar inativo. Essa varivel de grande utilidade quando se pensa em segurana, pois se voc sai e deixa o terminal de texto aberto, se tiver um valor com 30 setado nela, aps 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 variveis j definidas, digite:$ set | more

    Para limpar o valor de uma varivel:$ unset VARIAVEL

    Exemplo:

    Atribuindo um valor para uma variavel:

    $ BRASIL=1000$ echo $BRASIL1000

    O valor da varivel 1000, vamos limp-la:$ unset BRASIL$ echo $BRASIL

    Veja que no vai aparecer nada agora.

  • Um comando interessante tambm o printenv (o comando env tambm faz a mesma coisa)

    Esse comando exibe uma lista de variveis de ambiente.

    Exemplo:

    $ printenvUSER=leoPWD=/home/leoEDITOR=vimLANG=pt_BR.UTF-8HOME=/home/leoLOGNAME=leoDISPLAY=:0.0TERM=xtermSHELL=/bin/bash