O que significa $ PATH?

26

Estou tentando instalar algo e, entre as etapas, há esta:

"Coloque no seu $PATH "

O que isso significa? O que é isso?

Eu pesquisei tanto neste site quanto no Google, mas todos consideram que é garantido!

    
por Adam 20.11.2014 / 22:39

3 respostas

23

Executar em um terminal:

echo $PATH

ou

printf "%s\n" "$PATH"

o que você vê é uma lista de diretórios, parecida com:

/home/jacob/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Se você colocar um executável em qualquer um desses diretórios, não será necessário definir o caminho para o executável / script, mas poderá executá-lo pelo seu nome como um comando.

Os executáveis em $PATH não devem ter uma extensão de idioma por convenção (embora eles trabalhariam)

Editando sua variável $ PATH

Você pode (permanentemente) adicionar um diretório a $PATH adicionando a seguinte linha ao seu arquivo ~/.profile (invisível por padrão, pressione Ctrl + H em o gerenciador de arquivos para torná-lo visível):

export PATH=$PATH:/path/to/dir

Mais informações úteis sobre variáveis de ambiente

(como $PATH ) pode ser encontrado aqui (obrigado pelas sugestões @Letizia)

    
por Jacob Vlijm 20.11.2014 / 22:45
5

$PATH é uma localização do arquivo relacionada environment variable .

Quando se digita um comando para executar, o sistema procura nos diretórios especificados por PATH na ordem especificada.

Você pode visualizar os diretórios especificados digitando echo $PATH no terminal.

Suponha que exista um arquivo executável foobar01.sh presente em /home/user/foo1/foo2/foobar01.sh que você deseja executar regularmente. Digitar todo o "caminho" seria demorado. Então, adicionamos o diretório na variável $PATH e podemos executar foobar.sh diretamente sem especificar o caminho.

Você pode adicioná-lo a $PATH digitando o seguinte comando

export PATH=$PATH:/home/user/foo1/foo2

    
por astrob0t 20.11.2014 / 22:54
2

Suponho que você esteja vindo de um histórico do Windows (desculpas se isso não for verdade). Em termos leigos, um caminho (ou o caminho de busca) é a lista de diretórios que serão procurados por qualquer coisa que você digita na linha de comando. Se você digitar um comando interno como o ls, ele procurará uma lista especificada de diretórios. Você pode procurar seu caminho digitando echo $ PATH. Aqui está uma diferença entre o Windows e o * nix: Por padrão, o Windows sempre procura o arquivo executável no diretório atual. Por exemplo, se você tiver um arquivo chamado uptime.bat em c: \ myscripts e seu cd c: \ myscripts e digitar o tempo de atividade, ele será executado. No entanto, no * nix, o caminho será consultado e o executável encontrado (se disponível).

Se você mantiver seus scripts em um diretório chamado / home / teresa / scripts, para executar esses scripts, será necessário especificar o caminho completo para esse diretório. Exemplo: / hone / teresa / checkHost. Uma variação seria cd / home / teresa e, em seguida, digite ./checkHost (observe o ./, o que significa que você está solicitando explicitamente que o arquivo seja executado a partir do diretório atual.

Para evitar isso, basta digitar

export PATH = $ PATH: / home / teresa / scripts

que significa que, além do caminho que já existe agora, também procura em / hone / teresa / scripts. No entanto, o problema com isso é que, uma vez que você efetua logout, essa configuração seria eliminada. Portanto, você deve editar o arquivo oculto ~ / .bashrc, encontrar a linha PATH lá e anexá-lo de acordo. Eu estou supondo que você use bash. No caso de outros shells, a sintaxe e o arquivo são diferentes.

Como um novo usuário, é muito tentador ter. no caminho de busca, o que basicamente significa que também busca no diretório atual. No entanto, isso não é considerado uma boa prática por razões discutidas em outros lugares.

HTH

    
por Hopping Bunny 28.11.2014 / 05:09