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: 154.044 ]

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

Configurando JAVA no Firefox para acessar página de bancos

Afinal, será que ser hacker, realmente, é o que a mídia divulga?

Gerenciando módulos no Linux

Técnicas de memorização para facilitar o uso VI (Comandos básicos)

Leitura recomendada

Boot gráfico no ArchLinux

Introdução ao gerenciador de janelas i3

Instalando o Debian Etch sem o Gnome

Exherbo Linux: sacrificando a cabra

Habilitando e configurando Raid 1 (espelhamento) no Slackware 12

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts