O que é $PATH, como funciona e como trabalhar com ele

Muitos tutoriais falam sobre $PATH, mas nunca o explicam nos mínimos detalhes. Este artigo explica o que é $PATH e mostra como usá-lo no dia-a-dia.

[ Hits: 122.103 ]

Por: Leonardo Afonso Amorim em 04/09/2004


Introdução



Primeiramente, vamos a alguns conceitos básicos que você precisa saber:
  • Variável: é um endereço de memória, usada em programação, ou seja, armazena dados diferentes, por isso o nome variável.

    Analogia: é como se fosse uma gaveta de um grande armário, nela você pode armazenar papéis, sapatos, o que você quiser e por isso você pode chamá-la de variável, pois varia seu conteúdo, ela (gaveta) aceita qualquer coisa, papéis ou sapatos.

    No Linux, em shell script, PHP e outras linguagens, a variável é representada por cifrão $, como vemos em $PATH, seria assim:

    $nome_da_variavel

  • echo: comando em programação para exibir o conteúdo de uma variável. Estude programação!

  • $PATH: é uma variável do sistema Linux que indica trajetória (tradução do inglês) dos binários (executáveis dos programas), que podem ser executados sem indicar o caminho completo (geralmente ele é muito longo) da onde eles estão.

Vamos para prática agora!

No console, digite:

$ echo $PATH

Irá aparecer algo assim:

PATH=/usr/local/sbin:/usr/local/bin:/sbin/bin

(O que aparece no resultado pode variar de sistema para sistema)

Exemplificando:
Quando você roda o XMMS no console, digita-se apenas "xmms", isto quer dizer que o binário dele já está direcionado no resultado do PATH acima.

Para ficar mais claro:
O binário do XMMS está em /usr/local/bin (a título de exemplo só, ele pode estar em outro diretório).

Dúvida que pode aparecer:
Instalei um novo programa, o openoffice por exemplo, como faço para que o executável soffice já abra só digitando somente "soffice" no console?

R: Simples, você terá que acrescentar o caminho do diretório do executável no PATH. Localize qual diretório está o soffice e exporte-o para o $PATH.

Digite no console:

$ export PATH=$PATH:/o_caminho_do_diretório_do_executável_soffice

(só que quando reiniciar a máquina o caminho acrescentado some)

Solução para que fique permanente:
Edite o arquivo /etc/profile e acrescente na linha do PATH o caminho do diretório do openoffice, por exemplo, como foi explicado acima.

Sem você acrescentar a trajetória ao $PATH, você teria que entrar no diretório do openoffice para executá-lo. Já pensou se você tiver que fazer isso toda vez em que usa openoffice? Seria um SACO! :P

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

OpenLdap no Debian Squeeze

Introdução ao uso de Shell Script

Configurando impressora HP692C no Slackware

Gerenciando módulos no Linux

Configurar uma rede doméstica e compartilhar ADSL no Slackware

Leitura recomendada

Acessando remotamente máquina Windows dentro de uma VPN através do Ubuntu

Fedora 18 - Customização pós-instalação

Teclados USB e Linux

Fontes com filtros LCD no Arch Linux

Configurando o Asterisk com autenticação LDAP

  
Comentários
[1] Comentário enviado por engos em 06/09/2004 - 11:25h

Gostei da idéia de explicar sobre o $PATH, mas queria fazer as seguintes observações:

O comando echo é para mostrar uma linha de texto e não um comando em programação para exibir o conteúdo de uma variável. Sendo assim se você digitar no console "Viva o Linux" ele vai dar erro, mas se você digitar echo "Viva o Linux" não vai, sendo que não usei nenhuma variável e ele me mostrou "Viva o Linux" (sem aspas). Isso é muito util em shellscript, mas isso é outro papo...

Para alguém que não sabia sobre o $PATH, é importante ressaltar que ao inserir a linha do "export PATH=$PATH:/caminho" no /etc/profile, isso deve ser feito no fim do arquivo, pois a pessoa pode colocar no começo e perder esse valor, dependendo de como está o arquivo /etc/profile.

Você já deve saber disso, mas provavelmente nem todos que vão ler o artigo sabem.

Esse deve ser seu primeiro artigo, não? Bem, de qualquer forma, tenta dividir melhor o artigo, tudo numa página só fica um pouco bagunçado (na minha opnião).

[2] Comentário enviado por leonardoamorim em 06/09/2004 - 13:41h

Primeiramente muito obrigado pela crítica, com ela podemos desenvolver sempre um conteúdo melhor. Pelo que você podê perceber, o artigo que escrevi é introduzido com alguns conceitos em computação.

O comando echo no linux é diferente do echo de programação sim, você está correto. Mas sempre faço analogias, e a função do echo tanto na programação como no linux é exibir algo, que esteja ou não em uma varíavel.

Com o artigo, eu tento trazer o leitor para outros mundos, como o da programação e conceitos que talvez ele não saiba, acho que isso é uma forma de trazer a atenção do leitor que gosta de tudo explicado nos mínimos detalhes.

Ah gostei da sugestão de colocar mais páginas, concordo com você, da próxima vez vou dividir melhor o conteúdo.

Obrigado engos!

[3] Comentário enviado por helsen em 28/04/2005 - 18:40h

Lembrando aos iniciantes no linux que para abrir o etc/profile basta chamar atraves do console mesmo um editor de texto como o vim por exemplo:

