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


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

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


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

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 .


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).


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.