GNU/Linux >> Tutoriales Linux >  >> Linux

¿Vista completa de dónde se establece la variable de ruta en Bash?

He leído en un par de lugares que PATH se establece en /etc/profile o el .profile archivo que está en el directorio de inicio.

¿Son estos los únicos lugares en los que se establece el camino? Quiero entenderlo mejor.

En el /etc/profile archivo, como dice el siguiente comentario "system-wide .profile file for the Bourne shell" . ¿Significa eso que los archivos de perfil son los principales archivos de configuración para bash?

En ese archivo no veo el PATH var se establece en absoluto. En el .profile archivo en el directorio de inicio hay esta línea:

PATH="$HOME/bin:$PATH"

Eso es restablecer PATH por el aspecto porque está concatenando el $PATH ya establecido cadena con $HOME/bin: ¿derecho? Pero si etc/profile y ~/.profile son los únicos archivos que configuran PATH donde está $PATH proveniente de esa línea de código si no está definido en /etc/profile ?

¿Puede alguien con experiencia dar una explicación amplia y detallada de la PATH? ¿variable? ¡Gracias!

Respuesta aceptada:

Hay muchos lugares donde PATH se puede configurar.

El login programa lo establece en un valor predeterminado. La configuración de este valor predeterminado depende del sistema. En la mayoría de los sistemas Linux no integrados, se toma de /etc/login.defs , con diferentes valores para root y para otros usuarios. Consulta el login(1) manual de su sistema para averiguar lo que hace.

En sistemas que usan PAM, específicamente el pam_env módulo, las variables de entorno se pueden configurar en el archivo de todo el sistema /etc/environment y el archivo por usuario ~/.pam_environment .

Luego, la mayoría de las formas de iniciar sesión (pero no los trabajos cron) ejecutan un shell de inicio de sesión que lee los archivos de configuración de todo el sistema y por usuario. Estos archivos pueden modificar el valor de PATH , generalmente para agregar entradas, pero a veces de otras maneras. Los archivos que se leen dependen de cuál sea el shell de inicio de sesión. Los shells estilo Bourne/POSIX leen /etc/profile y ~/.profile . Bash lee /etc/profile , pero para el archivo por usuario solo lee el primer archivo existente entre ~/.bash_profile , ~/.bash_login y ~/.profile . Zsh lee /etc/zshenv , ~/.zshenv , /etc/zprofile , ~/.zprofile , /etc/zlogin y ~/.zlogin . Muchas sesiones de GUI se organizan para cargar /etc/profile y ~/.profile , pero esto depende del administrador de pantalla, del entorno de escritorio u otro script de inicio de sesión, y de cómo cada distribución los haya configurado.


Linux
  1. ¿Dónde se establece el término valor predeterminado de la variable de entorno?

  2. ¿Dónde está el archivo Inittab?

  3. Encuentra la URL de un archivo

  4. Variable en Bash Script que mantiene su valor desde la última vez que se ejecutó

  5. ¿Cómo obtengo el directorio absoluto de un archivo en bash?

Las 6 mejores formas de ver archivos en Linux

Ver el contenido de un archivo en la línea de comandos de Linux

Cómo establecer la variable de entorno en Bash

¿Dónde está el archivo php.ini en una PC con Linux/CentOS?

¿Dónde está configurada la variable de entorno $HOME?

¿Dónde está la vista de terminal de tty7?