PATH (variável) - PATH (variable)
PATH é uma variável de ambiente em sistemas operacionais semelhantes ao Unix , DOS , OS / 2 e Microsoft Windows , especificando um conjunto de diretórios onde os programas executáveis estão localizados. Em geral, cada processo em execução ou sessão de usuário tem sua própria configuração de PATH.
História
Multics originou a ideia de um caminho de busca. O shell Unix inicial apenas procurava nomes de programas /bin , mas na versão 3 do Unix o diretório era muito grande e /usr/bin , junto com um caminho de pesquisa, tornou-se parte do sistema operacional.
Unix e semelhante ao Unix
Em sistemas operacionais POSIX e semelhantes ao Unix, a $PATH variável é especificada como uma lista de um ou mais nomes de diretório separados por dois pontos ( : ). Os diretórios na PATH -string não devem ser escapados, tornando impossível ter diretórios com : em seus nomes.
Os /bin , /usr/bin e /usr/local/bin os diretórios são normalmente incluídos em a maioria dos usuários $PATH definição (embora isso varie de implementação para implementação). O superusuário também normalmente possui /sbin e /usr/sbin entradas para executar comandos de administração do sistema facilmente . O diretório atual ( . ) às vezes também é incluído pelos usuários, permitindo que os programas residentes no diretório de trabalho atual sejam executados diretamente. Os administradores de sistema, via de regra, não o incluem $PATH para evitar a execução acidental de scripts residentes no diretório atual, como os que podem ser colocados lá por um tarbomb malicioso . Nesse caso, a execução de tal programa requer a especificação de um /home/userjoe/bin/script.sh caminho absoluto ( ) ou relativo ( ./script.sh ) na linha de comando.
Quando um nome de comando é especificado pelo usuário ou uma chamada de exec é feita de um programa, o sistema pesquisa $PATH , examinando cada diretório da esquerda para a direita na lista, procurando um nome de arquivo que corresponda ao nome do comando. Uma vez encontrado, o programa é executado como um processo filho do shell de comando ou programa que emitiu o comando.
DOS, OS / 2 e Windows
Nos sistemas operacionais DOS, OS / 2 e Windows, a %PATH% variável é especificada como uma lista de um ou mais nomes de diretório separados por pontos e vírgulas ( ; ).
O diretório do sistema Windows (normalmente C:\WINDOWS\system32 ) é normalmente o primeiro diretório no caminho, seguido por muitos (mas não todos) dos diretórios para pacotes de software instalados. Muitos programas não aparecem no caminho, pois não foram projetados para serem executados em uma janela de comando , mas sim em uma Interface Gráfica de Usuário . Alguns programas podem adicionar seu diretório à frente do conteúdo da variável PATH durante a instalação, para acelerar o processo de pesquisa e / ou substituir os comandos do sistema operacional. Na era DOS, era comum adicionar uma linha ou ao AUTOEXEC.BAT .
PATH {program directory};%PATH%SET PATH={program directory};%PATH%
Quando um comando é inserido em um shell de comando ou uma chamada de sistema é feita por um programa para executar um programa, o sistema primeiro pesquisa o diretório de trabalho atual e, em seguida, pesquisa o caminho, examinando cada diretório da esquerda para a direita, procurando por um nome de arquivo executável que corresponde ao nome do comando fornecido. Os programas executáveis têm extensões de nome de arquivoEXE ou COM , e os scripts em lote têm extensões de BAT ou CMD . Outras extensões de nome de arquivo executáveis também podem ser registradas no sistema.
Assim que um arquivo executável correspondente é encontrado, o sistema gera um novo processo que o executa.
A variável PATH facilita a execução de programas comumente usados localizados em suas próprias pastas. Se usado imprudentemente, no entanto, o valor da variável PATH pode tornar o sistema operacional mais lento, pesquisando muitos locais ou locais inválidos.
Locais inválidos também podem interromper a execução de serviços, especialmente o serviço 'Servidor', que geralmente é uma dependência de outros serviços em um ambiente Windows Server.