$ vi /etc/profile

e depois de adicionar o caminho ao PATH utilize o ":wq" para salvar e sair do arquivo.

[4] Comentário enviado por daniel_caldas em 12/12/2006 - 22:27h

Bom Artigo !
Foi de grande importancia pra meu conhecimento, pois exitem situações onde vc está seguindo os passos de um artigo de instalção/configuração e fica empacado nesses tipo de configuração !

Obrigado !

[5] Comentário enviado por juninho (RH.com) em 12/02/2007 - 17:50h

E aí Leo, mandando ver no seus conhecimentos hein!!! Parabéns por colaborar com os amigos do VOL.

Eustáquio G. Júnior

[6] Comentário enviado por rogeriojlle em 30/04/2007 - 08:32h

"Para alguém que não sabia sobre o $PATH, é importante ressaltar que ao inserir a linha do "export PATH=$PATH:/caminho" no /etc/profile, isso deve ser feito no fim do arquivo, pois a pessoa pode colocar no começo e perder esse valor, dependendo de como está o arquivo /etc/profile"

Só dando a dica que para colocar um termo no final de algum arquivo, basta acrescentar ">> caminho_do_arquivo" no final do comando ex:
eu@computador:~$echo 'oi tudo bem?' > teste.txt
isso cria o arquivo "teste.txt" na minha pasta com o texto "oi tudo bem?"
eu@computador:~$echo 'eu vou bem e você?' >> teste.txt
isso acrescenta no final do arquivo o termo "eu vou bem e você?"
lembrando que se você usar ">" em vez de ">>" num arquivo que já tenha conteúdo, você SUBSTITUI o conteúdo do arquivo pelo que etiver na saída do comando

Agora a minha dúvida: sou usuário do Ubuntu, e até agora não precisei fazer tais alterações no "PATH", até porque eu só uso programas básicos de um usuário comum, mas se eu precisasse onde estaria o meu arquivo equivalente ao "etc/profile"? (Ubuntu Feisty)
Abri esse arquivo e encontrei um script estranho que não entendi nada.

[7] Comentário enviado por carlosmacapuna em 27/06/2007 - 08:47h

Bom dia.
Acho que talvez voces possam me ajudar.
NS-2
Eu estou a alguns dias tentando instalar o NS-2 (network simulator) em casa (sem internet, baixo no trabalho os pacotes e levo pra casa). Bom, depois de varios erros, consegui instalar, mas quando digito ns no console, nao funciona...
Verfiquei a saida de instação e percebi que o problema é justamente com PATH.

olhem a saida:

Please put /home/macapuna/ns2/ns-allinone-2.31/bin:/home/macapuna/ns2/ns-allinone-2.31/tcl8.4.14/unix:/home/macapuna/ns2/ns-allinone-2.31/tk8.4.14/unix
into your PATH environment; so that you'll be able to run itm/tclsh/wish/xgraph.

IMPORTANT NOTICES:

(1) You MUST put /home/macapuna/ns2/ns-allinone-2.31/otcl-1.13, /home/macapuna/ns2/ns-allinone-2.31/lib,
into your LD_LIBRARY_PATH environment variable.
If it complains about X libraries, add path to your X libraries
into LD_LIBRARY_PATH.
If you are using csh, you can set it like:
setenv LD_LIBRARY_PATH <paths>
If you are using sh, you can set it like:
export LD_LIBRARY_PATH=<paths>

(2) You MUST put /home/macapuna/ns2/ns-allinone-2.31/tcl8.4.14/library into your TCL_LIBRARY environmental
variable. Otherwise ns/nam will complain during startup.

alguem pode me ajudar?
Muito obrigado!

[8] Comentário enviado por leonardo_lage em 02/08/2007 - 17:13h

Olá Carlos:
Eu também estou começando a utilizar o NS agora...
Mas pelo que me parece o seu problema é exatamente o descrito neste artigo. vc precisa dar o comando:

"export PATH=$PATH:/caminho para o bin dentro da instalação do ns"

para que o linux interprete corretamente onde será executado o ns.

Tentei fazer o barato do "/etc/profile" para gravar o PATH para o ns mas ele não funcionou...
Então, toda vez que abro um console para mexer no NS dou o comando para validar o caminho para o executavel do ns.

Agora que achei este tutorial do Leonardo Afonso, vou ver se consigo... devia estar fazendo algo errado...

Espero que esta dica ajude.
Obrigado pela dica Leonardo Afonso...
[]s,
Leonardo Lage.

[9] Comentário enviado por removido em 17/08/2007 - 05:38h

Desculpem!
Não resolveria mover o executável do programa para um dos diretórios do PATH... tipo /usr/local/bin ou mesmo um script que executasse por exemplo o bin /home/macapuna/ns2/ns-allinone-2.31/otcl-1.13
de um desses arquivos???

[10] Comentário enviado por JhoniVieceli em 07/02/2008 - 11:44h

Parabens ai pelo artigo

muito bom!

[11] Comentário enviado por colliplanura em 23/05/2010 - 19:17h

rogeriojlle,

Precisei fazer este comando aqui também e no caso do Ubuntu em vez de usar o /etc/profile use o /etc/environment

Valeu

[12] Comentário enviado por alexsabc em 03/11/2014 - 23:23h

Didático, prático. Muito bom artigo!

[13] Comentário enviado por agrolinux em 15/10/2016 - 19:30h

Simples e direto. obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts