Quais são os valores padrão $ PATH?

13

No Mac OS X, os $PATHvalores padrão são:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

Quais são os valores padrão no Linux?

sonnuforevis
fonte
caminho padrão é definido em config-top.h
bac0n

Respostas:

18

Em uma instalação padrão da área de trabalho do Ubuntu $PATHé:

$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Mas em um ambiente chroot mínimo criado por debootstrap, $PATHcontém apenas:

# echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin
andrewsomething
fonte
4

Os valores do caminho do ambiente são armazenados no arquivo .bashrc no ubuntu.

A variável PATH em todo o sistema é definida em /etc/environment

Avinash Raj
fonte
3

Há caminho construído nas conchas que é

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Então o caminho padrão para o Ubuntu é:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Braiam
fonte
3

Existe uma maneira fácil de descobrir:

printenv

Ou, mais diretamente:

echo $PATH

Mas, se você está apenas procurando informações rápidas, o Ubuntu normalmente define o caminho para:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / bin / X11: / usr / games:

Para perguntas como essa, geralmente você pode descobrir a resposta lendo a Bíblia .

Brian Grogan Jr.
fonte
2

Dependendo do Linux que você está usando, pode ser diferente. Se você já possui um login em um Linux, basta digitar 'env' para ver suas variáveis ​​de ambiente.

Se você quiser saber como a variável env PATH está sendo construída, consulte .bashrc e .bash_profile em seu diretório pessoal. Se for mais curioso, você também pode olhar para / etc / profile, /etc/profile.d/* (se existir) e manual para bash (man bash).

Jason
fonte
2

bashserá definido PATHcomo um valor padrão codificado se não estiver definido no ambiente:

$ env -i bash -c 'echo $PATH'
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

Podemos verificar se esse valor é realmente codificado e não lido no ambiente ou em algum arquivo, usando o stringsutilitário:

$ strings /bin/bash | grep /usr/sbin
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

No entanto, recebo um resultado diferente na minha máquina Arch Linux:

$ env -i bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/bin

Portanto, parece que esse padrão foi escolhido no momento em que o bashbinário foi construído, o que depende da distribuição do Linux em uso.

Vladimir Panteleev
fonte
Esta é a única resposta que menciona o shell e as distribuições. Eu me deparei com a pergunta porque estou resolvendo problemas de PATH em contêineres do ubuntu. E o "caminho padrão" dependerá do shell (bash, sh, etc.) e se é carregado interativamente ou não, e se é um shell de login. Não é uma resposta simples. Parabéns pela menção das strings codificadas no binário.
init_js
1

Para ver o caminho padrão, use o que foi mencionado nas respostas:

echo $PATH

Para editar, use:

gedit ~/.bashrc

Essa PATHvariável padrão é definida em /etc/enviroment.

Sukupa91
fonte