Eu li em alguns lugares em que o arquivo PATH
está definido /etc/profile
ou o .profile
arquivo que está no diretório home.
Esses são os únicos lugares em que o caminho está definido? Eu quero uma melhor compreensão disso.
No /etc/profile
arquivo, como o seguinte comentário diz "system-wide .profile file for the Bourne shell"
. Isso significa que os arquivos de perfil são os principais arquivos de configuração do bash?
Nesse arquivo, não vejo o PATH
var sendo definido. No .profile
arquivo no diretório inicial, há esta linha:
PATH="$HOME/bin:$PATH"
Isso é redefinido PATH
pela aparência, porque está concatenando a $PATH
string já definida com $HOME/bin:
certo? Mas se etc/profile
e ~/.profile
os únicos arquivos PATH
que estão definindo $PATH
a origem dessa linha de código, se ela não estiver definida /etc/profile
?
Alguém experiente pode dar uma explicação ampla e detalhada da PATH
variável? Obrigado!
fonte
/etc/bashrc
. Isso determina como o BASH é iniciado, o que deve incluir todas as variáveis de ambiente iniciais. No meu sistema,/etc/bashrc
lê a partir de,/etc/profile.d
mas parece que você tem apenas 3 arquivos,/etc/profile.d
portanto sua distribuição pode estar fazendo de maneira diferente.Para adicionar às outras respostas:
bash
será definidoPATH
como um valor padrão codificado se não estiver definido no ambiente. Em uma máquina Ubuntu Server 16.04.2, recebo:Podemos verificar se esse valor é realmente codificado e não lido no ambiente ou em algum arquivo, usando o
strings
utilitário:No entanto, recebo um resultado diferente na minha máquina Arch Linux:
Portanto, parece que esse padrão é escolhido no momento em que o
bash
binário foi construído, o que depende do sistema operacional / distribuição em uso.fonte
Coisas que eu não vejo:
.profile
etc são copiados na criação da contaQuanto a Ken Thompson, você pode se surpreender com o seguinte: "Views on Linux" .
fonte