¿Cuáles son los valores predeterminados de $ PATH?

13

En Mac OS X, los $PATHvalores predeterminados son:

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

¿Cuáles son los valores predeterminados en Linux?

sonnuforevis
fuente
la ruta predeterminada se define en config-top.h
bac0n

Respuestas:

18

En una instalación de escritorio predeterminada de Ubuntu $PATHes:

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

Pero en un entorno chroot mínimo creado por debootstrap, $PATHsolo contiene:

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

Los valores de ruta del entorno se almacenan en el archivo .bashrc en ubuntu.

La variable PATH de todo el sistema se define en /etc/environment

Avinash Raj
fuente
3

Hay camino que construye las conchas que es

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

Entonces la ruta predeterminada para Ubuntu es:

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

Hay una manera fácil de averiguarlo:

printenv

O, más directamente:

echo $PATH

Pero, si solo está buscando información rápida, Ubuntu generalmente establece el camino para:

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

Para preguntas como esta, generalmente puede desenterrar la respuesta leyendo la Biblia .

Brian Grogan Jr.
fuente
2

Dependiendo de qué Linux esté usando, puede ser diferente. Si ya tiene un inicio de sesión en Linux, simplemente escriba 'env' para ver las variables de entorno.

Si desea saber cómo se construye la variable PATH env, eche un vistazo a .bashrc y .bash_profile en su directorio de inicio. Si es más curioso, también puede consultar / etc / profile, /etc/profile.d/* (si existe) y el manual de bash (man bash).

Jason
fuente
2

bashse establecerá PATHen un valor predeterminado codificado si no está configurado en el entorno:

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

Podemos verificar que este valor esté codificado y no se lea desde el entorno o algún archivo, utilizando la stringsutilidad:

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

Sin embargo, obtengo un resultado diferente en mi máquina Arch Linux:

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

Por lo tanto, parece que este valor predeterminado se elige en el momento en que bashse creó el binario, que depende de la distribución de Linux en uso.

Vladimir Panteleev
fuente
Esta es la única respuesta que menciona el shell y las distribuciones. Me topé con la pregunta porque estoy resolviendo los problemas de RUTA en los contenedores de ubuntu. Y la "ruta predeterminada" dependerá del shell (bash, sh, etc.) y si se carga de forma interactiva o no, y si se trata de un shell de inicio de sesión. No es una respuesta simple. Felicitaciones por mencionar las cadenas codificadas en el binario.
init_js
1

Para ver la ruta predeterminada, use lo que se menciona en las respuestas:

echo $PATH

Para editar el uso:

gedit ~/.bashrc

Esta PATHvariable predeterminada se define en /etc/enviroment.

Sukupa91
fuente